initial commit

This commit is contained in:
2026-01-19 20:33:18 -05:00
commit 6c728033f2
43 changed files with 4729 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
-- Set airline theme
vim.g.airline_theme = 'simple'
-- Initialize airline symbols if not already defined
vim.g.airline_symbols = vim.g.airline_symbols or {}
-- Configure airline symbols
vim.g.airline_symbols.crypt = '🔒'
vim.g.airline_symbols.linenr = ''
vim.g.airline_symbols.maxlinenr = ''
vim.g.airline_symbols.paste = 'ρ'
vim.g.airline_symbols.spell = ''
vim.g.airline_symbols.notexists = 'Ɇ'
vim.g.airline_symbols.whitespace = 'Ξ'
-- Powerline symbols (requires appropriate fonts)
vim.g.airline_left_sep = ''
vim.g.airline_left_alt_sep = ''
vim.g.airline_right_sep = ''
vim.g.airline_right_alt_sep = ''
vim.g.airline_symbols.branch = ''
vim.g.airline_symbols.linenr = ''
-- Configure bufferline extension
-- vim.g.airline#extensions#tabline#enabled = 1
vim.g.airline_extensions_tabline_formatter = 'unique_tail'
-- Set global statusline
vim.opt.laststatus = 3
+76
View File
@@ -0,0 +1,76 @@
local map = vim.api.nvim_set_keymap
local opts = { noremap = true, silent = true }
-- Move to previous/next
map('n', '<A-,>', '<Cmd>BufferPrevious<CR>', opts)
map('n', '<A-.>', '<Cmd>BufferNext<CR>', opts)
-- Re-order to previous/next
map('n', '<A-<>', '<Cmd>BufferMovePrevious<CR>', opts)
map('n', '<A->>', '<Cmd>BufferMoveNext<CR>', opts)
-- Goto buffer in position...
map('n', '<A-1>', '<Cmd>BufferGoto 1<CR>', opts)
map('n', '<A-2>', '<Cmd>BufferGoto 2<CR>', opts)
map('n', '<A-3>', '<Cmd>BufferGoto 3<CR>', opts)
map('n', '<A-4>', '<Cmd>BufferGoto 4<CR>', opts)
map('n', '<A-5>', '<Cmd>BufferGoto 5<CR>', opts)
map('n', '<A-6>', '<Cmd>BufferGoto 6<CR>', opts)
map('n', '<A-7>', '<Cmd>BufferGoto 7<CR>', opts)
map('n', '<A-8>', '<Cmd>BufferGoto 8<CR>', opts)
map('n', '<A-9>', '<Cmd>BufferGoto 9<CR>', opts)
map('n', '<A-0>', '<Cmd>BufferLast<CR>', opts)
-- Pin/unpin buffer
map('n', '<A-p>', '<Cmd>BufferPin<CR>', opts)
-- Goto pinned/unpinned buffer
-- :BufferGotoPinned
-- :BufferGotoUnpinned
-- Close buffer
map('n', '<A-c>', '<Cmd>BufferClose<CR>', opts)
-- Wipeout buffer
-- :BufferWipeout
-- Close commands
-- :BufferCloseAllButCurrent
-- :BufferCloseAllButPinned
-- :BufferCloseAllButCurrentOrPinned
-- :BufferCloseBuffersLeft
-- :BufferCloseBuffersRight
-- Magic buffer-picking mode
map('n', '<C-p>', '<Cmd>BufferPick<CR>', opts)
map('n', '<C-s-p>', '<Cmd>BufferPickDelete<CR>', opts)
-- Sort automatically by...
map('n', '<Space>bb', '<Cmd>BufferOrderByBufferNumber<CR>', opts)
map('n', '<Space>bn', '<Cmd>BufferOrderByName<CR>', opts)
map('n', '<Space>bd', '<Cmd>BufferOrderByDirectory<CR>', opts)
map('n', '<Space>bl', '<Cmd>BufferOrderByLanguage<CR>', opts)
map('n', '<Space>bw', '<Cmd>BufferOrderByWindowNumber<CR>', opts)
-- Other:
-- :BarbarEnable - enables barbar (enabled by default)
-- :BarbarDisable - very bad command, should never be used
vim.g.barbar_auto_setup = false -- disable auto-setup
require'barbar'.setup {
-- Enable/disable animations
animation = true,
-- Automatically hide the tabline when there are this many buffers left.
-- Set to any value >=0 to enable.
auto_hide = false,
-- Enable/disable current/total tabpages indicator (top right corner)
tabpages = true,
-- Enables/disable clickable tabs
-- - left-click: go to buffer
-- - middle-click: delete buffer
clickable = true,
}
+71
View File
@@ -0,0 +1,71 @@
local opts = { noremap = true, silent = true }
-- "Focus" commands that rely on the Goyo plugin
vim.api.nvim_set_keymap("n", "<C-a>z", ":Goyo 80<CR>", opts)
vim.api.nvim_set_keymap("n", "<C-a>q", ":Goyo!<CR>", opts)
-- https://github.com/junegunn/goyo.vim/issues/180
-- automatically resize goyo when nvim resizes
vim.api.nvim_create_autocmd("VimResized", {
callback = function()
if vim.t.goyo_master == 1 then
vim.cmd([[exe "normal \<c-w>="]])
end
end,
})
-- vim.api.nvim_create_autocmd("VimResized", {
-- callback = function()
-- if vim.fn.exists('#goyo') == 1 then
-- vim.cmd("normal <C-w>=")
-- end
-- end,
-- })
-- hide and unhide lualine when entering and leaving goyo
local lualine = require('lualine')
local grp = vim.api.nvim_create_augroup('goyo_lualine_toggle', { clear = true })
local function hide() lualine.hide{ place = {'statusline', 'winbar', 'tabline'} } end
local function unhide() lualine.hide{ place = {'statusline', 'winbar', 'tabline'}, unhide = true } end
vim.api.nvim_create_autocmd('User', {
group = grp,
pattern = 'GoyoEnter',
callback = function()
lualine.hide({ place = {'statusline', 'winbar', 'tabline'} })
end,
})
vim.api.nvim_create_autocmd('User', {
group = grp,
pattern = 'GoyoLeave',
callback = function()
lualine.hide({ place = {'statusline', 'winbar', 'tabline'}, unhide = true })
end,
})
vim.api.nvim_create_autocmd('VimEnter', {
group = grp,
once = true,
callback = function()
local w = vim.g.goyo_if
if w then
vim.schedule(hide)
end
end,
})
vim.api.nvim_create_autocmd('UIEnter', {
once = true,
group = grp,
callback = function()
local w = vim.g.goyo_if
if w then
vim.opt.showtabline = 0
vim.cmd('BarbarDisable')
end
end,
})
+67
View File
@@ -0,0 +1,67 @@
-- Bubbles config for lualine
-- Author: lokesh-krishna
-- MIT license, see LICENSE for more details.
-- stylua: ignore
-- ripped from https://lospec.com/palette-list/tokyo-night
local colors = {
blue = '#80a0ff',
cyan = '#79dac8',
black = '#080808',
white = '#c6c6c6',
red = '#ff5189',
violet = '#d183e8',
grey = '#303030',
deepblue = '#292e42',
deepcyan = '#3b4261',
deepred = '#c53b53',
lightblue = '#737aa2'
}
local bubbles_theme = {
normal = {
a = { fg = colors.black, bg = colors.lightblue },
b = { fg = colors.white, bg = colors.grey },
c = { fg = colors.white },
},
insert = { a = { fg = colors.black, bg = colors.deepblue } },
visual = { a = { fg = colors.black, bg = colors.deepred } },
replace = { a = { fg = colors.black, bg = colors.violet } },
inactive = {
a = { fg = colors.white, bg = colors.black },
b = { fg = colors.white, bg = colors.black },
c = { fg = colors.white },
},
}
require('lualine').setup {
options = {
theme = bubbles_theme,
component_separators = '',
section_separators = { left = '', right = '' },
},
sections = {
lualine_a = { { 'mode', right_padding = 1 } },
lualine_b = { 'filename', 'branch' },
lualine_c = {
'%=', --[[ add your center compoentnts here in place of this comment ]]
},
lualine_x = {},
lualine_y = { 'filetype' ,'progress' },
lualine_z = {
{ 'location', left_padding = 1 },
},
},
inactive_sections = {
lualine_a = { 'filename' },
lualine_b = {},
lualine_c = {},
lualine_x = {},
lualine_y = {},
lualine_z = {},
},
tabline = {},
extensions = {},
}
+31
View File
@@ -0,0 +1,31 @@
vim.cmd[[
" Use Tab to expand and jump through snippets
imap <silent><expr> <Tab> luasnip#expand_or_jumpable() ? '<Plug>luasnip-expand-or-jump' : '<Tab>'
smap <silent><expr> <Tab> luasnip#jumpable(1) ? '<Plug>luasnip-jump-next' : '<Tab>'
" Use Shift-Tab to jump backwards through snippets
imap <silent><expr> <S-Tab> luasnip#jumpable(-1) ? '<Plug>luasnip-jump-prev' : '<S-Tab>'
smap <silent><expr> <S-Tab> luasnip#jumpable(-1) ? '<Plug>luasnip-jump-prev' : '<S-Tab>'
" Expand or jump in insert mode
imap <silent><expr> <Tab> luasnip#expand_or_jumpable() ? '<Plug>luasnip-expand-or-jump' : '<Tab>'
" Jump forward through tabstops in visual mode
smap <silent><expr> <Tab> luasnip#jumpable(1) ? '<Plug>luasnip-jump-next' : '<Tab>'
]]
require("luasnip").config.set_config({ -- Setting LuaSnip config
-- Enable autotriggered snippets
enable_autosnippets = true,
-- Use Tab (or some other key if you prefer) to trigger visual selection
store_selection_keys = "<Tab>",
})
-- JAKENOTE, relative imports *do not work* with nixos. don't GG yourself blud.
require("luasnip.loaders.from_lua").load({
paths = vim.fn.stdpath('config') .. "/snippets/"
})
-- require("luasnip.loaders.from_lua").lazy_load({paths = "./snippets/"})
@@ -0,0 +1,4 @@
-- browser
vim.g.mkdp_browser = "firefox"
-- keybindings
vim.keymap.set("n", "<leader>m", "<plug>MarkdownPreview")
@@ -0,0 +1,19 @@
-- require('mini.animate').setup()
-- require('mini.animate').setup({
-- cursor = {
-- enable = true,
-- },
-- scroll = {
-- enable = false,
-- },
-- resize = {
-- enable = false,
-- },
-- open = {
-- enable = false,
-- },
-- close = {
-- enable = false,
-- },
-- })
@@ -0,0 +1,6 @@
vim.g.NERDSpaceDelims = 1;
vim.g.NERDAltDelims_c = 1;
-- the _ key is actually / because nvim/vim does not recognize that!
-- vmap <C-_> <plug>NERDCommenterToggle"
-- nmap <C-_> <plug>NERDCommenterToggle
+58
View File
@@ -0,0 +1,58 @@
-- buh https://gist.github.com/mrpmohiburrahman/b7ec0d47cd043d3a2ed4c10a20504d4e
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
vim.opt.termguicolors = true
local function my_on_attach(bufnr)
local api = require "nvim-tree.api"
local function opts(desc)
return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
end
-- default mappings
api.config.mappings.default_on_attach(bufnr)
vim.keymap.set("n", "+", api.tree.change_root_to_node, opts "CD")
vim.keymap.set("n", "?", api.tree.toggle_help, opts "Help")
vim.keymap.set("n", "<ESC>", api.tree.close, opts "Close")
-- custom mappings
-- vim.keymap.set('n', '<C-o>', api.tree.open(), opts('Up'))
-- vim.keymap.set('n', '<C-o>', api.tree.close(), opts('Up'))
-- vim.keymap.set('n', '?', api.tree.toggle_help, opts('Help'))
end
vim.keymap.set("n", "<C-o>", "<cmd>NvimTreeToggle<CR>", {
desc = "Toggle NvimTree"
})
require('nvim-tree').setup()
require('nvim-tree').setup({
on_attach = my_on_attach,
sort_by = 'case_sensitive',
view = {
adaptive_size = false,
-- mappings = {
-- list = {
-- { key = 'u', action = 'dir_up' },
-- },
-- },
width = 30,
},
renderer = {
group_empty = true,
},
filters = {
dotfiles = true,
exclude = {".git", ".jpg", ".mp4", ".ogg", ".iso", ".pdf", ".odt", ".png", ".gif", ".db", ".class"},
},
actions = {
open_file = {
resize_window = false
}
},
})
@@ -0,0 +1 @@
vim.b.presenting_slide_separator = "---"
+11
View File
@@ -0,0 +1,11 @@
require('smear_cursor').setup({
scroll_buffer_space = false,
smear_between_buffers = false,
smear_between_neighbor_lines = false,
scroll_buffer_space = false,
stiffness = 0.5,
trailing_stiffness = 0.5,
matrix_pixel_threshold = 0.5,
damping = 0.9999, -- how "bouncy" the cursor is. 1 makes the cursor freeze in the top left lmao
smear_insert_mode = false,
})
+10
View File
@@ -0,0 +1,10 @@
if vim.g.goyo_if then
return
end
local builtin = require('telescope.builtin')
vim.g.mapleader = ","
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' })
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' })
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
+31
View File
@@ -0,0 +1,31 @@
-- Tokyonight configuration in Lua
require("tokyonight").setup({
-- use the night style
style = "night",
-- disable italic for functions
styles = {
functions = {}
},
-- Change the "hint" color to the "orange" color, and make the "error" color bright red
on_colors = function(colors)
-- colors.hint = colors.orange
colors.bg = "#0d0d0d" -- dark af bruh
colors.fg = "#e3e1e1"
end
})
vim.cmd([[
colorscheme tokyonight
]])
-- vim.g.tokyonight_style = "day"
-- vim.g.tokyonight_italic_functions = true
-- vim.g.tokyonight_sidebars = { "qf", "vista_kind", "terminal", "packer" }
-- vim.g.tokyonight_colors = {
-- bg_dark = "#ff0000",
-- bg = "#0d0d0d",
-- fg = "#e3e1e1",
-- }
+16
View File
@@ -0,0 +1,16 @@
require('nvim-treesitter.configs').setup {
ensure_installed = {},
auto_install = false,
highlight = { enable = true },
indent = { enable = true },
}
require('nvim-treesitter.configs').setup({
highlight = {
enable = true, -- keep TS for everything else
disable = { "markdown", "markdown_inline" },
additional_vim_regex_highlighting = false,
},
indent = { enable = false },
incremental_selection = { enable = false },
})
+53
View File
@@ -0,0 +1,53 @@
-- Enable filetype plugins, indent, and syntax highlighting.
vim.cmd("filetype plugin indent on")
vim.cmd("syntax enable")
-- Viewer options: either with a built-in viewer method or with a generic interface.
vim.g.vimtex_view_method = 'zathura'
vim.g.vimtex_view_general_viewer = 'zathura'
vim.g.vimtex_view_general_options = '--unique file:@pdf#src:@line@tex'
-- Set the TeX flavor and quickfix mode.
vim.g.tex_flavor = 'latex'
-- vim.g.vimtex_quickfix_mode = 0
-- vim.g.vimtex_quickfix_enabled = 0
-- Compiler backend.
-- vim.g.vimtex_compiler_method = 'latexmk'
vim.g.vimtex_quickfix_autoclose_after_keystrokes = 3
vim.g.vimtex_compiler_method = "tectonic"
vim.g.vimtex_compiler_tectonic = {
options = {
"--keep-intermediates", -- faster compile times
"--keep-logs",
"--synctex",
"-Z shell-escape",
-- "-Z deterministic-mode", -- breaks synctex
},
}
-- Set the local leader (default is "\"; here we change it to comma).
vim.g.maplocalleader = ','
-- Configure warnings to ignore.
-- vim.g.Tex_IgnoredWarnings = [[
-- Package hyperref Warning
-- Token not allowed in a PDF string (Unicode)
-- removing math shift
-- removing superscript
-- Underfull
-- Overfull
-- specifier changed to
-- You have requested
-- Missing number, treated as zero.
-- There were undefined references
-- Citation %.%# undefined
-- Double space found.
-- ]]
-- vim.g.Tex_IgnoreLevel = 8
-- Delete extra compilation files when a TeX buffer is deleted.
-- vim.api.nvim_create_autocmd("BufDelete", {
-- pattern = "*.tex",
-- command = "silent! !latexmk -c > /dev/null 2>&1 %:p",
-- })