mirror of
https://github.com/marcogll/omarchy_setup.git
synced 2026-01-13 13:25:16 +00:00
docs(v3.5.0): update README for integrated mg_dotfiles and security improvements
- Integrated mg_dotfiles as regular directory (not submodule) - Added .zshrc.local.example template for local configs without secrets - Added mg_dotfiles/zsh/.zshrc.local to .gitignore to protect API keys - Updated README to reflect mg_dotfiles integration and new structure - Added nvim configuration directory with LazyVim setup
This commit is contained in:
281
mg_dotfiles/nvim/lua/plugins/ui.lua
Normal file
281
mg_dotfiles/nvim/lua/plugins/ui.lua
Normal file
@@ -0,0 +1,281 @@
|
||||
local mode = {
|
||||
"mode",
|
||||
fmt = function(s)
|
||||
local mode_map = {
|
||||
["NORMAL"] = "N",
|
||||
["O-PENDING"] = "N?",
|
||||
["INSERT"] = "I",
|
||||
["VISUAL"] = "V",
|
||||
["V-BLOCK"] = "VB",
|
||||
["V-LINE"] = "VL",
|
||||
["V-REPLACE"] = "VR",
|
||||
["REPLACE"] = "R",
|
||||
["COMMAND"] = "!",
|
||||
["SHELL"] = "SH",
|
||||
["TERMINAL"] = "T",
|
||||
["EX"] = "X",
|
||||
["S-BLOCK"] = "SB",
|
||||
["S-LINE"] = "SL",
|
||||
["SELECT"] = "S",
|
||||
["CONFIRM"] = "Y?",
|
||||
["MORE"] = "M",
|
||||
}
|
||||
return mode_map[s] or s
|
||||
end,
|
||||
}
|
||||
|
||||
local function codecompanion_adapter_name()
|
||||
local chat = require("codecompanion").buf_get_chat(vim.api.nvim_get_current_buf())
|
||||
if not chat then
|
||||
return nil
|
||||
end
|
||||
|
||||
return " " .. chat.adapter.formatted_name
|
||||
end
|
||||
|
||||
local function codecompanion_current_model_name()
|
||||
local chat = require("codecompanion").buf_get_chat(vim.api.nvim_get_current_buf())
|
||||
if not chat then
|
||||
return nil
|
||||
end
|
||||
|
||||
return chat.settings.model
|
||||
end
|
||||
-- This file contains the configuration for various UI-related plugins in Neovim.
|
||||
return {
|
||||
-- Plugin: folke/todo-comments.nvim
|
||||
-- URL: https://github.com/folke/todo-comments.nvim
|
||||
-- Description: Plugin to highlight and search for TODO, FIX, HACK, etc. comments in your code.
|
||||
-- IMPORTANT: using version "*" to fix a bug
|
||||
{ "folke/todo-comments.nvim", version = "*" },
|
||||
|
||||
-- Plugin: folke/which-key.nvim
|
||||
-- URL: https://github.com/folke/which-key.nvim
|
||||
-- Description: Plugin to show a popup with available keybindings.
|
||||
-- IMPORTANT: using event "VeryLazy" to optimize loading time
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
preset = "classic",
|
||||
win = { border = "single" },
|
||||
},
|
||||
},
|
||||
|
||||
-- Plugin: nvim-docs-view
|
||||
-- URL: https://github.com/amrbashir/nvim-docs-view
|
||||
-- Description: A Neovim plugin for viewing documentation.
|
||||
{
|
||||
"amrbashir/nvim-docs-view",
|
||||
lazy = true, -- Load this plugin lazily
|
||||
cmd = "DocsViewToggle", -- Command to toggle the documentation view
|
||||
opts = {
|
||||
position = "right", -- Position the documentation view on the right
|
||||
width = 60, -- Set the width of the documentation view
|
||||
},
|
||||
},
|
||||
|
||||
-- Plugin: lualine.nvim
|
||||
-- URL: https://github.com/nvim-lualine/lualine.nvim
|
||||
-- Description: A blazing fast and easy to configure Neovim statusline plugin.
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
event = "VeryLazy", -- Load this plugin on the 'VeryLazy' event
|
||||
requires = { "nvim-tree/nvim-web-devicons", opt = true }, -- Optional dependency for icons
|
||||
opts = {
|
||||
options = {
|
||||
theme = "gentleman-kanagawa-blur", -- Set the theme for lualine
|
||||
icons_enabled = true, -- Enable icons in the statusline
|
||||
},
|
||||
sections = {
|
||||
lualine_a = {
|
||||
{
|
||||
"mode", -- Display the current mode
|
||||
icon = "", -- Set the icon for the mode
|
||||
},
|
||||
},
|
||||
},
|
||||
extensions = {
|
||||
"quickfix",
|
||||
{
|
||||
filetypes = { "oil" },
|
||||
sections = {
|
||||
lualine_a = {
|
||||
mode,
|
||||
},
|
||||
lualine_b = {
|
||||
function()
|
||||
local ok, oil = pcall(require, "oil")
|
||||
if not ok then
|
||||
return ""
|
||||
end
|
||||
|
||||
---@diagnostic disable-next-line: param-type-mismatch
|
||||
local path = vim.fn.fnamemodify(oil.get_current_dir(), ":~")
|
||||
return path .. " %m"
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
filetypes = { "codecompanion" },
|
||||
sections = {
|
||||
lualine_a = {
|
||||
mode,
|
||||
},
|
||||
lualine_b = {
|
||||
codecompanion_adapter_name,
|
||||
},
|
||||
lualine_c = {
|
||||
codecompanion_current_model_name,
|
||||
},
|
||||
lualine_x = {},
|
||||
lualine_y = {
|
||||
"progress",
|
||||
},
|
||||
lualine_z = {
|
||||
"location",
|
||||
},
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {
|
||||
codecompanion_adapter_name,
|
||||
},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
lualine_y = {
|
||||
"progress",
|
||||
},
|
||||
lualine_z = {},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- Plugin: incline.nvim
|
||||
-- URL: https://github.com/b0o/incline.nvim
|
||||
-- Description: A Neovim plugin for showing the current filename in a floating window.
|
||||
{
|
||||
"b0o/incline.nvim",
|
||||
event = "BufReadPre", -- Load this plugin before reading a buffer
|
||||
priority = 1200, -- Set the priority for loading this plugin
|
||||
config = function()
|
||||
require("incline").setup({
|
||||
window = { margin = { vertical = 0, horizontal = 1 } }, -- Set the window margin
|
||||
hide = {
|
||||
cursorline = true, -- Hide the incline window when the cursorline is active
|
||||
},
|
||||
render = function(props)
|
||||
local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ":t") -- Get the filename
|
||||
if vim.bo[props.buf].modified then
|
||||
filename = "[+] " .. filename -- Indicate if the file is modified
|
||||
end
|
||||
|
||||
local icon, color = require("nvim-web-devicons").get_icon_color(filename) -- Get the icon and color for the file
|
||||
return { { icon, guifg = color }, { " " }, { filename } } -- Return the rendered content
|
||||
end,
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
-- Plugin: zen-mode.nvim
|
||||
-- URL: https://github.com/folke/zen-mode.nvim
|
||||
-- Description: A Neovim plugin for distraction-free coding.
|
||||
{
|
||||
"folke/zen-mode.nvim",
|
||||
cmd = "ZenMode", -- Command to toggle Zen Mode
|
||||
opts = {
|
||||
plugins = {
|
||||
gitsigns = true, -- Enable gitsigns integration
|
||||
tmux = true, -- Enable tmux integration
|
||||
kitty = { enabled = false, font = "+2" }, -- Disable kitty integration and set font size
|
||||
twilight = { enabled = true }, -- Enable twilight integration
|
||||
},
|
||||
},
|
||||
keys = { { "<leader>z", "<cmd>ZenMode<cr>", desc = "Zen Mode" } }, -- Keybinding to toggle Zen Mode
|
||||
},
|
||||
|
||||
-- Plugin: snacks.nvim
|
||||
-- URL: https://github.com/folke/snacks.nvim/tree/main
|
||||
-- Description: A Neovim plugin for creating a customizable dashboard.
|
||||
{
|
||||
"folke/snacks.nvim",
|
||||
keys = {
|
||||
{
|
||||
"<leader>fb",
|
||||
function()
|
||||
Snacks.picker.buffers()
|
||||
end,
|
||||
desc = "Find Buffers",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
notifier = {},
|
||||
image = {},
|
||||
picker = {
|
||||
exclude = {
|
||||
".git",
|
||||
"node_modules",
|
||||
},
|
||||
matcher = {
|
||||
fuzzy = true,
|
||||
smartcase = true,
|
||||
ignorecase = true,
|
||||
filename_bonus = true,
|
||||
},
|
||||
sources = {
|
||||
-- explorer = {
|
||||
-- matcher = {
|
||||
-- fuzzy = true, -- Enables fuzzy matching, so you can be a bit imprecise with your search terms
|
||||
-- smartcase = true, -- If your search term has uppercase letters, the search becomes case-sensitive
|
||||
-- ignorecase = true, -- Ignores case when searching, unless smartcase is triggered
|
||||
-- filename_bonus = true, -- Gives a higher priority to matches in filenames
|
||||
-- sort_empty = false, -- If no matches are found, it won't sort the results
|
||||
-- },
|
||||
-- },
|
||||
},
|
||||
},
|
||||
dashboard = {
|
||||
sections = {
|
||||
{ section = "header" },
|
||||
{ icon = " ", title = "Keymaps", section = "keys", indent = 2, padding = 1 },
|
||||
{ icon = " ", title = "Recent Files", section = "recent_files", indent = 2, padding = 1 },
|
||||
{ icon = " ", title = "Projects", section = "projects", indent = 2, padding = 1 },
|
||||
{ section = "startup" },
|
||||
},
|
||||
preset = {
|
||||
header = [[
|
||||
░░░░░░ ░░░░░░
|
||||
░░░░░░░░░░ ░░░░░░░░░░
|
||||
░░░░░░░░░░░░░░░░░░░░░░░░░░
|
||||
░░░░░░░░░░▒▒▒▒░░▒▒▒▒░░░░░░░░░░
|
||||
░░░░ ░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░ ░░░░
|
||||
▒▒░░ ░░░░░░▒▒▒▒▒▒▒▒▒▒██▒▒██▒▒▒▒▒▒▒▒▒▒░░░░░░ ▒▒░░
|
||||
▒▒░░ ░░░░░░░░▒▒▒▒▒▒▒▒▒▒████▒▒████▒▒▒▒▒▒▒▒▒▒░░░░░░░░ ▒▒░░▒
|
||||
▒▒▒▒░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████▒▒██████▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░▒▒▒
|
||||
██▒▒▒▒▒▒▒▒▒▒▒▒▒▒██▒▒▒▒██████▓▓██▒▒██████▒▒▓▓██▒▒▒▒▒▒▒▒▒▒▒▒▒▒█
|
||||
████▒▒▒▒▒▒████▒▒▒▒██████████ ██████████▒▒▒▒████▒▒▒▒▒▒▒▒██
|
||||
████████████████████████ ████████████████████████
|
||||
██████████████████ ██████████████████
|
||||
██████████ ██████████
|
||||
]],
|
||||
-- stylua: ignore
|
||||
---@type snacks.dashboard.Item[]
|
||||
keys = {
|
||||
{ icon = " ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" },
|
||||
{ icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" },
|
||||
{ icon = " ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" },
|
||||
{ icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" },
|
||||
{ icon = " ", key = "c", desc = "Config", action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})" },
|
||||
{ icon = " ", key = "s", desc = "Restore Session", section = "session" },
|
||||
{ icon = " ", key = "x", desc = "Lazy Extras", action = ":LazyExtras" },
|
||||
{ icon = " ", key = "l", desc = "Lazy", action = ":Lazy" },
|
||||
{ icon = " ", key = "q", desc = "Quit", action = ":qa" },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user