From 11631589cf147d3aa764558b3f6e6f21a4089e73 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 18 Mar 2026 09:49:10 +0200 Subject: [PATCH 1/2] Add homescreen dashboard --- lazy-lock.json | 1 + lua/config/keybinds.lua | 30 ++++++++++++++++++++++++++++ lua/plugins/dashboard.lua | 42 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 lua/plugins/dashboard.lua diff --git a/lazy-lock.json b/lazy-lock.json index c7ee034..97a1f72 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -16,6 +16,7 @@ "nvim-treesitter": { "branch": "main", "commit": "2cc172c28e5550e00e6beead4599b1469469c1c7" }, "nvim-web-devicons": { "branch": "master", "commit": "d7462543c9e366c0d196c7f67a945eaaf5d99414" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "snacks.nvim": { "branch": "main", "commit": "a049339328e2599ad6e85a69fa034ac501e921b2" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" }, "telescope.nvim": { "branch": "master", "commit": "3333a52ff548ba0a68af6d8da1e54f9cd96e9179" }, "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, diff --git a/lua/config/keybinds.lua b/lua/config/keybinds.lua index 465a35c..5164b9a 100644 --- a/lua/config/keybinds.lua +++ b/lua/config/keybinds.lua @@ -1,2 +1,32 @@ vim.g.mapleader = " " vim.keymap.set("n", "cd", vim.cmd.Ex) +vim.keymap.set("n", ";", ":Dashboard", { desc = "Return to Dashboard", silent = true }) +vim.api.nvim_create_autocmd("FileType", { + pattern = "netrw", + callback = function(event) + vim.schedule(function() + vim.keymap.set("n", "", function() + vim.cmd("enew") + vim.cmd("Dashboard") + end, { + buffer = event.buf, + nowait = true, + desc = "Return to Dashboard" + }) + end) + end, +}) +vim.api.nvim_create_autocmd("FileType", { + pattern = "netrw", + callback = function(event) + vim.schedule(function() + vim.keymap.set("n", ";", function() + vim.cmd("enew") + vim.cmd("Dashboard") + end, { + buffer = event.buf, + nowait = true, desc = "Return to Dashboard" + }) + end) + end, +}) diff --git a/lua/plugins/dashboard.lua b/lua/plugins/dashboard.lua new file mode 100644 index 0000000..92b509d --- /dev/null +++ b/lua/plugins/dashboard.lua @@ -0,0 +1,42 @@ +return { + 'nvimdev/dashboard-nvim', + event = 'VimEnter', + opts = function() + local logo = [[ + ███╗ ███╗███████╗ █████╗ ███╗ ██╗███████╗██╗██╗ ██╗██╗███╗ ███╗ + ████╗ ████║╚══███╔╝██╔══██╗████╗ ██║╚══███╔╝██║██║ ██║██║████╗ ████║ + ██╔████╔██║ ███╔╝ ███████║██╔██╗ ██║ ███╔╝ ██║██║ ██║██║██╔████╔██║ + ██║╚██╔╝██║ ███╔╝ ██╔══██║██║╚██╗██║ ███╔╝ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ + ██║ ╚═╝ ██║███████╗██║ ██║██║ ╚████║███████╗██║ ╚████╔╝ ██║██║ ╚═╝ ██║ + ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ + ]] + + logo = string.rep("\n", 8) .. logo .. "\n\n" + + local opts = { + theme = "doom", + config = { + header = vim.split(logo, "\n"), + center = { + -- Aligned to Mzansi Vim Essential Keybindings + { icon = "󰉓 ", desc = " File Explorer ", key = "cd", action = "Explore" }, + { icon = " ", desc = " Find Files ", key = "ff", action = "Telescope find_files" }, + { icon = " ", desc = " Live Grep ", key = "fg", action = "Telescope live_grep" }, + { icon = "󰛢 ", desc = " Harpoon Menu ", key = "e", action = function() + local harpoon = require("harpoon") + harpoon.ui:toggle_quick_menu(harpoon:list()) + end}, + { icon = "󱗘 ", desc = " Harpoon Search ", key = "fl", action = "Telescope harpoon marks" }, + { icon = "󰒲 ", desc = " Lazy Manager ", key = "z", action = "Lazy" }, + { icon = " ", desc = " Help Tags ", key = "fh", action = "Telescope help_tags" }, + { icon = " ", desc = " Quit ", key = "q", action = "qa" }, + }, + -- footer = { vim.fn.strftime("%Y-%m-%d %H:%M:%S") .. " • Mzansi Vim Kickstart" }, + footer = { "Let's Keep Working Hard Mzansi" }, + }, + } + + return opts + end, + dependencies = { { 'nvim-tree/nvim-web-devicons' } } +} From a570743f8eb3f3b6a9e7ef855c2d2e04c63a5fd4 Mon Sep 17 00:00:00 2001 From: Yasien Mac Mini Date: Wed, 18 Mar 2026 09:57:39 +0200 Subject: [PATCH 2/2] Add dashbord to readme --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/README.md b/README.md index 1af1655..533344c 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,39 @@ A pre-configured, performance-oriented Neovim setup designed to get you from zer * **Modern Aesthetics:** Features the `tokyonight` color scheme with enabled transparency and `lualine` for a sleek, functional status bar. * **Syntax Highlighting:** Robust parsing for over 15 languages via `nvim-treesitter`. * **Git Integration:** Quick access to Git commands using `vim-fugitive`. +* **Custom Dashboard:** A branded startup screen via `dashboard-nvim` with quick-access shortcuts to your most common actions. ## Essential Keybindings The **Leader Key** is set to `Space`. +**Note:** Dashboard keybindings are active only on the startup screen and do not require the leader key prefix. + +### Dashboard +| Action | Keybinding | Description | +| :--- | :--- | :--- | +| **File Explorer** | `cd` | Open Netrw directly from the dashboard. | +| **Find Files** | `ff` | Fuzzy find files via Telescope. | +| **Live Grep** | `fg` | Search across all files via Telescope. | +| **Harpoon Menu** | `e` | Open the Harpoon quick menu. | +| **Harpoon Search** | `fl` | Search Harpoon marks via Telescope. | +| **Lazy Manager** | `z` | Open the Lazy plugin manager. | +| **Help Tags** | `fh` | Search Neovim help tags via Telescope. | +| **Quit** | `q` | Quit Neovim. | + +### Dashboard +| Action | Keybinding | Description | +| :--- | :--- | :--- | +| **File Explorer** | `cd` | Open Netrw directly from the dashboard. | +| **Find Files** | `ff` | Fuzzy find files via Telescope. | +| **Live Grep** | `fg` | Search across all files via Telescope. | +| **Harpoon Menu** | `e` | Open the Harpoon quick menu. | +| **Harpoon Search** | `fl` | Search Harpoon marks via Telescope. | +| **Lazy Manager** | `z` | Open the Lazy plugin manager. | +| **Help Tags** | `fh` | Search Neovim help tags via Telescope. | +| **Quit** | `q` | Quit Neovim. | + + ### Navigation & Searching | Action | Keybinding | Description | | :--- | :--- | :--- |