diff --git a/git/.gitconfig b/git/.gitconfig index 8afb6d9..68a45dc 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -1,7 +1,7 @@ [user] - email = 30350506+SoPat712@users.noreply.github.com + email = joshpatra12@gmail.com name = Josh Patra - signingkey = 19FDD4F401823AE1 + signingkey = 5AC7864D82ADF015FF1E06466266C768BB28B2AA [diff] tool = nvimdiff [core] @@ -30,5 +30,11 @@ rebase = false [gpg] program = /opt/homebrew/bin/gpg + format = openpgp [credential] helper = store +[filter "lfs"] + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true + clean = git-lfs clean -- %f diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index 0694341..a89e152 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -1,61 +1,62 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, - "LuaSnip": { "branch": "master", "commit": "21e9fecfc07fb2cd707b6c7c3fa148550a34d053" }, - "actions-preview.nvim": { "branch": "master", "commit": "cb938c25edaac38d362555f19244a9cb85d561e8" }, - "alpha-nvim": { "branch": "main", "commit": "3979b01cb05734331c7873049001d3f2bb8477f4" }, - "clangd_extensions.nvim": { "branch": "main", "commit": "b67cc417d9020fb4b83d46662351b4d16894905e" }, + "LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" }, + "actions-preview.nvim": { "branch": "master", "commit": "0ac9c2aa3cfc8c885321c0862b50b6b1c3392405" }, + "alpha-nvim": { "branch": "main", "commit": "6c6a89d5b068b5251c8bdf0dd57bb921bcfeeb09" }, + "clangd_extensions.nvim": { "branch": "main", "commit": "78c2ecd659d54972be17aa6ba2deac3c53223b80" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" }, "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "fd3e882e56956675c620898bf1ffcf4fcbe7ec84" }, "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "codesnap.nvim": { "branch": "main", "commit": "927d4a40361cf3c066a5426477822b41ba6069ab" }, + "codesnap.nvim": { "branch": "main", "commit": "395828e3ff188f96032224ec34e4fe758b7f2527" }, "compiler.nvim": { "branch": "main", "commit": "c09ab4e795b92378727d7377c03b0d5c2453957c" }, - "conform.nvim": { "branch": "master", "commit": "1bf8b5b9caee51507aa51eaed3da5b0f2595c6b9" }, + "conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" }, "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, - "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, "gitsigns.nvim": { "branch": "main", "commit": "6ef8c54fb526bf3a0bc4efb0b2fe8e6d9a7daed2" }, - "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, - "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, - "lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "7d527c76c43f46294de9c19d39c5a86317809b4b" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, - "mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" }, - "mini.indentscope": { "branch": "main", "commit": "0308f949f31769e509696af5d5f91cebb2159c69" }, - "mini.nvim": { "branch": "main", "commit": "6e885e4c27743ae6bf5957ea78ce86c032835f09" }, - "minimap.vim": { "branch": "master", "commit": "57287e2dd28fa3e63276a32d11c729df14741d54" }, + "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" }, + "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, + "lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "7b01e2974a47d489bb92f47a41e4c0088ea8f86e" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc" }, + "mason.nvim": { "branch": "main", "commit": "bb639d4bf385a4d89f478b83af4d770be05ab7eb" }, + "mini.indentscope": { "branch": "main", "commit": "ad19b1f02223391f3d40440f7ff10607f0043585" }, + "mini.nvim": { "branch": "main", "commit": "15abccbe23525ee0502d2efe620c77db00bfb93c" }, + "minimap.vim": { "branch": "master", "commit": "28c530f8e0929b73ef27c86f705ff8bcfcec97d8" }, "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" }, - "nvim-lint": { "branch": "master", "commit": "a0718addcf9b5ba4325eb45441020bb824af9503" }, - "nvim-lspconfig": { "branch": "master", "commit": "b7c48a7111534b66bee077da8035ac7208a294ff" }, + "nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" }, + "nvim-lint": { "branch": "master", "commit": "d48f3a76189d03b2239f6df1b2f7e3fa8353743b" }, + "nvim-lspconfig": { "branch": "master", "commit": "6f76a3eeadc2ee235d74cd7d5319e95a261084af" }, "nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" }, - "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-treesitter-context": { "branch": "master", "commit": "660861b1849256398f70450afdf93908d28dc945" }, - "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, - "nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" }, - "nvim-ufo": { "branch": "main", "commit": "72d54c31079d38d8dfc5456131b1d0fb5c0264b0" }, - "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, - "outline.nvim": { "branch": "main", "commit": "6b62f73a6bf317531d15a7ae1b724e85485d8148" }, + "nvim-treesitter": { "branch": "master", "commit": "cf12346a3414fa1b06af75c79faebe7f76df080a" }, + "nvim-treesitter-context": { "branch": "master", "commit": "b311b30818951d01f7b4bf650521b868b3fece16" }, + "nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" }, + "nvim-ts-context-commentstring": { "branch": "main", "commit": "6141a40173c6efa98242dc951ed4b6f892c97027" }, + "nvim-ufo": { "branch": "main", "commit": "ab3eb124062422d276fae49e0dd63b3ad1062cfc" }, + "nvim-web-devicons": { "branch": "master", "commit": "dfbfaa967a6f7ec50789bead7ef87e336c1fa63c" }, + "opencode.nvim": { "branch": "main", "commit": "e9e2107aefaf78c7ffeb468f4e776faba27a2602" }, + "outline.nvim": { "branch": "main", "commit": "c293eb56db880a0539bf9d85b4a27816960b863e" }, "overseer.nvim": { "branch": "master", "commit": "6271cab7ccc4ca840faa93f54440ffae3a3918bd" }, "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, - "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, + "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" }, - "smart-splits.nvim": { "branch": "master", "commit": "71cf185c848d7c3ed62043df916f056a22cb4007" }, + "smart-splits.nvim": { "branch": "master", "commit": "b24335c3186b6c35522fa108af63646a2f70b3b6" }, "telescope-file-browser.nvim": { "branch": "master", "commit": "3610dc7dc91f06aa98b11dca5cc30dfa98626b7e" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope-undo.nvim": { "branch": "main", "commit": "928d0c2dc9606e01e2cc547196f48d2eaecf58e5" }, "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, - "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, + "tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" }, "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, "vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" }, - "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, + "vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" }, "vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" }, - "vim-matchup": { "branch": "master", "commit": "1c276e12b49a83c1bdca74351187b8adea5da4b9" }, + "vim-matchup": { "branch": "master", "commit": "a2d618496223386844acb5a6763cfc3cc1357af1" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, "vim-smoothie": { "branch": "master", "commit": "df1e324e9f3395c630c1c523d0555a01d2eb1b7e" }, - "vim-startuptime": { "branch": "master", "commit": "b6f0d93f6b8cf6eee0b4c94450198ba2d6a05ff6" }, + "vim-startuptime": { "branch": "master", "commit": "f10474b400c197787a0434548d842a2db583c333" }, "vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" }, "vim-svelte-plugin": { "branch": "master", "commit": "f80ff67a94e3ac279fe55ecdf55ad7342f4a5228" }, "which-key.nvim": { "branch": "main", "commit": "0539da005b98b02cf730c1d9da82b8e8edb1c2d2" } diff --git a/nvim/.config/nvim/lua/plugins/lsp-config.lua b/nvim/.config/nvim/lua/plugins/lsp-config.lua index 49a147b..b6f33f3 100644 --- a/nvim/.config/nvim/lua/plugins/lsp-config.lua +++ b/nvim/.config/nvim/lua/plugins/lsp-config.lua @@ -145,11 +145,8 @@ return { vim.lsp.config("pyright", { capabilities = capabilities, - before_init = function(params, config) - -- Try a few ways to get a sane workspace path - local workspace = config.root_dir - or (params.rootUri and vim.uri_to_fname(params.rootUri)) - or vim.loop.cwd() + before_init = function(_, config) + local workspace = config.root_dir or vim.uv.cwd() config.settings = config.settings or {} config.settings.python = config.settings.python or {} diff --git a/nvim/.config/nvim/lua/plugins/opencode.lua b/nvim/.config/nvim/lua/plugins/opencode.lua new file mode 100644 index 0000000..297732c --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/opencode.lua @@ -0,0 +1,66 @@ +return { + "nickjvandyke/opencode.nvim", + version = "*", -- Latest stable release + dependencies = { + { + -- `snacks.nvim` integration is recommended, but optional + ---@module "snacks" <- Loads `snacks.nvim` types for configuration intellisense + "folke/snacks.nvim", + optional = true, + opts = { + input = {}, -- Enhances `ask()` + picker = { -- Enhances `select()` + actions = { + opencode_send = function(...) + return require("opencode").snacks_picker_send(...) + end, + }, + win = { + input = { + keys = { + [""] = { "opencode_send", mode = { "n", "i" } }, + }, + }, + }, + }, + }, + }, + }, + config = function() + ---@type opencode.Opts + vim.g.opencode_opts = { + -- Your configuration, if any; goto definition on the type or field for details + } + + vim.o.autoread = true -- Required for `opts.events.reload` + + -- Recommended/example keymaps + vim.keymap.set({ "n", "x" }, "", function() + require("opencode").ask("@this: ", { submit = true }) + end, { desc = "Ask opencode…" }) + vim.keymap.set({ "n", "x" }, "", function() + require("opencode").select() + end, { desc = "Execute opencode action…" }) + vim.keymap.set({ "n", "t" }, "", function() + require("opencode").toggle() + end, { desc = "Toggle opencode" }) + + vim.keymap.set({ "n", "x" }, "go", function() + return require("opencode").operator("@this ") + end, { desc = "Add range to opencode", expr = true }) + vim.keymap.set("n", "goo", function() + return require("opencode").operator("@this ") .. "_" + end, { desc = "Add line to opencode", expr = true }) + + vim.keymap.set("n", "", function() + require("opencode").command("session.half.page.up") + end, { desc = "Scroll opencode up" }) + vim.keymap.set("n", "", function() + require("opencode").command("session.half.page.down") + end, { desc = "Scroll opencode down" }) + + -- You may want these if you use the opinionated `` and `` keymaps above — otherwise consider `o…` (and remove terminal mode from the `toggle` keymap) + vim.keymap.set("n", "+", "", { desc = "Increment under cursor", noremap = true }) + vim.keymap.set("n", "-", "", { desc = "Decrement under cursor", noremap = true }) + end, +} diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf index b36d1ed..60eeeea 100644 --- a/tmux/.tmux.conf +++ b/tmux/.tmux.conf @@ -68,6 +68,9 @@ bind-key -n M-j if -F "#{@pane-is-vim}" 'send-keys M-j' 'resize-pane -D 1' bind-key -n M-k if -F "#{@pane-is-vim}" 'send-keys M-k' 'resize-pane -U 1' bind-key -n M-l if -F "#{@pane-is-vim}" 'send-keys M-l' 'resize-pane -R 1' +# Clear all panes +bind L run-shell 'for pane in $(tmux list-panes -F "##{pane_id}"); do tmux send-keys -t "$pane" "clear" Enter; done' + bind -r m resize-pane -Z diff --git a/tmux/.tmux/plugins/tmux b/tmux/.tmux/plugins/tmux index 91a1e09..a083054 160000 --- a/tmux/.tmux/plugins/tmux +++ b/tmux/.tmux/plugins/tmux @@ -1 +1 @@ -Subproject commit 91a1e09b3d8a773344908e5c84ed8da951e16001 +Subproject commit a0830546479f4cc2e865099749a67914ae74a0f1 diff --git a/tmux/.tmux/plugins/tpm b/tmux/.tmux/plugins/tpm index 99469c4..e261deb 160000 --- a/tmux/.tmux/plugins/tpm +++ b/tmux/.tmux/plugins/tpm @@ -1 +1 @@ -Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946 +Subproject commit e261deb1b47614eed3400089ce7197dc68acc4eb diff --git a/tmux/.tmux/plugins/vim-tmux-navigator b/tmux/.tmux/plugins/vim-tmux-navigator index c45243d..e41c431 160000 --- a/tmux/.tmux/plugins/vim-tmux-navigator +++ b/tmux/.tmux/plugins/vim-tmux-navigator @@ -1 +1 @@ -Subproject commit c45243dc1f32ac6bcf6068e5300f3b2b237e576a +Subproject commit e41c431a0c7b7388ae7ba341f01a0d217eb3a432 diff --git a/yazi/.config/yazi/theme.toml b/yazi/.config/yazi/theme.toml index b6f5576..d638e7b 100644 --- a/yazi/.config/yazi/theme.toml +++ b/yazi/.config/yazi/theme.toml @@ -150,11 +150,10 @@ rules = [ # { mime = "inode/x-empty", fg = "#f7768e" }, # Special files - { name = "*", is = "orphan", bg = "#f7768e" }, - { name = "*", is = "exec" , fg = "#9ece6a" }, + { url = "*", is = "orphan", bg = "#f7768e" }, + { url = "*", is = "exec" , fg = "#9ece6a" }, # Fallback - { name = "*/", fg = "#7aa2f7" }, - { name = "*", fg = "#c0caf5" } + { url = "*/", fg = "#7aa2f7" }, + { url = "*", fg = "#c0caf5" } ] - diff --git a/zsh/.zprofile b/zsh/.zprofile index 1ec51b4..2d57bdd 100644 --- a/zsh/.zprofile +++ b/zsh/.zprofile @@ -2,3 +2,7 @@ eval "$(/opt/homebrew/bin/brew shellenv)" # Added by `rbenv init` on Thu Nov 6 22:59:40 EST 2025 eval "$(rbenv init - --no-rehash zsh)" + +# Added by OrbStack: command-line tools and integration +# This won't be added again if you remove it. +source ~/.orbstack/shell/init.zsh 2>/dev/null || : diff --git a/zsh/.zshrc b/zsh/.zshrc index 243d664..595798d 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -29,11 +29,13 @@ export LANG=en_US.UTF-8 export MANPAGER='nvim +Man!' export OLLAMA_KEEP_ALIVE=20m export OLLAMA_HOST=0.0.0.0:11434 -export LM_STUDIO_API_KEY="sk-dummy-api-key" -export OPENAI_API_KEY="sk-dummy-api-key" -export OPENAI_BASE_URL="http://localhost:1234/v1" -export OPENAI_MODEL="qwen/qwen3-coder-30b" +export LM_STUDIO_API_KEY="sk-lm-KQKvhFvL:bVNdgvSeNzufTIeRdDr3" +# export OPENAI_API_KEY="sk-lm-KQKvhFvL:bVNdgvSeNzufTIeRdDr3" +# export OPENAI_BASE_URL="http://localhost:1234/v1" +# export OPENAI_MODEL="qwen/qwen3-coder-30b" export NEXTDNS_URL="https://link-ip.nextdns.io/6f6c4e/f5476a644c7d5b0d" +export PYTORCH_ENABLE_MPS_FALLBACK=1 +export MAS_NO_AUTO_INDEX=1 # Stuff for development export PATH="$(brew --prefix)/opt/findutils/libexec/gnubin:$(brew --prefix)/opt/gnu-getopt/bin:$(brew --prefix)/opt/make/libexec/gnubin:$(brew --prefix)/opt/util-linux/bin:${PATH}" @@ -84,24 +86,37 @@ if [[ "$OSTYPE" == "darwin"* ]]; then export PATH=$PATH:/Users/joshp/.spicetify music() { - echo "Running music sync..." + echo "Running music sync..." - cd ~/Projects/lrcput || return - python lrcput.py -d "/Volumes/Crucial X8/Media/Music/" -r -R + cd ~/Projects/lrcput || return 1 + python lrcput.py -d "/Volumes/Crucial X8/Media/Music/" -r -R - dot_clean "/Volumes/Crucial X8/Media/Music/" + # ReplayGain (album + track, MAX mode, skip if already tagged) + rsgain easy -m MAX -S /Volumes/Crucial\ X8/Media/Music -Oas - rsync -aHv --delete --chown=navidrome:navidrome \ - --chmod=F644,D755 \ - -e 'ssh -p 6222' \ - "/Volumes/Crucial X8/Media/Music/" \ - root@ddns.joshpatra.me:/media/FiveTB/Navidrome/joshp + # Clean macOS metadata + dot_clean "/Volumes/Crucial X8/Media/Music/" - rsync -aHv --delete \ - "/Volumes/Crucial X8/Media/Music/" \ - "/Volumes/Samsung USB/Music/" + # Sync to Navidrome + rsync -aHv --delete \ + --chown=1005:1005 \ + --chmod=F644,D755 \ + --exclude='.DS_Store' \ + --exclude='._*' \ + --exclude='.Spotlight-V100' \ + --exclude='.Trashes' \ + -e ssh \ + "/Volumes/Crucial X8/Media/Music/" \ + root@192.168.1.57:/media/FiveTB/Navidrome/joshp/ - echo "✅ Music sync complete." + # Local backup copy + rsync -aHv --delete \ + --exclude='.DS_Store' \ + --exclude='._*' \ + "/Volumes/Crucial X8/Media/Music/" \ + "/Volumes/Samsung USB/Music/" + + echo "✅ Music sync complete." } alluptd() { @@ -272,3 +287,6 @@ fpath=(/Users/joshp/.docker/completions $fpath) autoload -Uz compinit compinit # End of Docker CLI completions + +# Added by Antigravity +export PATH="/Users/joshp/.antigravity/antigravity/bin:$PATH"