diff --git a/README.md b/README.md index 5fae951..137a0a2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # DOTFILES ## macOS +https://gist.github.com/sarthakpranesh/c4ba43a2f8e75518acedb9480087a3ee + ```bash # cli tools + rosetta xcode-select --install diff --git a/alacritty/.config/alacritty/alacritty.toml b/alacritty/.config/alacritty/alacritty.toml new file mode 100644 index 0000000..ad5fa91 --- /dev/null +++ b/alacritty/.config/alacritty/alacritty.toml @@ -0,0 +1,132 @@ +live_config_reload = true + +[colors] +draw_bold_text_with_bright_colors = true + +[colors.bright] +black = "0x4C566A" +blue = "0x81A1C1" +cyan = "0x8FBCBB" +green = "0xA3BE8C" +magenta = "0xB48EAD" +red = "0xBF616A" +white = "0xECEFF4" +yellow = "0xEBCB8B" + +[colors.cursor] +cursor = "0xD8DEE9" +text = "0x2E3440" + +[colors.normal] +black = "0x3B4252" +blue = "0x81A1C1" +cyan = "0x88C0D0" +green = "0xA3BE8C" +magenta = "0xB48EAD" +red = "0xBF616A" +white = "0xE5E9F0" +yellow = "0xEBCB8B" + +[colors.primary] +background = "0x2E3440" +foreground = "0xD8DEE9" + +[cursor] +style = "Block" +unfocused_hollow = true + +[env] +TERM = "xterm-256color" + +[font] +size = 20.0 + +[font.bold] +family = "Fira Code" +style = "Bold" + +[font.glyph_offset] +x = 0 +y = 0 + +[font.italic] +family = "Fira Code" +style = "Light" + +[font.normal] +family = "Fira Code" +style = "Medium" + +[font.offset] +x = 0 +y = 0 + +[[keyboard.bindings]] +action = "Paste" +key = "V" +mods = "Command" + +[[keyboard.bindings]] +action = "Copy" +key = "C" +mods = "Command" + +[[keyboard.bindings]] +action = "Paste" +key = "Paste" + +[[keyboard.bindings]] +action = "Copy" +key = "Copy" + +[[keyboard.bindings]] +action = "Quit" +key = "Q" +mods = "Command" + +[[keyboard.bindings]] +action = "Quit" +key = "W" +mods = "Command" + +[[keyboard.bindings]] +action = "ResetFontSize" +key = "Key0" +mods = "Command" + +[[keyboard.bindings]] +action = "IncreaseFontSize" +key = "Equals" +mods = "Command" + +[[keyboard.bindings]] +action = "DecreaseFontSize" +key = "Minus" +mods = "Command" + +[[keyboard.bindings]] +chars = "\u0002" +key = "F18" + +[mouse] +hide_when_typing = true + +[selection] +semantic_escape_chars = ",│`|:\"' ()[]{}<>" + +[shell] +args = ["-l", "-c", "/opt/homebrew/bin/tmux attach || /opt/homebrew/bin/tmux"] +program = "/bin/bash" + +[window] +decorations = "none" +dynamic_title = true +startup_mode = "Maximized" + +[window.dimensions] +columns = 80 +lines = 24 + +[window.padding] +x = 0 +y = 0 diff --git a/bash/.bashrc b/bash/.bashrc index acd6468..c5d4575 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -37,6 +37,7 @@ export BASH_SILENCE_DEPRECATION_WARNING=1 export HOMEBREW_NO_ENV_HINTS=true export RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/homebrew/opt/openssl@1.1" export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.:/usr/local/lib +# export LIBRARY_PATH="$LIBRARY_PATH:$(brew --prefix)/lib" export EDITOR=nvim export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 @@ -73,6 +74,7 @@ alias gcom='git checkout master' alias gcob='git checkout -b' alias gd='git diff' alias gdc='git diff --cached' +alias gdn='git diff --no-index' alias gc='git commit' alias gca='git commit --amend' alias gcw='git commit -m "wip"' diff --git a/htop/.config/htop/htoprc b/htop/.config/htop/htoprc index a805c30..1523d35 100644 --- a/htop/.config/htop/htoprc +++ b/htop/.config/htop/htoprc @@ -1,6 +1,6 @@ # Beware! This file is rewritten by htop when settings are changed in the interface. # The parser is also very primitive, and not human-friendly. -htop_version=3.2.2 +htop_version=3.3.0 config_reader_min_version=3 fields=0 48 17 18 38 39 2 46 47 49 1 hide_kernel_threads=1 @@ -46,8 +46,8 @@ all_branches_collapsed=0 screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT STATE PERCENT_CPU PERCENT_MEM TIME Command .sort_key=PERCENT_CPU .tree_sort_key=PERCENT_CPU -.tree_view=1 .tree_view_always_by_pid=0 +.tree_view=1 .sort_direction=1 .tree_sort_direction=-1 .all_branches_collapsed=0 diff --git a/karabiner/.config/karabiner/karabiner.json b/karabiner/.config/karabiner/karabiner.json index 12585a6..69fc2e0 100644 --- a/karabiner/.config/karabiner/karabiner.json +++ b/karabiner/.config/karabiner/karabiner.json @@ -1863,4 +1863,4 @@ } } ] -} \ No newline at end of file +} diff --git a/vim/.config/nvim/lua/mappings.lua b/vim/.config/nvim/lua/mappings.lua index 75ae419..82b08ec 100644 --- a/vim/.config/nvim/lua/mappings.lua +++ b/vim/.config/nvim/lua/mappings.lua @@ -13,8 +13,11 @@ end vim.g.mapleader = ' ' nmap(';', ':') +map('v', ';', ':') nmap(',,', '') -nmap('w', ':w') -- TODO: stop this madness, :h autowrite +-- TODO: stop this madness, :h autowrite +-- doesnt seem to work well in terminal +nmap('w', ':w') nmap('Q', ':q!') nmap('', ':nohlsearch', { silent = true }) @@ -28,7 +31,7 @@ nmap('k', 'gk') nmap('H', '^') nmap('L', '$') nmap('J', 'mzJ`z') -nmap('K', '') +-- nmap('K', '') nmap('gQ', '') nmap('vv', ':vs') @@ -50,20 +53,21 @@ map('v', '<', '', '>gv') -- vim-easy-align -vim.keymap.set("n", "ga", "(EasyAlign)") -vim.keymap.set("x", "ga", "(EasyAlign)") +map("n", "ga", "(EasyAlign)") +map("x", "ga", "(EasyAlign)") -- nvim-tree.lua -nmap('n', ':NvimTreeToggle') -nmap('N', ':NvimTreeFindFile') +-- nmap('n', ':NvimTreeToggle') +-- nmap('N', ':NvimTreeFindFile') +vim.keymap.set("n", "-", "Oil", { desc = "Open parent directory" }) -- glow.vim nmap('p', ':Glow') -- fugitive.vim -nmap('ga',':Gwrite') -nmap('gs',':Git') -nmap('gb',':Git blame') +nmap('ga', ':Gwrite') +nmap('gs', ':Git') +nmap('gb', ':Git blame') -- rails-vim nmap('a', ':A') @@ -78,8 +82,28 @@ nmap('', 'CtrlSFPrompt') -- trim whitespace nmap('W', ':TrimWhitespace') - -- EXPERIMENTAL: --- nmap('x', ':!rm %') nmap('x', ":call delete(expand('%')) | bdelete!") + nmap('q', ':copen') +nmap(']q', ':cnext') +nmap('[q', ':cprevious') + +-- command mode +vim.keymap.set('c', '', '') +vim.keymap.set('c', '', '') + +-- paste in visual mode and keep available +local expr = { expr = true, noremap = false, silent = false } +vim.keymap.set('x', 'p', [['pgv"'.v:register.'y`>']], expr) +vim.keymap.set('x', 'P', [['Pgv"'.v:register.'y`>']], expr) + +-- vim.keymap.set('n', 'gQ', 'mzgggqG`zdelmarks zzz', { desc = 'Format buffer' }) + +vim.keymap.set('n', '', 'zz', { desc = 'Scroll downwards' }) +vim.keymap.set('n', '', 'zz', { desc = 'Scroll upwards' }) + +-- vim.keymap.set('n', 'to', 'tabonly', { desc = 'Close other tab pages' }) + +-- Make U opposite to u. +-- vim.keymap.set('n', 'U', '', { desc = 'Redo' }) diff --git a/vim/.config/nvim/lua/plugins/init.lua b/vim/.config/nvim/lua/plugins/init.lua index 283e433..e609f5e 100644 --- a/vim/.config/nvim/lua/plugins/init.lua +++ b/vim/.config/nvim/lua/plugins/init.lua @@ -125,7 +125,26 @@ packer.startup(function() -- EXPERIMENTAL: trying out different plugins use { 'skywind3000/asyncrun.vim' } - use {'kevinhwang91/nvim-bqf', ft = 'qf'} -- better qf + use { 'kevinhwang91/nvim-bqf', ft = 'qf' } + use { 'kevinhwang91/nvim-pqf', ft = 'qf' } + use { 'weilbith/vim-qfloc-edit', ft = 'qf' } + + use({ + "stevearc/oil.nvim", + config = function() + require("oil").setup({ + -- skip_confirm_for_simple_edits = true, + -- prompt_save_on_select_new_entry = true, + default_file_explorer = true, + + view_options = { + -- Show files and directories that start with "." + show_hidden = false, + } + }) + end, + }) + end) require('plugins.lsp') diff --git a/vim/.config/nvim/lua/plugins/telescope.lua b/vim/.config/nvim/lua/plugins/telescope.lua index 53fa990..35c205a 100644 --- a/vim/.config/nvim/lua/plugins/telescope.lua +++ b/vim/.config/nvim/lua/plugins/telescope.lua @@ -2,8 +2,11 @@ local M = {} function M.setup() vim.keymap.set('n', 'ff', function() require('telescope.builtin').find_files({ hidden = true }) end) + vim.keymap.set('n', 'fb', function() require('telescope.builtin').buffers({ hidden = true }) end) vim.keymap.set('n', 'fo', function() require('telescope.builtin').find_files({ cwd = '~/Syncthing/Obsidian/Personal/', search_file = '*.md' }) end) + vim.keymap.set('n', 'fO', function() require('telescope.builtin').live_grep({ cwd = '~/Syncthing/Obsidian/Personal/', search_file = '*.md' }) end) vim.keymap.set('n', 'fh', function() require('telescope.builtin').help_tags() end) + vim.keymap.set('n', 'fq', function() require('telescope.builtin').quickfix() end) -- require('telescope.builtin').find_files({ hidden = true }) end diff --git a/vim/.config/nvim/lua/settings.lua b/vim/.config/nvim/lua/settings.lua index 3854c7c..e58fe13 100644 --- a/vim/.config/nvim/lua/settings.lua +++ b/vim/.config/nvim/lua/settings.lua @@ -1,6 +1,4 @@ -local cmd, opt, g = vim.cmd, vim.opt, vim.g - -cmd('au TextYankPost * lua vim.highlight.on_yank { timeout = 250 }') +local opt, g = vim.opt, vim.g opt.smartindent = true -- Autoindenting when starting a new line opt.completeopt = {'menu', 'menuone', 'noselect'} @@ -33,16 +31,16 @@ opt.listchars = { nbsp = '⦸', -- CIRCLED REVERSE SOLIDUS (U+29B8, UTF-8: E2 A6 B8) extends = '»', -- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (U+00BB, UTF-8: C2 BB) precedes = '«', -- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (U+00AB, UTF-8: C2 AB) - -- tab = ' ', -- '▷─' WHITE RIGHT-POINTING TRIANGLE (U+25B7, UTF-8: E2 96 B7) + BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL (U+2505, UTF-8: E2 94 85) trail = '•', -- BULLET (U+2022, UTF-8: E2 80 A2) space = ' ', - tab = '<->' + tab = '→ ' } opt.fillchars = { diff = '⣿', eob = ' ', -- NO-BREAK SPACE (U+00A0, UTF-8: C2 A0) to suppress ~ at EndOfBuffer - vert = '│', -- window border when window splits vertically ─ ┴ ┬ ┤ ├ ┼ + -- vert = '│', -- window border when window splits vertically ─ ┴ ┬ ┤ ├ ┼ + vert = '│', msgsep = '‾', fold = '·', -- MIDDLE DOT (U+00B7, UTF-8: C2 B7) foldopen = '▾', @@ -79,6 +77,7 @@ opt.shortmess = { if vim.fn.executable('rg') > 0 then vim.o.grepprg = [[rg --glob "!.git" --no-heading --vimgrep --follow $*]] + -- opt.grepformat = opt.grepformat ^ { '%f:%l:%c:%m' } end -- ignore when autocompleting @@ -104,3 +103,41 @@ g.ctrlsf_mapping = { } g.ruby_host_prog = 'asdf exec neovim-ruby-host' + +-- highlight yanked text briefly +vim.api.nvim_create_autocmd('TextYankPost', { + callback = function() + vim.highlight.on_yank { + higroup = 'Search', + timeout = 250, + on_visual = true, + } + end, +}) + +-- resize splits when Vim is resized +vim.api.nvim_create_autocmd('VimResized', { command = 'horizontal wincmd =' }) + +vim.api.nvim_create_augroup('cursorline_focus', {}) +vim.api.nvim_create_autocmd({ 'InsertLeave', 'WinEnter' }, { + group = 'cursorline_focus', + callback = function() + vim.wo.cursorline = true + end, +}) +vim.api.nvim_create_autocmd({ 'InsertEnter', 'WinLeave' }, { + group = 'cursorline_focus', + callback = function() + vim.wo.cursorline = false + end, +}) + +-- Experimental +opt.iskeyword:prepend { '-' } -- treat dash separated words as a word textobject + +opt.updatetime = 100 +opt.timeout = true +opt.timeoutlen = 1000 +opt.ttimeoutlen = 10 + +vim.cmd('packadd cfilter') diff --git a/vim/.config/nvim/plugin/packer_compiled.lua b/vim/.config/nvim/plugin/packer_compiled.lua index 7e34555..965f7c1 100644 --- a/vim/.config/nvim/plugin/packer_compiled.lua +++ b/vim/.config/nvim/plugin/packer_compiled.lua @@ -49,8 +49,8 @@ local function save_profiles(threshold) end time([[Luarocks path setup]], true) -local package_path_str = "/Users/madundead/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/Users/madundead/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/Users/madundead/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/Users/madundead/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" -local install_cpath_pattern = "/Users/madundead/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" +local package_path_str = "/Users/madundead/.cache/nvim/packer_hererocks/2.1.1703358377/share/lua/5.1/?.lua;/Users/madundead/.cache/nvim/packer_hererocks/2.1.1703358377/share/lua/5.1/?/init.lua;/Users/madundead/.cache/nvim/packer_hererocks/2.1.1703358377/lib/luarocks/rocks-5.1/?.lua;/Users/madundead/.cache/nvim/packer_hererocks/2.1.1703358377/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/Users/madundead/.cache/nvim/packer_hererocks/2.1.1703358377/lib/lua/5.1/?.so" if not string.find(package.path, package_path_str, 1, true) then package.path = package.path .. ';' .. package_path_str end @@ -173,6 +173,13 @@ _G.packer_plugins = { path = "/Users/madundead/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", url = "https://github.com/neovim/nvim-lspconfig" }, + ["nvim-pqf"] = { + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/Users/madundead/.local/share/nvim/site/pack/packer/opt/nvim-pqf", + url = "https://github.com/kevinhwang91/nvim-pqf" + }, ["nvim-tree.lua"] = { commands = { "NvimTreeToggle", "NvimTreeFindFile" }, config = { "\27LJ\2\n@\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\vconfig\22plugins/nvim-tree\frequire\0" }, @@ -200,6 +207,12 @@ _G.packer_plugins = { path = "/Users/madundead/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects", url = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects" }, + ["oil.nvim"] = { + config = { "\27LJ\2\n]\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\17view_options\1\0\0\1\0\1\16show_hidden\1\nsetup\boil\frequire\0" }, + loaded = true, + path = "/Users/madundead/.local/share/nvim/site/pack/packer/start/oil.nvim", + url = "https://github.com/stevearc/oil.nvim" + }, ["packer.nvim"] = { loaded = false, needs_bufread = false, @@ -250,6 +263,13 @@ _G.packer_plugins = { path = "/Users/madundead/.local/share/nvim/site/pack/packer/start/vim-fugitive", url = "https://github.com/tpope/vim-fugitive" }, + ["vim-qfloc-edit"] = { + loaded = false, + needs_bufread = true, + only_cond = false, + path = "/Users/madundead/.local/share/nvim/site/pack/packer/opt/vim-qfloc-edit", + url = "https://github.com/weilbith/vim-qfloc-edit" + }, ["vim-rails"] = { loaded = true, path = "/Users/madundead/.local/share/nvim/site/pack/packer/start/vim-rails", @@ -278,20 +298,10 @@ _G.packer_plugins = { path = "/Users/madundead/.local/share/nvim/site/pack/packer/start/vim-surround", url = "https://github.com/tpope/vim-surround" }, - ["vim-test"] = { - loaded = true, - path = "/Users/madundead/.local/share/nvim/site/pack/packer/start/vim-test", - url = "https://github.com/vim-test/vim-test" - }, ["vim-tmux-navigator"] = { loaded = true, path = "/Users/madundead/.local/share/nvim/site/pack/packer/start/vim-tmux-navigator", url = "https://github.com/christoomey/vim-tmux-navigator" - }, - vimux = { - loaded = true, - path = "/Users/madundead/.local/share/nvim/site/pack/packer/start/vimux", - url = "https://github.com/benmills/vimux" } } @@ -324,10 +334,6 @@ if not vim.g.packer_custom_loader_enabled then vim.g.packer_custom_loader_enabled = true end --- Setup for: telescope.nvim -time([[Setup for telescope.nvim]], true) -try_loadstring("\27LJ\2\n?\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\22plugins/telescope\frequire\0", "setup", "telescope.nvim") -time([[Setup for telescope.nvim]], false) -- Setup for: nord.nvim time([[Setup for nord.nvim]], true) try_loadstring("\27LJ\2\n:\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\17plugins.nord\frequire\0", "setup", "nord.nvim") @@ -335,10 +341,18 @@ time([[Setup for nord.nvim]], false) time([[packadd for nord.nvim]], true) vim.cmd [[packadd nord.nvim]] time([[packadd for nord.nvim]], false) +-- Setup for: telescope.nvim +time([[Setup for telescope.nvim]], true) +try_loadstring("\27LJ\2\n?\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\22plugins/telescope\frequire\0", "setup", "telescope.nvim") +time([[Setup for telescope.nvim]], false) -- Config for: nord.nvim time([[Config for nord.nvim]], true) try_loadstring("\27LJ\2\n;\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\vconfig\17plugins.nord\frequire\0", "config", "nord.nvim") time([[Config for nord.nvim]], false) +-- Config for: oil.nvim +time([[Config for oil.nvim]], true) +try_loadstring("\27LJ\2\n]\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\17view_options\1\0\0\1\0\1\16show_hidden\1\nsetup\boil\frequire\0", "config", "oil.nvim") +time([[Config for oil.nvim]], false) -- Conditional loads time([[Conditional loading of telescope-fzf-native.nvim]], true) require("packer.load")({"telescope-fzf-native.nvim"}, {}, _G.packer_plugins) @@ -380,12 +394,12 @@ vim.cmd [[augroup packer_load_aucmds]] vim.cmd [[au!]] -- Filetype lazy-loads time([[Defining lazy-load filetype autocommands]], true) -vim.cmd [[au FileType qf ++once lua require("packer.load")({'nvim-bqf'}, { ft = "qf" }, _G.packer_plugins)]] +vim.cmd [[au FileType qf ++once lua require("packer.load")({'nvim-pqf', 'nvim-bqf', 'vim-qfloc-edit'}, { ft = "qf" }, _G.packer_plugins)]] time([[Defining lazy-load filetype autocommands]], false) -- Event lazy-loads time([[Defining lazy-load event autocommands]], true) -vim.cmd [[au BufRead * ++once lua require("packer.load")({'nvim-treesitter'}, { event = "BufRead *" }, _G.packer_plugins)]] vim.cmd [[au BufNewFile * ++once lua require("packer.load")({'nvim-treesitter'}, { event = "BufNewFile *" }, _G.packer_plugins)]] +vim.cmd [[au BufRead * ++once lua require("packer.load")({'nvim-treesitter'}, { event = "BufRead *" }, _G.packer_plugins)]] time([[Defining lazy-load event autocommands]], false) vim.cmd("augroup END")