Files
monovim/lua/config/dashboard.lua
2026-04-08 03:59:27 +02:00

68 lines
1.7 KiB
Lua

local M = {}
-- Helper function to draw the menu
local function draw_menu(lines, keymaps)
local buf = vim.api.nvim_create_buf(false, true)
vim.api.nvim_buf_set_lines(buf, 0, -1, false, lines)
vim.api.nvim_set_current_buf(buf)
-- Local settings for the menu window
vim.opt_local.number = false
vim.opt_local.relativenumber = false
vim.opt_local.buftype = "nofile"
vim.opt_local.bufhidden = "wipe"
vim.opt_local.cursorline = true
-- Set keymaps for this menu
local opts = { buffer = buf, noremap = true, silent = true }
for key, cmd in pairs(keymaps) do
vim.keymap.set("n", key, cmd, opts)
end
end
-- The plugin sub-menu (called with 'p')
function M.open_plugins_menu()
local lines = {
" MANAGE PLUGINS",
"========================",
"",
" [u] Update (Sync)",
" [i] Install",
" [a] Add (Open List)",
" [b] Back",
"",
"========================",
}
local keys = {
u = ":PaqSync<CR>",
i = ":PaqInstall<CR>",
a = ":edit ~/.config/nvim/lua/plugins.lua<CR>",
b = function() M.open() end, -- Returns to the main menu
}
draw_menu(lines, keys)
end
-- The main menu
function M.open()
local lines = {
" Mono VIM - 0.17",
"========================",
"",
" [n] New File",
" [r] Recent Files",
" [p] Plugins...",
" [q] Quit",
"",
"========================",
}
local keys = {
n = ":ene | startinsert<CR>",
r = ":oldfiles<CR>",
p = function() M.open_plugins_menu() end,
q = ":q!<CR>",
}
draw_menu(lines, keys)
end
return M