Files
nvim/lua/ui.lua
T
2026-07-26 18:42:56 +02:00

59 lines
2.0 KiB
Lua

-- Dashboard
local alpha = require('alpha')
local dashboard = require('alpha.themes.dashboard')
-- Custom Header (Minimalist)
dashboard.section.header.val = {
-- [[ __ ]],
[[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
[[ /' _ `\ /' __`\/\__\ /\ \/\ \\/\ \ /' __` __`\ ]],
[[ /\ \/\ \/\ __/\/_/\ \ \ \_/ |\ \ \ /\ \/\ \/\ \ ]],
[[ \ \_\ \_\ \____\ \ \_\ \___/ \ \_\\ \_\ \_\ \_\]],
[[ \/_/\/_/\/____/ \/_/\/__/ \/_/ \/_/\/_/\/_/]],
}
-- Custom Buttons (Integrating your Zsh logic)
dashboard.section.buttons.val = {
dashboard.button("n", " Nix Configuration", ":cd ~/nicksOs | Oil<CR>"),
dashboard.button("v", " Neovim Config", ":cd ~/.config/nvim | Oil<CR>"),
dashboard.button("h", " Habits", ":cd ~/Documents | :e habits.md <CR>"),
dashboard.button("f", "󰈞 Find File", ":Oil<CR>"),
dashboard.button("q", "󰅚 Quit", ":qa<CR>"),
}
-- Recent Files Section (Last 5 files)
local function get_mru(count)
local mru = {}
for _, file in ipairs(vim.v.oldfiles) do
if #mru >= count then break end
if vim.fn.filereadable(file) == 1 then
table.insert(mru, dashboard.button(tostring(#mru + 1), "󰈚 " .. vim.fn.fnamemodify(file, ":t"), ":e " .. file .. "<CR>"))
end
end
return mru
end
-- Assemble the layout
dashboard.config.layout = {
{ type = "padding", val = 2 },
dashboard.section.header,
{ type = "padding", val = 2 },
{ type = "group", val = dashboard.section.buttons.val },
{ type = "padding", val = 2 }, { type = "text", val = "Recent Files", opts = { hl = "Special", align = "center" } }, { type = "padding", val = 1 },
{ type = "group", val = function() return get_mru(5) end },
}
alpha.setup(dashboard.config)
-- File Browser
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
require("oil").setup({
columns = { "icon" },
view_options = { show_hidden = true },
})
vim.cmd("colorscheme habamax")
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })