1
0

Big Nvim Update

This commit is contained in:
Eli Fouts 2025-01-18 07:46:53 -05:00
parent 43833c506a
commit 76da4a2bbf
23 changed files with 444 additions and 134 deletions

View File

@ -1,6 +1,6 @@
[color]
gradient = 1
gradient_count = 2
gradient_color_1 = '#4b4d3f'
gradient_color_2 = '#69562a'
gradient_color_1 = '#393b3b'
gradient_color_2 = '#484b48'

View File

@ -18,5 +18,7 @@ main() {
sed -i "s/^gradient_color_1 = .*/gradient_color_1 = '$color1'/" $cava_config
sed -i "s/^gradient_color_2 = .*/gradient_color_2 = '$color2'/" $cava_config
pkill -USR2 cava || cava -p $cava_config
source ~/.cache/wal/colors.sh && cp -r $wallpaper ~/wallpapers/pywallpaper.jpg
rm -rf /home/eli/.cache/nvim/snacks
}
main

View File

@ -1,30 +1,30 @@
foreground #c6c6c3
background #1b1b12
foreground #c3c5c6
background #121a1b
background_opacity 1.0
cursor #c6c6c3
cursor #c3c5c6
active_tab_foreground #1b1b12
active_tab_background #c6c6c3
inactive_tab_foreground #c6c6c3
inactive_tab_background #1b1b12
active_tab_foreground #121a1b
active_tab_background #c3c5c6
inactive_tab_foreground #c3c5c6
inactive_tab_background #121a1b
active_border_color #c6c6c3
inactive_border_color #1b1b12
bell_border_color #393c37
active_border_color #c3c5c6
inactive_border_color #121a1b
bell_border_color #2d4b34
color0 #1b1b12
color8 #71715c
color1 #393c37
color9 #4D514A
color2 #4b4d3f
color10 #656755
color3 #69562a
color11 #8D7338
color4 #6a5838
color12 #8E764B
color5 #7d6c3c
color13 #A79050
color6 #967d3c
color14 #C8A751
color7 #9b9b90
color15 #c6c6c3
color0 #121a1b
color8 #5c7171
color1 #2d4b34
color9 #3D6446
color2 #393b3b
color10 #4C4F4F
color3 #484b48
color11 #616561
color4 #69514c
color12 #8C6D66
color5 #53674d
color13 #6F8A67
color6 #66695a
color14 #888D78
color7 #90989b
color15 #c3c5c6

View File

@ -15,56 +15,3 @@ vim.cmd("set number")
require("vim-options")
require("lazy").setup("plugins")
vim.opt.termguicolors = true
local pywal = require('pywal')
pywal.setup()
require('gitsigns').setup {
signs = {
add = { text = '' },
change = { text = '' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
untracked = { text = '' },
},
signs_staged = {
add = { text = '' },
change = { text = '' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
untracked = { text = '' },
},
signs_staged_enable = true,
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
follow_files = true
},
auto_attach = true,
attach_to_untracked = false,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = false,
virt_text_priority = 100,
use_focus = true,
},
current_line_blame_formatter = '<author>, <author_time:%R> - <summary>',
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 40000, -- Disable if file is longer than this (in lines)
preview_config = {
-- Options passed to nvim_open_win
border = 'single',
style = 'minimal',
relative = 'cursor',
row = 0,
col = 1
},
}

View File

@ -1,19 +1,21 @@
{
"LuaSnip": { "branch": "master", "commit": "33b06d72d220aa56a7ce80a0dd6f06c70cd82b9d" },
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
"gitsigns.nvim": { "branch": "main", "commit": "817bd848fffe82e697b4da656e3f2834cd0665c5" },
"glow.nvim": { "branch": "main", "commit": "238070a686c1da3bccccf1079700eb4b5e19aea4" },
"lazy.nvim": { "branch": "main", "commit": "d8f26efd456190241afd1b0f5235fe6fdba13d4a" },
"lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" },
"mini.icons": { "branch": "main", "commit": "910db5df9724d65371182948f921fce23c2c881e" },
"neo-tree.nvim": { "branch": "v3.x", "commit": "e6645ecfcba3e064446a6def1c10d788c9873f51" },
"noice.nvim": { "branch": "main", "commit": "eaed6cc9c06aa2013b5255349e4f26a6b17ab70f" },
"nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" },
"nvim-cmp": { "branch": "main", "commit": "b555203ce4bd7ff6192e759af3362f9d217e8c89" },
"nvim-treesitter": { "branch": "master", "commit": "2405274937718d520a40e03df92030dca6b4f0fd" },
"nvim-web-devicons": { "branch": "master", "commit": "0eb18da56e2ba6ba24de7130a12bcc4e31ad11cb" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"pywal": { "branch": "main", "commit": "d11b673c0e3d6eb8cbee7ea8cf4a8911f6ee24b9" },
"nvim-notify": { "branch": "master", "commit": "a3020c2cf4dfc4c4f390c4a21e84e35e46cf5d17" },
"nvim-treesitter": { "branch": "master", "commit": "5da195ac3dfafd08d8b10756d975f0e01e1d563a" },
"nvim-web-devicons": { "branch": "master", "commit": "aafa5c187a15701a7299a392b907ec15d9a7075f" },
"plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" },
"pywal.nvim": { "branch": "main", "commit": "d11b673c0e3d6eb8cbee7ea8cf4a8911f6ee24b9" },
"snacks.nvim": { "branch": "main", "commit": "0b67934bb9c2ba4b9797759315d8cec1734209e8" },
"tabline.nvim": { "branch": "main", "commit": "ff33d12a20d52daafa5393162cae4108faf8128b" },
"telescope-file-browser.nvim": { "branch": "master", "commit": "626998e5c1b71c130d8bc6cf7abb6709b98287bb" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }
}

View File

@ -5,21 +5,89 @@ return {
},
config = function()
local alpha = require("alpha")
local dashboard = require("alpha.themes.startify")
local dashboard = require("alpha.themes.dashboard")
vim.cmd("source ~/.cache/wal/colors-wal.vim")
local color9 = vim.g.color9 or "#ffffff"
local color3 = vim.g.color3 or "#ffffff"
local color4 = vim.g.color4 or "#ffffff"
local color5 = vim.g.color5 or "#ffffff"
local color6 = vim.g.color6 or "#ffffff"
dashboard.section.header.val = {
[[ ██████████ █████████  ]],
[[ ████████████ ████████████████ █ ██ ]],
[[ ██ ███ █████ ██ ]],
[[ ██████████ ██████████ ████████ ███ ███████████ ]],
[[ ██████████ ██████████ ████████ █████ ██████████████ ]],
[[ ██ ██ ███████ █████ █████ ████ █████ ]],
[[ ██████████ ██ ██████ █████ █████ ████ █████ ]],
[[ ████████████ ██ ███ ████ █████ █████ ████ ██████ ]],
-- helper function for utf8 chars
local function getCharLen(s, pos)
local byte = string.byte(s, pos)
if not byte then
return nil
end
return (byte < 0x80 and 1) or (byte < 0xE0 and 2) or (byte < 0xF0 and 3) or (byte < 0xF8 and 4) or 1
end
local function applyColors(logo, colors, logoColors)
dashboard.section.header.val = logo
for key, color in pairs(colors) do
local name = "Alpha" .. key
vim.api.nvim_set_hl(0, name, color)
colors[key] = name
end
dashboard.section.header.opts.hl = {}
for i, line in ipairs(logoColors) do
local highlights = {}
local pos = 0
for j = 1, #line do
local opos = pos
pos = pos + getCharLen(logo[i], opos + 1)
local color_name = colors[line:sub(j, j)]
if color_name then
table.insert(highlights, { color_name, opos, pos })
end
end
table.insert(dashboard.section.header.opts.hl, highlights)
end
return dashboard.opts
end
require("alpha").setup(applyColors({
[[███████╗ ██████╗ ]],
[[██╔════╝ ██╔═══╝ ]],
[[█████╗ ██████╗ ]],
[[██╔══╝ ██╔═══╝ ]],
[[███████╗ ██║ ]],
[[╚══════╝ ╚═╝ ]],
[[N E O V I M ]],
}, {
["a"] = { fg = color9, ctermfg = 33},
["b"] = { fg = color3, ctermfg = 33},
["c"] = { fg = color4, ctermfg = 33},
["d"] = { fg = color5, ctermfg = 33},
["e"] = { fg = color6, ctermfg = 33},
}, {
[[bbbbbbba cccccca ]],
[[bbaaaaaa ccaaaaa ]],
[[bbbbba cccccca ]],
[[bbaaaa ccaaaaa ]],
[[bbbbbbba cca ]],
[[aaaaaaaa aaa ]],
[[d d d e e e ]],
}))
dashboard.section.buttons.val = {
dashboard.button( "e", " > New file" , ":ene <BAR> startinsert <CR>"),
dashboard.button( "f", " > Find file", ":lua require('telescope.builtin').find_files({ find_command = { 'rg', '--files' } })<CR>"),
dashboard.button( "F", "󰥨 > Find folder", ":lua search_and_scope_into_directory()<CR>"),
dashboard.button( "r", " > Recent" , ":Telescope oldfiles<CR>"),
dashboard.button( "c", " > Config" , ":cd ~/.config/nvim | Telescope find_files<CR>"),
dashboard.button( "l", "󰒲 > Lazy", ":Lazy<CR>"),
dashboard.button( "q", " > Quit", ":qa<CR>"),
}
dashboard.section.footer.val = {
"",
"Welcome!",
}
alpha.setup(dashboard.opts)
end,
}

View File

@ -0,0 +1,38 @@
return {
"folke/noice.nvim",
event = "VeryLazy",
opts = {
-- add any options here
},
dependencies = {
"MunifTanjim/nui.nvim",
"rcarriga/nvim-notify",
},
config = function()
vim.cmd("source ~/.cache/wal/colors-wal.vim")
local color9 = vim.g.color9 or "#808080"
local color5 = vim.g.color5 or "#ffffff"
require("noice").setup({
lsp = {
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true,
},
},
presets = {
bottom_search = false,
command_palette = true,
long_message_to_split = true,
inc_rename = false,
lsp_doc_border = false,
},
})
vim.cmd('highlight NoiceCmdlineIcon guifg=' .. color9)
vim.cmd('highlight NoiceCmdlinePopupBorder guifg=' .. color5)
vim.cmd('highlight NotifyINFOBorder guifg=' .. color5)
vim.cmd('highlight NotifyINFOIcon guifg=' .. color9)
vim.cmd('highlight NotifyINFOTitle guifg=' .. color5)
end,
}

View File

@ -1,3 +1,11 @@
return {
{ 'AlphaTechnolog/pywal.nvim', name = 'pywal' }
"AlphaTechnolog/pywal.nvim",
lazy = false, -- Load immediately on startup
priority = 1000, -- Ensure it loads before other colorscheme plugins
config = function()
-- Set up pywal and load the colors
require("pywal").setup()
end,
}

View File

@ -1,3 +1,56 @@
return {
"lewis6991/gitsigns.nvim"
"lewis6991/gitsigns.nvim", -- Add a comma here
config = function()
require('gitsigns').setup {
signs = {
add = { text = '' },
change = { text = '' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
untracked = { text = '' },
},
signs_staged = {
add = { text = '' },
change = { text = '' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
untracked = { text = '' },
},
signs_staged_enable = true,
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
follow_files = true
},
auto_attach = true,
attach_to_untracked = false,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = false,
virt_text_priority = 100,
use_focus = true,
},
current_line_blame_formatter = '<author>, <author_time:%R> - <summary>',
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 40000, -- Disable if file is longer than this (in lines)
preview_config = {
-- Options passed to nvim_open_win
border = 'single',
style = 'minimal',
relative = 'cursor',
row = 0,
col = 1
},
}
end
}

View File

@ -0,0 +1,8 @@
return {
"ellisonleao/glow.nvim",
config = function()
require('glow').setup()
end,
cmd = "Glow",
}

View File

@ -0,0 +1,19 @@
return {
"echasnovski/mini.icons",
lazy = true,
opts = {
file = {
[".keep"] = { glyph = "󰊢", hl = "MiniIconsGrey" },
["devcontainer.json"] = { glyph = "", hl = "MiniIconsAzure" },
},
filetype = {
dotenv = { glyph = "", hl = "MiniIconsYellow" },
},
},
init = function()
package.preload["nvim-web-devicons"] = function()
require("mini.icons").mock_nvim_web_devicons()
return package.loaded["nvim-web-devicons"]
end
end,
}

View File

@ -1,6 +1,6 @@
return {
"nvim-lualine/lualine.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
dependencies = { "nvim-tree/nvim-web-devicons","kdheepak/tabline.nvim" },
config = function()
require('lualine').setup {
@ -9,6 +9,7 @@ return {
theme = 'auto',
component_separators = '',
section_separators = { left = '', right = '' },
component_separators = {'', ''},
disabled_filetypes = {
statusline = {},
winbar = {},
@ -25,8 +26,8 @@ return {
},
sections = {
lualine_a = {'mode'},
lualine_b = {'branch', 'diff', 'diagnostics'},
lualine_c = {'filepath','filename'},
lualine_b = {},
lualine_c = {},
lualine_x = {'filetype'},
lualine_y = {'progress'},
lualine_z = {'location'}
@ -39,7 +40,14 @@ return {
lualine_y = {},
lualine_z = {}
},
tabline = {},
tabline = {
lualine_a = {},
lualine_b = {},
lualine_c = { require'tabline'.tabline_buffers },
lualine_x = { require'tabline'.tabline_tabs },
lualine_y = {},
lualine_z = {},
},
winbar = {},
inactive_winbar = {},
extensions = {}

View File

@ -0,0 +1,76 @@
return {
"folke/snacks.nvim",
priority = 1000,
lazy = false,
---@type snacks.Config
opts = {
bigfile = { enabled = true },
dashboard = {
sections = {
{
section = "terminal",
cmd = "chafa ~/wallpapers/pywallpaper.jpg --format symbols --symbols vhalf --size 60x17 --stretch;",
height = 17,
padding = 1,
},
{
pane = 2,
{ section = "keys", gap = 1, padding = 1 },
{ section = "startup" },
},
},
},
indent = { enabled = true },
input = { enabled = true },
quickfile = { enabled = true },
scroll = { enabled = true },
statuscolumn = { enabled = true },
words = { enabled = true },
},
keys = {
{ "<leader>z", function() Snacks.zen() end, desc = "Toggle Zen Mode" },
{ "<leader>s", function() Snacks.scratch() end, desc = "Toggle Scratch Buffer" },
{ "<leader>S", function() Snacks.scratch.select() end, desc = "Select Scratch Buffer" },
{ "<c-/>", function() Snacks.terminal() end, desc = "Toggle Terminal" },
{ "<leader>gB", function() Snacks.gitbrowse() end, desc = "Git Browse", mode = { "n", "v" } },
{ "<leader>gb", function() Snacks.git.blame_line() end, desc = "Git Blame Line" },
{ "<leader>gf", function() Snacks.lazygit.log_file() end, desc = "Lazygit Current File History" },
{ "<leader>gg", function() Snacks.lazygit() end, desc = "Lazygit" },
{ "<leader>gl", function() Snacks.lazygit.log() end, desc = "Lazygit Log (cwd)" },
{
"<leader>N",
desc = "Neovim News",
function()
Snacks.win({
file = vim.api.nvim_get_runtime_file("doc/news.txt", false)[1],
width = 0.6,
height = 0.8,
wo = {
spell = false,
wrap = false,
signcolumn = "yes",
statuscolumn = " ",
conceallevel = 3,
},
})
end,
}
},
init = function()
vim.api.nvim_create_autocmd("User", {
pattern = "VeryLazy",
callback = function()
_G.dd = function(...)
Snacks.debug.inspect(...)
end
_G.bt = function()
Snacks.debug.backtrace()
end
vim.print = _G.dd
-- Create some toggle mappings
Snacks.toggle.option("spell", { name = "Spelling" }):map("<leader>us")
Snacks.toggle.option("wrap", { name = "Wrap" }):map("<leader>uw")
end,
})
end,
}

View File

@ -0,0 +1,20 @@
return {
'kdheepak/tabline.nvim',
config = function()
require'tabline'.setup {
enable = true,
options = {
section_separators = { '','' },
component_separators = {'', ''},
max_bufferline_percent = 80,
show_tabs_always = true,
show_devicons = true,
show_bufnr = false,
show_filename_only = true,
modified_italic = true,
show_tabs_only = false,
}
}
end,
requires = {'hoob3rt/lualine.nvim', 'kyazdani42/nvim-web-devicons'}
}

View File

@ -7,7 +7,30 @@ return {
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<C-p>", builtin.find_files, {})
vim.keymap.set("n", "<A-f>", builtin.live_grep, {})
-- Function for searching and scoping into a directory
function search_and_scope_into_directory()
builtin.find_files({
prompt_title = "Search Directories",
find_command = {"fd", "--type", "d", "--hidden", "--follow"},
attach_mappings = function(prompt_bufnr, map)
local actions = require("telescope.actions")
actions.select_default:replace(function()
local selection = require("telescope.actions.state").get_selected_entry()
local selected_dir = selection.path
-- Change the current working directory to the selected directory
vim.cmd("cd " .. selected_dir)
actions.close(prompt_bufnr)
end)
return true
end,
})
end
-- Keybinding to trigger directory search and scoping
vim.keymap.set("n", "<A-d>", search_and_scope_into_directory)
end
},
{
"nvim-telescope/telescope-ui-select.nvim",
@ -18,8 +41,49 @@ return {
require("telescope.themes").get_dropdown({}),
},
},
defaults = {
file_ignore_patterns = {
"node_modules", "build", "dist", "yarn.lock"
},
vimgrep_arguments = {
"rg",
"--follow",
"--hidden",
"--no-heading",
"--with-filename",
"--line-number",
"--column",
"--smart-case",
"--glob=!**/.git/*",
"--glob=!**/.idea/*",
"--glob=!**/.vscode/*",
"--glob=!**/build/*",
"--glob=!**/dist/*",
"--glob=!**/yarn.lock",
"--glob=!**/package-lock.json",
},
},
pickers = {
find_files = {
hidden = true,
find_command = {
"rg",
"--files",
"--hidden",
"--glob=!**/.git/*",
"--glob=!**/.idea/*",
"--glob=!**/.vscode/*",
"--glob=!**/build/*",
"--glob=!**/dist/*",
"--glob=!**/yarn.lock",
"--glob=!**/package-lock.json",
},
},
},
})
require("telescope").load_extension("ui-select")
end,
},
}

View File

@ -1,4 +1,4 @@
@import url('/home/eli/.cache/wal/colors-waybar.css');
@import url('../../.cache/wal/colors-waybar.css');
@define-color mpris-album-art-overlay alpha(@background, 0.55);
@define-color mpris-button-hover alpha(@background, 0.50);
@define-color text @color15;

View File

@ -4,10 +4,8 @@
if pgrep -x "waybar" > /dev/null; then
# If running, kill the waybar process
pkill -x "waybar"
echo "Waybar stopped."
else
# If not running, start waybar
waybar &
echo "Waybar started."
fi

View File

@ -1,4 +1,4 @@
@import url('/home/eli/.cache/wal/colors-waybar.css');
@import url('../../.cache/wal/colors-waybar.css');
* {
font-size:15px;

View File

@ -1,4 +1,5 @@
@import url('/home/eli/.cache/wal/colors-waybar.css');
@define-color mauve @color9;
@define-color red @color9;
@define-color lavender @color7;
@ -28,9 +29,8 @@ window {
}
#inner-box {
margin: 2px;
padding: 5px;
padding: 5px
border: none;
}
#outer-box {
border: none;
@ -49,8 +49,9 @@ window {
border: none;
outline: none;
color: @text;
box-shadow: 1px 1px 5px rgba(0, 0, 0, .2);
box-shadow: 1px 1px 5px rgba(0, 0, 0, .5);
border-radius:10;
background-color: alpha(@background,.2);
}
#input image {
border: none;
@ -64,7 +65,6 @@ window {
#input:focus {
outline: none;
border: none;
box-shadow: 1px 1px 5px rgba(0, 0, 0, .2);
border-radius:10;
}
#text {
@ -76,6 +76,7 @@ window {
#entry {
border: none;
margin: 5px;
padding-left: 10px;
}
#entry arrow {
border: none;

View File

@ -42,8 +42,9 @@ window {
border: none;
outline: none;
color: @text;
box-shadow: 1px 1px 5px rgba(0, 0, 0, .2);
box-shadow: 1px 1px 5px rgba(0,0,0, .5);
border-radius:10;
background-color: alpha(@background,.2);
}
#input image {
border: none;
@ -58,7 +59,7 @@ window {
#input:focus {
outline: none;
border: none;
box-shadow: 1px 1px 5px rgba(0, 0, 0, .2);
border-radius:10;
}
#text {

View File

@ -21,9 +21,6 @@ If you do not want this, you can remove it in the Applications style.css and add
-E
## My Applications
<details>
<summary>🖥️ Waybar</summary>