12 Commits

Author SHA1 Message Date
Michael Chalupiak
66391c3e4d Merge branch 'master' into arch-desktop 2026-05-03 18:11:54 -04:00
Michael Chalupiak
7cd118b1a1 Merge branch 'master' of github.com:mchalupiak/Dotfiles 2026-05-03 18:11:35 -04:00
Michael Chalupiak
6b6ec87c90 small overhaul of nvim 2026-05-03 18:11:21 -04:00
Michael Chalupiak
3ffd41b042 Merge remote-tracking branch 'origin' 2026-04-22 14:55:47 -04:00
Michael Chalupiak
450950ffb5 wezterm 2026-04-22 14:54:12 -04:00
Michael Chalupiak
d9c2fc0dd5 Merge branch 'master' into arch-desktop 2026-04-21 15:14:36 -04:00
Michael Chalupiak
f3817cf484 wezterm (yipee) 2026-04-21 15:14:21 -04:00
Michael Chalupiak
0c4779db6c Merge branch 'master' into arch-desktop 2026-04-20 21:30:53 -04:00
Michael Chalupiak
e917fee38e tmux for ghostty 2026-04-19 00:04:48 -04:00
Michael Chalupiak
facda5d25c Merge branch 'master' into arch-desktop 2026-04-10 10:50:15 -04:00
Michael Chalupiak
ddd4493d6d editor changes 2026-04-10 10:49:44 -04:00
Michael Chalupiak
20ef60b19e Aerc mail client and chawan browser 2026-02-03 23:26:05 -05:00
18 changed files with 507 additions and 282 deletions

1
.gitignore vendored
View File

@@ -12,6 +12,7 @@ config/.config/kak/plugins/*
config/.config/mutt/chalupmc@rose-hulman
config/.config/mutt/mikecchalupiak@outlook
config/.config/mutt/spamreciver1@outlook
config/.config/nvim/lazy-lock.json
config/.config/qt5ct/colors/*
config/.config/qutebrowser/autoconfig.yml
config/.config/qutebrowser/rosepine/*

View File

@@ -125,3 +125,48 @@
;; (add-to-list treesit-language-source-alist '(odin "https://github.com/tree-sitter-grammars/tree-sitter-odin"))
(setq lsp-inlay-hint-enable 't)
(after! mu4e
(setq sendmail-program (executable-find "msmtp")
send-mail-function #'smtpmail-send-it
message-sendmail-f-is-evil t
message-sendmail-extra-arguments '("--read-envelope-from")
message-send-mail-function #'message-send-mail-with-sendmail))
(set-email-account! "hosted";"mikec@mchalupiak.com"
'((mu4e-sent-folder . "/mikec@mchalupiak.com/Sent")
(mu4e-drafts-folder . "/mikec@mchalupiak.com/Drafts")
(mu4e-trash-folder . "/mikec@mchalupiak.com/Junk")
(mu4e-refile-folder . "/mikec@mchalupiak.com/INBOX"))
;;(smtpmail-smtp-user . "foo@bar.com")
;;(user-mail-address . "foo@bar.com") ;; only needed for mu < 1.4
;;(mu4e-compose-signature . "---\nYours truly\nThe Baz"))
t)
(set-email-account! "spamreciver1@outlook.com"
'((mu4e-sent-folder . "/spamreciver1@outlook.com/Sent")
(mu4e-drafts-folder . "/spamreciver1@outlook.com/Drafts")
(mu4e-trash-folder . "/spamreciver1@outlook.com/Junk")
(mu4e-refile-folder . "/spamreciver1@outlook.com/INBOX"))
;;(smtpmail-smtp-user . "foo@bar.com")
;;(user-mail-address . "foo@bar.com") ;; only needed for mu < 1.4
;;(mu4e-compose-signature . "---\nYours truly\nThe Baz"))
t)
(set-email-account! "mikecchalupiak@outlook.com"
'((mu4e-sent-folder . "/mikecchalupiak@outlook.com/Sent")
(mu4e-drafts-folder . "/mikecchalupiak@outlook.com/Drafts")
(mu4e-trash-folder . "/mikecchalupiak@outlook.com/Junk")
(mu4e-refile-folder . "/mikecchalupiak@outlook.com/INBOX"))
;;(smtpmail-smtp-user . "foo@bar.com")
;;(user-mail-address . "foo@bar.com") ;; only needed for mu < 1.4
;;(mu4e-compose-signature . "---\nYours truly\nThe Baz"))
t)
(set-email-account! "chalupmc@rose-hulman.edu"
'((mu4e-sent-folder . "/chalupmc@rose-hulman.edu/Sent")
(mu4e-drafts-folder . "/chalupmc@rose-hulman.edu/Drafts")
(mu4e-trash-folder . "/chalupmc@rose-hulman.edu/Junk")
(mu4e-refile-folder . "/chalupmc@rose-hulman.edu/INBOX"))
;;(smtpmail-smtp-user . "foo@bar.com")
;;(user-mail-address . "foo@bar.com") ;; only needed for mu < 1.4
;;(mu4e-compose-signature . "---\nYours truly\nThe Baz"))
t)
;;(setq +notmuch-sync-backend 'mbsync)

View File

@@ -38,7 +38,7 @@
indent-guides ; highlighted indent columns
;;ligatures ; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side
;; modeline ; snazzy, Atom-inspired modeline, plus API
modeline ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions
;;neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
@@ -182,7 +182,7 @@
(zig +lsp +tree-sitter) ; C, but simpler
:email
;;(mu4e +org +gmail)
(mu4e +org +gmail +mbsync)
;;notmuch
;;(wanderlust +gmail)

View File

@@ -22,3 +22,17 @@ theme = light:Dawnfox,dark:Carbonfox
window-decoration = true
shell-integration-features = true
mouse-scroll-multiplier = 1
# tmux style binds
keybind = ctrl+a>c=new_tab
keybind = ctrl+a>x=close_surface
keybind = ctrl+a>n=next_tab
keybind = ctrl+a>p=previous_tab
keybind = ctrl+a>comma=prompt_tab_title
keybind = ctrl+a>shift+5=new_split:right
keybind = ctrl+a>shift+quote=new_split:down
keybind = ctrl+a>o=goto_split:next
keybind = ctrl+a>l=goto_split:right
keybind = ctrl+a>h=goto_split:left
keybind = ctrl+a>j=goto_split:down
keybind = ctrl+a>k=goto_split:up

View File

@@ -85,26 +85,26 @@ pin = "46cf4ded12ee974a70bf8457263b67ad7ee0379d"
[language.typst.queries]
path = "queries/typst"
# swift
[swift.grammar.source.git]
url = "https://github.com/alex-pinkus/tree-sitter-swift"
pin = "57c1c6d6ffa1c44b330182d41717e6fe37430704"
[swift.grammar]
path = "src"
compile = "cc"
compile_args = ["-c", "-fpic", "../scanner.c", "-I", ".."]
compile_flags = ["-O3"]
link = "cc"
link_args = ["-shared", "-fpic", "scanner.o", "-o", "swift.so"]
link_flags = ["-O3"]
[language.swift.queries.source.git]
url = "https://github.com/helix-editor/helix"
pin = "6bedca80646ce7350fb73029adf802ce7d9e241d"
# # swift
# [swift.grammar.source.git]
# url = "https://github.com/alex-pinkus/tree-sitter-swift"
# pin = "57c1c6d6ffa1c44b330182d41717e6fe37430704"
[language.swift.queries]
path = "runtime/queries/swift"
#
# [swift.grammar]
# path = "src"
# compile = "cc"
# compile_args = ["-c", "-fpic", "../scanner.c", "-I", ".."]
# compile_flags = ["-O3"]
# link = "cc"
# link_args = ["-shared", "-fpic", "scanner.o", "-o", "swift.so"]
# link_flags = ["-O3"]
#
# [language.swift.queries.source.git]
# url = "https://github.com/helix-editor/helix"
# pin = "6bedca80646ce7350fb73029adf802ce7d9e241d"
#
# # url = "https://github.com/alex-pinkus/tree-sitter-swift"
# # pin = "57c1c6d6ffa1c44b330182d41717e6fe37430704"
#
# [language.swift.queries]
# path = "runtime/queries/swift"

View File

@@ -199,7 +199,7 @@ set-option global lsp_hover_anchor true
lsp-auto-signature-help-enable
lsp-inlay-hints-enable global
map global user k ':lsp-hover'
map global user k ':lsp-hover<ret>'
hook global WinSetOption filetype=(c|cpp|zig|rust|python|ruby|lua|java|html|css) %{
hook window -group semantic-tokens BufReload .* lsp-semantic-tokens
@@ -249,7 +249,7 @@ set-option global lsp_config %{
define-command fzf-buffer -docstring 'Invoke fzf to select a buffer' %{
evaluate-commands %sh{
tmux split-window -l 30% "(printf \"%s\n\" $kak_quoted_buflist | fzf --bind 'focus:execute-silent(echo \"eval -client $kak_client %{ e {} }\" | kak -p $kak_session)' || echo \"$kak_buffile\") | xargs -I{} echo \"eval -client $kak_client %{ e '{}' }\" | /usr/bin/kak -p $kak_session"
tmux split-window -l 20% "(printf \"%s\n\" $kak_quoted_buflist | fzf --bind 'focus:execute-silent(echo \"eval -client $kak_client %{ e {} }\" | kak -p $kak_session)' || echo \"$kak_buffile\") | xargs -I{} echo \"eval -client $kak_client %{ e '{}' }\" | /usr/bin/kak -p $kak_session"
}
}

View File

@@ -1,69 +1,74 @@
{
"auto-dark-mode.nvim": { "branch": "master", "commit": "e300259ec777a40b4b9e3c8e6ade203e78d15881" },
"blink.cmp": { "branch": "main", "commit": "327fff91fe6af358e990be7be1ec8b78037d2138" },
"catppuccin": { "branch": "main", "commit": "8c4125e3c746976ba025dc5d908fa22c6aa09486" },
"blink.cmp": { "branch": "main", "commit": "451168851e8e2466bc97ee3e026c3dcb9141ce07" },
"catppuccin": { "branch": "main", "commit": "a7788416689dbefea659d9e9415c87926b0ba5d8" },
"cellular-automaton.nvim": { "branch": "main", "commit": "1606e9d5d04ff254023c3f3c62842d065708d6d3" },
"compiler-explorer.nvim": { "branch": "master", "commit": "ee8e7a2808bdad67cd2acb61b5c9ffa7735c7ec9" },
"command.nvim": { "branch": "main", "commit": "cf73df4f9afc123b1fc3a8674d3fae08d2ad67db" },
"compiler-explorer.nvim": { "branch": "master", "commit": "523c6a7a3d8c034b421a71eb20b0da75b0b16f62" },
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
"dim.lua": { "branch": "main", "commit": "a3a0dce75f7212ab61130e77a8157530bd23db15" },
"dracula.nvim": { "branch": "main", "commit": "041d923368d540a1e438989ce8f915628081a56a" },
"dracula.nvim": { "branch": "main", "commit": "ae752c13e95fb7c5f58da4b5123cb804ea7568ee" },
"dropbar.nvim": { "branch": "master", "commit": "ce202248134e3949aac375fd66c28e5207785b10" },
"everblush": { "branch": "main", "commit": "678f808d81801b983b6fb8296fb17ba1b2785d7c" },
"everforest": { "branch": "master", "commit": "0909c23a2b8cbc337cffe91fda36381747e88506" },
"everforest": { "branch": "master", "commit": "b03a03148c8b34c24c96960b93da9c8883d11f54" },
"fennel.vim": { "branch": "main", "commit": "c6a9c035ca108cbb24273d96cd6277fb8fbc60b4" },
"firenvim": { "branch": "master", "commit": "a18ef908ac06b52ad9333b70e3e630b0a56ecb3d" },
"github-colors": { "branch": "main", "commit": "7292749e49e6f870e63879a528bb05c8c8d1a59a" },
"github-nvim-theme": { "branch": "main", "commit": "c106c9472154d6b2c74b74565616b877ae8ed31d" },
"gitsigns.nvim": { "branch": "main", "commit": "20ad4419564d6e22b189f6738116b38871082332" },
"gruvbox-material": { "branch": "master", "commit": "834dbf21836862300ced7444db4262b796330ab7" },
"gruvbox.nvim": { "branch": "main", "commit": "5e0a460d8e0f7f669c158dedd5f9ae2bcac31437" },
"gitsigns.nvim": { "branch": "main", "commit": "caa98e2e5e4c23a1652c23be839d2e1722cecc29" },
"gruvbox-material": { "branch": "master", "commit": "790afe9dd085aa04eccd1da3626c5fa05c620e53" },
"gruvbox.nvim": { "branch": "main", "commit": "334d5fd49fc8033f26408425366c66c6390c57bb" },
"hex.nvim": { "branch": "master", "commit": "b46e63356a69e8d6f046c38a9708d55d17f15038" },
"lazy.nvim": { "branch": "main", "commit": "f0f5bbb9e5bfae5e6468f9359ffea3d151418176" },
"leap.nvim": { "branch": "main", "commit": "44e3a60a7a62069e5c9445b7a8104612d4f060cb" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"leap.nvim": { "branch": "main", "commit": "b960d5038c5c505c52e56a54490f9bbb1f0e6ef6" },
"love2d.nvim": { "branch": "main", "commit": "25715394680590f56aab90390d430cab0dc46808" },
"lua-utils.nvim": { "branch": "main", "commit": "e565749421f4bbb5d2e85e37c3cef9d56553d8bd" },
"lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "35ec9e1425c2f9a36f556893336af4f302c63214" },
"mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "25f609e7fca78af7cede4f9fa3af8a94b1c4950b" },
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
"melange-nvim": { "branch": "master", "commit": "ce42f6b629beeaa00591ba73a77d3eeac4cf28ce" },
"mellow.nvim": { "branch": "main", "commit": "5cd188489bcc7eb512f0a30581ad972070f8e5cd" },
"mini.nvim": { "branch": "main", "commit": "ee4a4a4abed25e3d108d985b0553c5271f2f71aa" },
"mellow.nvim": { "branch": "main", "commit": "6273b7f0ddf6ac2b75021b3bc0bd8b3305cfeef1" },
"mini.nvim": { "branch": "main", "commit": "3923662bf3d6ca49a9503f8d7196ea0450983e6a" },
"monochrome.nvim": { "branch": "main", "commit": "2de78d9688ea4a177bcd9be554ab9192337d35ff" },
"monokai.nvim": { "branch": "master", "commit": "b8bd44d5796503173627d7a1fc51f77ec3a08a63" },
"moonlight.nvim": { "branch": "pure-lua", "commit": "e24e4218ec680b6396532808abf57ca0ada82e66" },
"moonscript-vim": { "branch": "master", "commit": "715c96c7c3b02adc507f84bf5754985460afc426" },
"multicursor.nvim": { "branch": "1.0", "commit": "704b99f10a72cc05d370cfeb294ff83412a8ab55" },
"nabla.nvim": { "branch": "master", "commit": "9b69b709063ccf40ac36fabb4fff7d90b3736475" },
"nelua.vim": { "branch": "main", "commit": "5bc2ce7cc1ae952940bb3419ad106c02820f4baf" },
"neogit": { "branch": "master", "commit": "c6d00913f802acedfb93c01267e89185f25800ca" },
"neorg": { "branch": "main", "commit": "e206c9642f4a115cd836e76c98ef785623d335bc" },
"nelua.vim": { "branch": "main", "commit": "08ddb2e0dda7d2bd6cd9d4efadb6a07547e135c3" },
"neogit": { "branch": "master", "commit": "4681c1fdac1b730592ae195576e87406f7255750" },
"neorg": { "branch": "main", "commit": "408fc04013a95da8f217cb0958a06b6a77c01743" },
"nightfox.nvim": { "branch": "main", "commit": "ba47d4b4c5ec308718641ba7402c143836f35aa9" },
"nord.nvim": { "branch": "master", "commit": "80c1e5321505aeb22b7a9f23eb82f1e193c12470" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" },
"nvim-highlight-colors": { "branch": "main", "commit": "e0c4a58ec8c3ca7c92d3ee4eb3bc1dd0f7be317e" },
"nvim-lspconfig": { "branch": "master", "commit": "cbd1e91296189a765094810de1b71a04e2597579" },
"nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
"nvim-highlight-colors": { "branch": "main", "commit": "e2cb22089cc2358b2b995c09578224f142de6039" },
"nvim-lspconfig": { "branch": "master", "commit": "5492a24edd68f78d8a778edcb8905d0a28993abc" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-surround": { "branch": "main", "commit": "fcfa7e02323d57bfacc3a141f8a74498e1522064" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "a9742cbc1f95db9eaf3293bf8cd0622ca36542bb" },
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
"nvim-surround": { "branch": "main", "commit": "1098d7b3c34adcfa7feb3289ee434529abd4afd1" },
"nvim-treesitter": { "branch": "master", "commit": "cf12346a3414fa1b06af75c79faebe7f76df080a" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" },
"nvim-ts-autotag": { "branch": "main", "commit": "8e1c0a389f20bf7f5b0dd0e00306c1247bda2595" },
"nvim-unception": { "branch": "main", "commit": "df0e505f0f1371c49c2bcf993985962edb5a279d" },
"nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" },
"nvim-web-devicons": { "branch": "master", "commit": "d7462543c9e366c0d196c7f67a945eaaf5d99414" },
"oceanic-next": { "branch": "master", "commit": "09833f72d5ba23de2e8bcae18f479f326f5f677a" },
"oil.nvim": { "branch": "master", "commit": "7e1cd7703ff2924d7038476dcbc04b950203b902" },
"oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" },
"one-nvim": { "branch": "main", "commit": "faf6fb3f98fccbe009c3466f657a8fff84a5f956" },
"onedark.nvim": { "branch": "master", "commit": "6c10964f91321c6a0f09bcc41dd64e7a6602bc4f" },
"onedark.nvim": { "branch": "master", "commit": "213c23ae45a04797572242568d5d51937181792d" },
"pathlib.nvim": { "branch": "main", "commit": "57e5598af6fe253761c1b48e0b59b7cd6699e2c1" },
"plantuml-syntax": { "branch": "master", "commit": "9d4900aa16674bf5bb8296a72b975317d573b547" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"range-highlight.nvim": { "branch": "master", "commit": "f54aec737f138e52c187a8bea77b41347fd86f12" },
"rose-pine": { "branch": "main", "commit": "eb3ff49a4f2b4e8b06d27de529e44fa52a60ab8a" },
"range-highlight.nvim": { "branch": "master", "commit": "097103da6550c2a34c029971c3d7da63d3fef320" },
"rose-pine": { "branch": "main", "commit": "cf2a288696b03d0934da713d66c6d71557b5c997" },
"sherbet.nvim": { "branch": "master", "commit": "5c4166eff70ec551ae0023edfb89141b25cc18c6" },
"snacks.nvim": { "branch": "main", "commit": "59c5545e91878c1f6218b032a881832bc98a46f3" },
"snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" },
"telescope-tabs": { "branch": "vim_ui_select", "commit": "f01bc722582fdcaa58ea37492b382ff109893d95" },
"tokyonight.nvim": { "branch": "main", "commit": "2642dbb83333e0575d1c3436e1d837926871c5fb" },
"tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
"v-vim": { "branch": "master", "commit": "1dc1388bafb89072f8349dbd96f9462ae22237cb" },
"vim-colors-xcode": { "branch": "master", "commit": "6d449229bf29176448bd06377689d7a8db0d1bee" },
"vim-colors-xcode": { "branch": "master", "commit": "2329a3ed092b4f72e9361a94567a5431e36e7d9c" },
"vim-etlua": { "branch": "master", "commit": "bb2974d0134ce6da60c3be0d82d809976b859c1c" },
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
"vim-teal": { "branch": "master", "commit": "a416397cf7aad7b03ef53fd3d9847fd764bcbfee" },
"vscode.nvim": { "branch": "main", "commit": "cb9df0873c10a21d05362455ae3bb355eadcef6b" }
"vlime": { "branch": "master", "commit": "e276e9a6f37d2699a3caa63be19314f5a19a1481" },
"vscode.nvim": { "branch": "main", "commit": "aa1102a7e15195c9cca22730b09224a7f7745ba8" }
}

View File

@@ -4,12 +4,44 @@ local setnx = function(key, command, desc)
end
setnx('<leader>ff', Snacks.picker.files, 'Find files')
setnx('<leader>fF', function() Snacks.picker.files({ dirs = { '.' }}) end, 'Find files in current dir')
setnx('<leader>f/', Snacks.picker.grep_word, 'Search current word')
setnx('<leader>fg', Snacks.picker.grep, 'Search in files')
setnx('<leader>fr', Snacks.picker.recent, 'Find recent files')
setnx('<leader>b', Snacks.picker.buffers, 'List buffers')
setnx('<leader>h', Snacks.picker.help, 'Search help')
setnx('<leader>X', require'hex'.toggle, 'Toggle hex editor')
setnx('<leader>P', '<CMD>Markview splitToggle<CR>', 'Open markview preview')
setnx('<leader>z', Snacks.zen.zen, 'Toggle snacks zen mode')
local setto = function(key, command, desc)
set({ 'x', 'o' }, key, command, { desc = desc })
end
local setton = function(key, command, desc)
set({ 'n', 'x', 'o' }, key, command, { desc = desc })
end
local select_to = function(query)
return function ()
require'nvim-treesitter-textobjects.select'.select_textobject(query, "textobjects")
end
end
local move_next_start = function(query)
return function ()
require'nvim-treesitter-textobjects.move'.goto_next_start(query, "textobjects")
end
end
local move_prev_start = function(query)
return function ()
require'nvim-treesitter-textobjects.move'.goto_previous_start(query, "textobjects")
end
end
setto('if', select_to("@function.inner"), 'Select inside function')
setto('af', select_to("@function.outer"), 'Select around function')
setto('ia', select_to("@parameter.inner"), 'Select inside parameter')
setto('aa', select_to("@parameter.outer"), 'Select around parameter')
setton(']p', move_next_start("@parameter.inner"), 'Goto next parameter')
setton('[p', move_prev_start("@parameter.inner"), 'Goto previous parameter')
setnx('<leader>m', Snacks.picker.marks, 'Search marks')
setnx('<leader>q', Snacks.picker.qflist, 'Search quickfix list')
setnx('<leader>l', Snacks.picker.loclist, 'Search location list')
@@ -18,7 +50,7 @@ setnx('<leader>r', Snacks.picker.registers, 'Search registers')
setnx('<leader>s', Snacks.picker.spelling, 'List spelling suggestions')
setnx('<leader>M', Snacks.picker.man, 'Search man pages')
setnx('<leader>t', require'telescope-tabs'.list_tabs, 'List tabs')
setnx('<leader>c', Snacks.picker.colorschemes, 'Select colorscheme')
setnx('<leader>C', Snacks.picker.colorschemes, 'Select colorscheme')
setnx('<leader>N', Snacks.picker.notifications, 'List notifications')
local neogit = require('neogit')
@@ -33,6 +65,11 @@ setnx('<leader>om', '<CMD>Mason<CR>', 'Open Mason')
setnx('<leader>oc', '<CMD>cd ' .. vim.fn.stdpath('config') .. '<CR><CMD>Oil .<CR>', 'Open neovim configuration')
setnx('<leader>og', neogit.open, 'Open (neo)git')
setnx('<leader>cc', '<CMD>CommandExecute<CR>', 'Run shell command')
setnx('<leader>ct', '<CMD>CommandReopenTerminal<CR>', 'Open shell command terminal')
setnx('<leader>cl', '<CMD>CommandExecuteLast<CR>', 'Run last shell command')
setnx('<leader>cs', '<CMD>CommandExecuteSelection<CR>', 'Run selection as shell command')
-- Exit terminal mode with ESC
set('t', '<Esc>', '<C-\\><C-n>')
@@ -43,8 +80,8 @@ setnx('`', '\'', 'Goto mark without column')
setnx('<leader>x', '<CMD>bd!<CR>', 'Close Current Buffer')
setnx('grr', Snacks.picker.lsp_references, 'Search lsp references')
-- setnx('grI', tele.lsp_incoming_calls, 'Find incoming function calls')
-- setnx('grO', tele.lsp_outgoing_calls, 'Find outgoing function calls')
setnx('grI', Snacks.picker.lsp_incoming_calls, 'Find incoming function calls')
setnx('grO', Snacks.picker.lsp_outgoing_calls, 'Find outgoing function calls')
setnx('grd', Snacks.picker.diagnostics, 'Show LSP diagnostics')
setnx('grD', (function()
local diag = true

View File

@@ -8,41 +8,22 @@ vim.api.nvim_create_autocmd('LspAttach', {
end
})
-- vim.lsp.config('rust-analyzer', {
-- settings = {
-- ["rust-analyzer"] = {
-- inlayHints = {
-- bindingModeHints = {
-- enable = false,
-- },
-- chainingHints = {
-- enable = true,
-- },
-- closingBraceHints = {
-- enable = true,
-- minLines = 25,
-- },
-- closureReturnTypeHints = {
-- enable = "never",
-- },
-- lifetimeElisionHints = {
-- enable = "never",
-- useParameterNames = false,
-- },
-- maxLength = 25,
-- parameterHints = {
-- enable = true,
-- },
-- reborrowHints = {
-- enable = "never",
-- },
-- renderColons = true,
-- typeHints = {
-- enable = true,
-- hideClosureInitialization = false,
-- hideNamedConstructor = false,
-- },
-- },
-- }
-- }
-- })
vim.lsp.config('lua_ls', {
settings = {
Lua = {
workspace = {
library = vim.api.nvim_get_runtime_file("", true),
maxPreload = 100000,
preloadFileSize = 100000,
}
}
}
})
vim.lsp.config('tinymist', {
settings = {
exportPdf = "onType",
},
})
vim.diagnostic.config({ update_in_insert = true, float = true, virtual_lines = true})

View File

@@ -14,6 +14,7 @@ vim.opt.winborder = 'none'
vim.opt.smartindent = true
vim.opt.foldlevel = 9999
-- vim.opt.spell = true
vim.opt.spelllang = 'en_us'

View File

@@ -21,15 +21,6 @@ return {
},
},
-- {
-- "MysticalDevil/inlay-hints.nvim",
-- event = "LspAttach",
-- dependencies = { "neovim/nvim-lspconfig" },
-- config = function()
-- require("inlay-hints").setup()
-- end
-- },
--
{
'saghen/blink.cmp',
-- optional: provides snippets for the snippet source

View File

@@ -1,66 +1,39 @@
return {
{
'nvim-treesitter/nvim-treesitter',
-- branch = 'main',
'neovim-treesitter/nvim-treesitter',
dependencies = { 'neovim-treesitter/treesitter-parser-registry' },
branch = 'main',
version = false,
lazy = false,
build = ':TSUpdate',
config = function()
require'nvim-treesitter.configs'.setup {
textobjects = {
select = {
enable = true,
lookahead = true,
keymaps = {
["af"] = "@function.outer",
["if"] = "@function.inner",
}
},
move = {
enable = true,
set_jumps = false,
goto_next_start = {
[']a'] = '@parameter.inner',
},
goto_previous_start = {
['[a'] = '@parameter.inner',
}
},
},
auto_install = true,
highlight = {
enable = true,
},
}
local langs = require'nvim-treesitter'.get_installed('parsers')
vim.api.nvim_create_autocmd('FileType', {
pattern = langs,
callback = function()
vim.treesitter.start() -- highlighting
vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()' -- folds
vim.wo.foldmethod = 'expr'
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" -- indentation
end,
})
end
},
{
'nvim-treesitter/nvim-treesitter-textobjects',
branch = 'main',
opts = {
select = {
lookahead = true,
}
}
},
-- {
-- 'folke/twilight.nvim',
-- dependencies = {
-- 'nvim-treesitter/nvim-treesitter',
-- },
-- cmd = {
-- 'Twilight',
-- 'TwilightEnable',
-- 'TwilightDisable',
-- },
-- },
-- {
-- 'RRethy/vim-illuminate',
-- event = 'VeryLazy',
-- lazy = false,
-- },
{
'0oAstro/dim.lua',
dependencies = {
'nvim-treesitter/nvim-treesitter',
'neovim-treesitter/nvim-treesitter',
'neovim/nvim-lspconfig'
},
event = 'LspAttach',

View File

@@ -5,30 +5,12 @@ return {
event = 'VeryLazy',
},
-- {
-- 'lukas-reineke/indent-blankline.nvim',
-- event = 'VeryLazy',
-- config = function()
-- require'ibl'.setup{ scope = { enabled = false } }
-- end
-- },
{
'nvim-tree/nvim-web-devicons',
-- event = 'VeryLazy',
lazy = true,
},
-- {
-- 'goolord/alpha-nvim',
-- dependencies = {
-- 'nvim-tree/nvim-web-devicons',
-- },
-- config = function()
-- require('alpha').setup(require'alpha.themes.startify'.config)
-- end
-- },
{
'lewis6991/gitsigns.nvim',
event = 'VeryLazy',
@@ -37,9 +19,9 @@ return {
}
},
{
'Bekaboo/dropbar.nvim',
},
-- {
-- 'Bekaboo/dropbar.nvim',
-- },
{
'nvim-lualine/lualine.nvim',
@@ -52,8 +34,8 @@ return {
for i, server in pairs(vim.lsp.get_clients({ bufnr = 0 })) do
table.insert(names, server.name)
end
return " [" .. table.concat(names, " ") .. "]"
-- return "[" .. table.concat(names, " ") .. "]"
-- return " [" .. table.concat(names, " ") .. "]"
return "[" .. table.concat(names, " ") .. "]"
end
require('lualine').setup {
options = {

View File

@@ -1,21 +1,4 @@
return {
{
'nvim-lua/plenary.nvim',
-- event = 'VeryLazy',
lazy = true,
},
{
'RaafatTurki/hex.nvim',
config = true,
cmd = {
'HexDump',
'HexAssemble',
'HexToggle',
},
},
{
"sindrets/diffview.nvim",
event = 'VeryLazy',
@@ -33,7 +16,6 @@ return {
"NeogitOrg/neogit",
lazy = true,
dependencies = {
"nvim-lua/plenary.nvim", -- required
"sindrets/diffview.nvim", -- optional - Diff integration
-- Only one of these is needed.
@@ -44,6 +26,21 @@ return {
},
},
{
"OXY2DEV/markview.nvim",
lazy = false,
-- Completion for `blink.cmp`
dependencies = { "saghen/blink.cmp" },
},
{
'vieitesss/command.nvim',
lazy = false,
version = '*',
opts = {},
},
{
'brenoprata10/nvim-highlight-colors',
event = 'VeryLazy',
@@ -53,7 +50,7 @@ return {
},
{
'ggandor/leap.nvim',
url = 'https://codeberg.org/andyg/leap.nvim',
dependencies = {
'tpope/vim-repeat',
},
@@ -79,7 +76,29 @@ return {
-- or leave it empty to use the default settings
-- refer to the configuration section below
bigfile = { enabled = true },
-- dashboard = { enabled = true },
dashboard = {
enabled = true,
presets = {
},
formats = {
key = function(item)
return { { "[", hl = "special" }, { item.key, hl = "key" }, { "]", hl = "special" } }
end,
},
sections = {
-- { section = "terminal", cmd = "fortune -s | cowsay", hl = "header", padding = 1, indent = 8 },
{ section = "header" },
{ section = "startup" },
{ title = "MRU", padding = 1 },
{ section = "recent_files", limit = 8, padding = 1 },
{ title = "MRU ", file = vim.fn.fnamemodify(".", ":~"), padding = 1 },
{ section = "recent_files", cwd = true, limit = 8, padding = 1 },
{ title = "Sessions", padding = 1 },
{ section = "projects", padding = 1 },
{ title = "Bookmarks", padding = 1 },
{ section = "keys" },
},
},
dim = { enabled = true },
-- explorer = { enabled = true },
-- git = { enabled = false },
@@ -100,89 +119,57 @@ return {
},
notifier = { enabled = true },
-- quickfile = { enabled = true },
-- scope = { enabled = true },
scope = { enabled = true },
-- scroll = { enabled = true },
terminal = { enabled = false },
-- statuscolumn = { enabled = true },
-- words = { enabled = true },
words = { enabled = true },
zen = {
enabled = true,
-- toggles = {
-- git_signs = true,
-- },
win = {
backdrop = {
transparent = false,
blend = 99,
},
},
},
},
},
{
'echasnovski/mini.nvim',
config = function()
require('mini.starter').setup()
-- require('mini.cursorword').setup()
local miniclue = require'mini.clue'
miniclue.setup{
window = {
delay = 0,
config = {
width = 'auto',
},
},
triggers = {
-- Leader triggers
{ mode = 'n', keys = '<Leader>' },
{ mode = 'x', keys = '<Leader>' },
-- Built-in completion
{ mode = 'i', keys = '<C-x>' },
-- `g` key
{ mode = 'n', keys = 'g' },
{ mode = 'x', keys = 'g' },
-- Next
{ mode = 'n', keys = '['},
{ mode = 'n', keys = ']'},
{ mode = 'x', keys = '['},
{ mode = 'x', keys = ']'},
-- Marks
{ mode = 'n', keys = "'" },
{ mode = 'n', keys = '`' },
{ mode = 'x', keys = "'" },
{ mode = 'x', keys = '`' },
-- Registers
{ mode = 'n', keys = '"' },
{ mode = 'x', keys = '"' },
{ mode = 'i', keys = '<C-r>' },
{ mode = 'c', keys = '<C-r>' },
-- Window commands
{ mode = 'n', keys = '<C-w>' },
-- `z` key
{ mode = 'n', keys = 'z' },
{ mode = 'x', keys = 'z' },
-- Localleader
{ mode = 'n', keys = '<Localleader>'},
{ mode = 'x', keys = '<Localleader>'},
},
clues = {
-- Enhance this by adding descriptions for <Leader> mapping groups
miniclue.gen_clues.builtin_completion(),
miniclue.gen_clues.g(),
miniclue.gen_clues.marks(),
miniclue.gen_clues.registers(),
miniclue.gen_clues.windows(),
miniclue.gen_clues.z(),
{ mode = 'n', keys = '<leader>f', desc = '+Find' },
{ mode = 'x', keys = '<leader>f', desc = '+Find' },
{ mode = 'n', keys = '<leader>o', desc = '+Open' },
{ mode = 'x', keys = '<leader>o', desc = '+Open' },
{ mode = 'n', keys = '<leader>g', desc = '+Git' },
{ mode = 'x', keys = '<leader>g', desc = '+Git' },
},
}
end
"folke/which-key.nvim",
event = "VeryLazy",
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
preset = 'helix',
sort = { "order", "alphanum", "local", "mod" },
win = {
border = 'none',
},
icons = {
rules = false,
},
spec = {
{ '<leader>f', group = 'Find' },
{ '<leader>o', group = 'Open' },
{ '<leader>g', group = 'Git' },
{ '<leader>c', group = 'Compile' },
},
},
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "Buffer Local Keymaps (which-key)",
},
},
},
{
@@ -286,19 +273,19 @@ return {
-- Add cursor at next argument treesitter
set({'n', 'x'}, ']A', function()
if vim.v.count < 1 then
mc.addCursor(']a')
mc.addCursor(']p')
else
for _=1, vim.v.count - 1 do
mc.addCursor(']a')
mc.addCursor(']p')
end
end
end, { desc = 'Create multicursor on next argument'})
set({'n', 'x'}, '[A', function()
if vim.v.count < 1 then
mc.addCursor('[a')
mc.addCursor('[p')
else
for _=1, vim.v.count - 1 do
mc.addCursor('[a')
mc.addCursor('[p')
end
end
end, { desc = 'Create multicursor on previous argument'})

View File

@@ -1,2 +1,2 @@
set preview_images true
set preview_images_method ueberzug
set preview_images_method kitty

View File

@@ -343,6 +343,8 @@
(elfeed/add-to-playlist)
(mpdel/switch-context 'podcasts)
(libmpdel-play)))
("b" . elfeed/show-eww-open)
("B" . elfeed-show-visit)
("P" . (lambda () (interactive)
(mpdel/switch-context 'podcasts)
(libmpdel-play))))
@@ -352,11 +354,14 @@
(elfeed/add-to-playlist)
(mpdel/switch-context 'podcasts)
(libmpdel-play)))
("B" . elfeed-search-browse-url)
("b" . elfeed/search-eww-open)
("P" . (lambda () (interactive)
(mpdel/switch-context 'podcasts)
(libmpdel-play))))
:config
(setq-default elfeed-search-filter " ")
(setq elfeed-log-level 'debug)
(setq elfeed-feeds
'( ("https://phaazon.net/blog/feed")
("https://irreal.org/blog/?feed=rss2")
@@ -375,6 +380,22 @@
("https://www.dailywire.com/feeds/rss.xml")
("https://feeds.simplecast.com/6c2VScgo")
("https://feeds.simplecast.com/pp_b9xO6")))
(defun elfeed/show-eww-open (&optional use-generic-p)
"open with eww"
(interactive "P")
(let ((browse-url-handlers '(("https:\\/\\/www\\.youtu\\.*be." . browse-url-mpv)
(".*" . #'eww-browse-url))))
(elfeed-show-visit use-generic-p)))
(defun elfeed/search-eww-open (&optional use-generic-p)
"open with eww"
(interactive "P")
(let ((browse-url-handlers '(("https:\\/\\/www\\.youtu\\.*be." . browse-url-mpv)
("." . #'eww-browse-url))))
(elfeed-search-browse-url use-generic-p)))
(defun browse-url-mpv (url &optional single)
(start-process "mpv" nil "mpv" (shell-quote-argument url)))
(defun elfeed/add-to-playlist ()
(interactive
(let* ((entry (if (eq major-mode 'elfeed-show-mode)

View File

@@ -1,4 +1,4 @@
rg -uu --color=always --line-number --no-heading --smart-case -H "${*:-}" | tr -d '\r' |
/usr/bin/rg . . --color=always --line-number --no-heading --smart-case -H "${*:-}" | tr -d '\r' |
fzf-tmux --cycle -p 80%,90% --ansi \
--color "hl:-1:underline,hl+:-1:underline:reverse" \
--delimiter : \

187
config/.wezterm.lua Normal file
View File

@@ -0,0 +1,187 @@
local wezterm = require 'wezterm'
local config = {}
config.font = wezterm.font_with_fallback {
'Iosevka Term SS12',
'Cascadia Code'
}
local appearance_themes = {
Light = 'dawnfox',
Dark = 'carbonfox',
}
local appearance = wezterm.gui.get_appearance()
config.color_scheme = appearance_themes[appearance] or 'carbonfox'
config.font_size = 14
config.enable_tab_bar = true
config.use_fancy_tab_bar = false
-- config.front_end = "WebGpu"
-- config.integrated_title_button_style = "Gnome"
function basename(s)
return string.gsub(s, '(.*[/\\])(.*)', '%2')
end
wezterm.on(
'format-tab-title',
function(tab, tabs, panes, config, hover, maxwidth)
local tab_name
local title = tab.tab_title
if title and #title > 0 then
tab_name = tab.tab_id .. ':' .. title
end
local pane = tab.active_pane
local name = pane.foreground_process_name
if name then
tab_name = tab.tab_id .. ':' .. basename(name)
end
if tab.is_active then
return {
'ResetAttributes',
{ Text = ' ' .. tab_name .. '* '},
}
-- elseif tab.is_last_active then
-- return {
-- { Text = ' ' .. tab_name .. '- ' },
-- }
else
return {
'ResetAttributes',
{ Text = ' ' .. tab_name .. ' ' }
}
end
end
)
-- keys
local act = wezterm.action
config.leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1000 }
config.keys = {
{
key = 'a',
mods = 'LEADER|CTRL',
action = wezterm.action.SendKey { key = 'a', mods = 'CTRL' },
},
{
key = "c",
mods = "LEADER",
action = act.SpawnTab 'CurrentPaneDomain'
},
{
key = "e",
mods = "LEADER",
action = act.CharSelect {
copy_on_select = true,
copy_to = 'ClipboardAndPrimarySelection',
},
},
{
key = "C",
mods = "LEADER",
action = act.SpawnTab 'CurrentPaneDomain'
},
{
key = "x",
mods = "LEADER",
action = act.CloseCurrentPane { confirm = true }
},
{
key = "p",
mods = "LEADER",
action = act.ActivateTabRelative(-1)
},
{
key = "n",
mods = "LEADER",
action = act.ActivateTabRelative(1)
},
{
key = "%",
mods = "LEADER|SHIFT",
action = act.SplitPane {
direction = "Right"
}
},
{
key = "\"",
mods = "LEADER|SHIFT",
action = act.SplitPane {
direction = "Down"
}
},
{
key = "o",
mods = "LEADER",
action = act.ActivatePaneDirection 'Next'
},
{
key = "h",
mods = "LEADER",
action = act.ActivatePaneDirection 'Left'
},
{
key = "l",
mods = "LEADER",
action = act.ActivatePaneDirection 'Right'
},
{
key = "j",
mods = "LEADER",
action = act.ActivatePaneDirection 'Down'
},
{
key = "k",
mods = "LEADER",
action = act.ActivatePaneDirection 'Up'
},
{
key = "P",
mods = "LEADER",
action = act.PasteFrom 'Clipboard'
},
{
key = "s",
mods = "LEADER",
action = act.QuickSelect
},
{
key = "Y",
mods = "LEADER",
action = act.CopyTo 'Clipboard'
},
{
key = "v",
mods = "LEADER",
action = act.ActivateCopyMode
},
{
key = "f",
mods = "LEADER",
action = act.Search("CurrentSelectionOrEmptyString")
},
{
key = ',',
mods = 'LEADER',
action = act.PromptInputLine {
description = 'Enter new name for tab',
action = wezterm.action_callback(function(window, pane, line)
-- line will be `nil` if they hit escape without entering anything
-- An empty string if they just hit enter
-- Or the actual line of text they wrote
if line then
window:active_tab():set_title(line)
end
end),
},
},
}
for i = 1, 8 do
-- CTRL+ALT + number to activate that tab
table.insert(config.keys, {
key = tostring(i),
mods = 'LEADER',
action = act.ActivateTab(i - 1),
})
end
return config