diff --git a/git/.gitconfig b/git/.gitconfig index 76937f3..8afb6d9 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -1,7 +1,7 @@ [user] email = 30350506+SoPat712@users.noreply.github.com name = Josh Patra - signingkey = 34E3C1465C60BF2DDDD994A819FDD4F401823AE1 + signingkey = 19FDD4F401823AE1 [diff] tool = nvimdiff [core] @@ -28,3 +28,7 @@ postBuffer = 524288000 [pull] rebase = false +[gpg] + program = /opt/homebrew/bin/gpg +[credential] + helper = store diff --git a/nvim/.config/nvim/large-file.vim b/nvim/.config/nvim/large-file.vim new file mode 100644 index 0000000..6487e53 --- /dev/null +++ b/nvim/.config/nvim/large-file.vim @@ -0,0 +1,5 @@ +syntax off +filetype off +set noundofile +set noswapfile +set noloadplugins diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index 54eaa06..0694341 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -1,58 +1,58 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, - "LuaSnip": { "branch": "master", "commit": "fb525166ccc30296fb3457441eb979113de46b00" }, - "actions-preview.nvim": { "branch": "master", "commit": "36513ad213855d497b7dd3391a24d1d75d58e36f" }, - "alpha-nvim": { "branch": "main", "commit": "a35468cd72645dbd52c0624ceead5f301c566dff" }, - "clangd_extensions.nvim": { "branch": "main", "commit": "db28f29be928d18cbfb86fbfb9f83f584f658feb" }, + "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" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, - "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" }, - "cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" }, + "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": "be6d6b9a3b5e6999edbda76b16dace03d9bfcd3d" }, - "compiler.nvim": { "branch": "main", "commit": "eb7f82bb8f9e722dd194f638e67ec53c12ce5ac5" }, - "conform.nvim": { "branch": "master", "commit": "8132ec733eed3bf415b97b76797ca41b59f51d7d" }, - "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, + "codesnap.nvim": { "branch": "main", "commit": "927d4a40361cf3c066a5426477822b41ba6069ab" }, + "compiler.nvim": { "branch": "main", "commit": "c09ab4e795b92378727d7377c03b0d5c2453957c" }, + "conform.nvim": { "branch": "master", "commit": "1bf8b5b9caee51507aa51eaed3da5b0f2595c6b9" }, + "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, "gitsigns.nvim": { "branch": "main", "commit": "6ef8c54fb526bf3a0bc4efb0b2fe8e6d9a7daed2" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, - "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "bef29b653ba71d442816bf56286c2a686210be04" }, - "mason-tool-installer.nvim": { "branch": "main", "commit": "93a9ff9b34c91c0cb0f7de8d5f7e4abce51d8903" }, - "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, - "mini.indentscope": { "branch": "main", "commit": "5fdc3edf7bb1b6365980c2c47dac2f19ec93c97b" }, - "mini.nvim": { "branch": "main", "commit": "8f2ea1e69546d2606b97cb1c0e9458a1a0d2e73f" }, + "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" }, - "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, + "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, - "nvim-lint": { "branch": "master", "commit": "2b0039b8be9583704591a13129c600891ac2c596" }, - "nvim-lspconfig": { "branch": "master", "commit": "583a1d555c8e407868ce00c57e37eca4b7ff960e" }, - "nvim-notify": { "branch": "master", "commit": "b5825cf9ee881dd8e43309c93374ed5b87b7a896" }, + "nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" }, + "nvim-lint": { "branch": "master", "commit": "a0718addcf9b5ba4325eb45441020bb824af9503" }, + "nvim-lspconfig": { "branch": "master", "commit": "b7c48a7111534b66bee077da8035ac7208a294ff" }, + "nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-treesitter-context": { "branch": "master", "commit": "b5ef8e3b8cb40b76975cfbcd2f590654eeb6ff00" }, - "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, + "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": "80fe8215ba566df2fbf3bf4d25f59ff8f41bc0e1" }, - "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, - "outline.nvim": { "branch": "main", "commit": "321f89ef79f168a78685f70d70c52d0e7b563abb" }, + "nvim-ufo": { "branch": "main", "commit": "72d54c31079d38d8dfc5456131b1d0fb5c0264b0" }, + "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, + "outline.nvim": { "branch": "main", "commit": "6b62f73a6bf317531d15a7ae1b724e85485d8148" }, "overseer.nvim": { "branch": "master", "commit": "6271cab7ccc4ca840faa93f54440ffae3a3918bd" }, - "persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" }, - "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, + "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" }, - "smart-splits.nvim": { "branch": "master", "commit": "dcc9a886ac7214db6dd67d27044b8388b628dcb6" }, - "telescope-file-browser.nvim": { "branch": "master", "commit": "626998e5c1b71c130d8bc6cf7abb6709b98287bb" }, + "smart-splits.nvim": { "branch": "master", "commit": "71cf185c848d7c3ed62043df916f056a22cb4007" }, + "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": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, - "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, - "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, + "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, + "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, + "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, "vim-commentary": { "branch": "master", "commit": "64a654ef4a20db1727938338310209b6a63f60c9" }, - "vim-fugitive": { "branch": "master", "commit": "4a745ea72fa93bb15dd077109afbb3d1809383f2" }, + "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, "vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" }, - "vim-matchup": { "branch": "master", "commit": "c478d4a72bbf397eff42743198f1939f6a264736" }, + "vim-matchup": { "branch": "master", "commit": "1c276e12b49a83c1bdca74351187b8adea5da4b9" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, "vim-smoothie": { "branch": "master", "commit": "df1e324e9f3395c630c1c523d0555a01d2eb1b7e" }, "vim-startuptime": { "branch": "master", "commit": "b6f0d93f6b8cf6eee0b4c94450198ba2d6a05ff6" }, diff --git a/nvim/.config/nvim/lua/plugins/codesnap.lua b/nvim/.config/nvim/lua/plugins/codesnap.lua index 5778d32..28a24cc 100644 --- a/nvim/.config/nvim/lua/plugins/codesnap.lua +++ b/nvim/.config/nvim/lua/plugins/codesnap.lua @@ -1,16 +1,17 @@ return { "mistricky/codesnap.nvim", - lazy = "true", - build = "make", - cmd = "CodeSnapPreviewOn", + build = "make build_generator", + lazy = false, config = function() require("codesnap").setup({ - mac_window_bar = true, -- (Optional) MacOS style title bar switch - opacity = true, -- (Optional) The code snap has some opacity by default, set it to false for 100% opacity - watermark = "joshp", -- (Optional) you can custom your own watermark, but if you don't like it, just set it to "" - preview_title = "CodeSnap.nvim", -- (Optional) preview page title - bg_theme = "summer", - has_line_number = true, + mac_window_bar = true, -- macOS-style title bar + watermark = "", -- no watermark + has_line_number = true, -- show line numbers + has_breadcrumbs = false, -- disable breadcrumbs + show_workspace = false, -- disable workspace name + bg_theme = "sea", -- background theme + code_font_family = "SauceCodePro Nerd Font", -- your preferred font + save_path = "~/Pictures", -- save directory }) end, } diff --git a/nvim/.config/nvim/lua/plugins/lsp-config.lua b/nvim/.config/nvim/lua/plugins/lsp-config.lua index 2800d2c..49a147b 100644 --- a/nvim/.config/nvim/lua/plugins/lsp-config.lua +++ b/nvim/.config/nvim/lua/plugins/lsp-config.lua @@ -21,12 +21,16 @@ return { mason_tool_installer.setup({ ensure_installed = { - "prettier", -- prettier formatter - "stylua", -- lua formatter - "isort", -- python formatter - "black", -- python formatter - "pylint", -- python linter - "eslint_d", -- js linter + -- Formatters + "prettier", + "stylua", + "isort", + "black", + -- Linters + "eslint_d", + "pylint", + -- LSP servers + "vtsls", -- better TypeScript/JavaScript LSP (or use "typescript-language-server" for ts_ls) }, }) end, @@ -41,7 +45,6 @@ return { { "neovim/nvim-lspconfig", lazy = false, - -- This table is used in the config function (below) for vim.diagnostic.config() opts = { diagnostics = { underline = true, @@ -66,7 +69,7 @@ return { }, }, config = function(_, opts) - -- 1) Use opts.diagnostics to configure diagnostic signs + -- 1) Configure diagnostics local diag = opts.diagnostics or {} if diag.signs and diag.signs.text then local sign_config = {} @@ -82,7 +85,7 @@ return { }) end - -- 2) Set up capabilities and each LSP + -- 2) Set up capabilities local capabilities = require("cmp_nvim_lsp").default_capabilities() capabilities.offsetEncoding = { "utf-16" } capabilities.textDocument.foldingRange = { @@ -90,51 +93,78 @@ return { lineFoldingOnly = true, } - local lspconfig = require("lspconfig") + -- 3) Setup LSP servers using vim.lsp.config - -- Example LSPs - lspconfig.ts_ls.setup({ + -- TypeScript/JavaScript (using vtsls for better refactoring support) + vim.lsp.config("vtsls", { capabilities = capabilities, + filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact" }, }) - lspconfig.html.setup({ - capabilities = capabilities, - }) - lspconfig.lua_ls.setup({ - capabilities = capabilities, - }) - lspconfig.gopls.setup({ - capabilities = capabilities, - }) - lspconfig.svelte.setup({ + + -- HTML + vim.lsp.config("html", { capabilities = capabilities, }) - -- Python example + -- Lua + vim.lsp.config("lua_ls", { + capabilities = capabilities, + }) + + -- Go + vim.lsp.config("gopls", { + capabilities = capabilities, + }) + + -- Svelte + vim.lsp.config("svelte", { + capabilities = capabilities, + }) + + -- Python (Pyright) local function get_python_path(workspace) - -- Use a pattern to find the venv path in the workspace directory - local venv_path = lspconfig.util.path.join(workspace, "venv", "bin", "python") - return venv_path + -- 1) Workspace-local venv: /venv/bin/python + if workspace and workspace ~= "" then + local venv_path = vim.fs.joinpath(workspace, "venv", "bin", "python") + if vim.fn.executable(venv_path) == 1 then + return venv_path + end + end + + -- 2) Active virtualenv, if any + if vim.env.VIRTUAL_ENV and vim.env.VIRTUAL_ENV ~= "" then + local venv_python = vim.fs.joinpath(vim.env.VIRTUAL_ENV, "bin", "python") + if vim.fn.executable(venv_python) == 1 then + return venv_python + end + end + + -- 3) Fallback to system python + return "python3" end - lspconfig.pyright.setup({ + + vim.lsp.config("pyright", { capabilities = capabilities, - before_init = function(_, config) - config.settings = { - python = { - analysis = { - autoSearchPaths = true, - useLibraryCodeForTypes = true, - }, - pythonPath = get_python_path(config.root_dir), - }, + 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() + + config.settings = config.settings or {} + config.settings.python = config.settings.python or {} + + config.settings.python.analysis = { + autoSearchPaths = true, + useLibraryCodeForTypes = true, } - end, - on_attach = function(client, bufnr) - -- Optional: additional setup such as key mappings, etc. + + config.settings.python.pythonPath = get_python_path(workspace) end, }) -- Rust - lspconfig.rust_analyzer.setup({ + vim.lsp.config("rust_analyzer", { capabilities = capabilities, settings = { ["rust-analyzer"] = {}, @@ -142,18 +172,8 @@ return { }) -- C/C++ (clangd) - lspconfig.clangd.setup({ + vim.lsp.config("clangd", { capabilities = capabilities, - init_options = { - clangdFileStatus = true, - usePlaceholders = true, - completeUnimported = true, - semanticHighlighting = true, - }, - on_attach = function(client, bufnr) - require("clangd_extensions.inlay_hints").setup_autocmd() - require("clangd_extensions.inlay_hints").set_inlay_hints() - end, cmd = { "clangd", "--background-index", @@ -166,67 +186,85 @@ return { "-j=12", "--header-insertion-decorators", }, - root_dir = function(fname) - return require("lspconfig.util").root_pattern( - "Makefile", - "configure.ac", - "configure.in", - "config.h.in", - "meson.build", - "meson_options.txt", - "build.ninja" - )(fname) or require("lspconfig.util").root_pattern( - "compile_commands.json", - "compile_flags.txt" - )(fname) or require("lspconfig.util").find_git_ancestor(fname) + root_markers = { + "Makefile", + "configure.ac", + "configure.in", + "config.h.in", + "meson.build", + "meson_options.txt", + "build.ninja", + "compile_commands.json", + "compile_flags.txt", + ".git", + }, + on_attach = function(client, bufnr) + -- Optional: clangd extensions setup + local ok, clangd_ext = pcall(require, "clangd_extensions.inlay_hints") + if ok then + clangd_ext.setup_autocmd() + clangd_ext.set_inlay_hints() + end end, }) -- UFO setup require("ufo").setup() - -- 3) Global LspAttach mappings + -- 4) Global LspAttach mappings vim.api.nvim_create_autocmd("LspAttach", { group = vim.api.nvim_create_augroup("UserLspConfig", {}), callback = function(ev) local opts = { buffer = ev.buf } - vim.keymap.set("n", "e", vim.diagnostic.open_float, { desc = "Open diagnostic float" }) - vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Go to previous diagnostic" }) - vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Go to next diagnostic" }) - vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts, { desc = "Go to declaration" }) + + vim.keymap.set( + "n", + "e", + vim.diagnostic.open_float, + { buffer = ev.buf, desc = "Open diagnostic float" } + ) + vim.keymap.set( + "n", + "[d", + vim.diagnostic.goto_prev, + { buffer = ev.buf, desc = "Go to previous diagnostic" } + ) + vim.keymap.set( + "n", + "]d", + vim.diagnostic.goto_next, + { buffer = ev.buf, desc = "Go to next diagnostic" } + ) + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { buffer = ev.buf, desc = "Go to declaration" }) vim.keymap.set( "n", "gd", require("telescope.builtin").lsp_definitions, - opts, - { desc = "Go to definition" } + { buffer = ev.buf, desc = "Go to definition" } ) vim.keymap.set( "n", "gr", require("telescope.builtin").lsp_references, - opts, - { desc = "Go to references" } + { buffer = ev.buf, desc = "Go to references" } ) vim.keymap.set( "n", "gi", require("telescope.builtin").lsp_implementations, - opts, - { desc = "Go to implementations" } + { buffer = ev.buf, desc = "Go to implementations" } ) - vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) - vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts, { desc = "Rename" }) + vim.keymap.set("n", "K", vim.lsp.buf.hover, { buffer = ev.buf, desc = "Hover" }) + vim.keymap.set("n", "rn", vim.lsp.buf.rename, { buffer = ev.buf, desc = "Rename" }) vim.keymap.set( { "n", "v" }, "ca", require("actions-preview").code_actions, - opts, - { desc = "Code actions" } + { buffer = ev.buf, desc = "Code actions" } ) vim.keymap.set("n", "f", function() vim.lsp.buf.format({ async = true }) - end, opts, { desc = "Format" }) + end, { buffer = ev.buf, desc = "Format" }) end, }) end, diff --git a/tmux/.tmux/plugins/tmux b/tmux/.tmux/plugins/tmux index c2b1d67..91a1e09 160000 --- a/tmux/.tmux/plugins/tmux +++ b/tmux/.tmux/plugins/tmux @@ -1 +1 @@ -Subproject commit c2b1d67cbda5c44ea8ee25d2ab307063e6959d0f +Subproject commit 91a1e09b3d8a773344908e5c84ed8da951e16001 diff --git a/tmux/.tmux/plugins/vim-tmux-navigator b/tmux/.tmux/plugins/vim-tmux-navigator index 5b3c701..c45243d 160000 --- a/tmux/.tmux/plugins/vim-tmux-navigator +++ b/tmux/.tmux/plugins/vim-tmux-navigator @@ -1 +1 @@ -Subproject commit 5b3c701686fb4e6629c100ed32e827edf8dad01e +Subproject commit c45243dc1f32ac6bcf6068e5300f3b2b237e576a diff --git a/yazi/theme.toml b/yazi/theme.toml new file mode 100644 index 0000000..b6f5576 --- /dev/null +++ b/yazi/theme.toml @@ -0,0 +1,160 @@ +[mgr] +# NOTE: can be combined with tmTheme (sublime colorshceme file) for preview code highlight +# syntect_theme = "path/to/tmTheme" + +cwd = { fg = "#a9b1d6", italic = true } + +# Hovered +hovered = { bg = "#292E50" } +preview_hovered = { bg = "#292E50" } + +# Find +find_keyword = { fg = "#1f2335", bg = "#ff9e64", bold = true } +find_position = { fg = "#0db9d7", bg = "#22374b", bold = true } + +# Marker +marker_copied = { fg = "#9ece6a", bg = "#9ece6a" } +marker_cut = { fg = "#f7768e", bg = "#f7768e" } +marker_marked = { fg = "#bb9af7", bg = "#bb9af7" } +marker_selected = { fg = "#7aa2f7", bg = "#7aa2f7" } + +# Count +count_copied = { fg = "#1f2335", bg = "#9ece6a" } +count_cut = { fg = "#1f2335", bg = "#f7768e" } +count_selected = { fg = "#1f2335", bg = "#7aa2f7" } + +# Border +border_symbol = "│" +border_style = { fg = "#29a4bd" } + +# Tab +[tabs] +active = { fg = "#1d202f", bg = "#7aa2f7" } +inactive = { fg = "#7aa2f7", bg = "#3b4261" } + +[mode] +normal_main = { fg = "#1d202f", bg = "#7aa2f7", bold = true } +normal_alt = { fg = "#7aa2f7", bg = "#3b4261" } + +select_main = { fg = "#1d202f", bg = "#bb9af7", bold = true } +select_alt = { fg = "#bb9af7", bg = "#3b4261" } + +unset_main = { fg = "#1d202f", bg = "#9d7cd8", bold = true } +unset_alt = { fg = "#9d7cd8", bg = "#3b4261" } + +[status] +overall = { fg = "#c0caf5", bg = "#1f2335" } +sep_left = { open = "", close = "" } +sep_right = { open = "", close = "" } + +# Progress +progress_label = { fg = "#c0caf5", bold = true } +progress_normal = { fg = "#3d59a1", bg = "#292e42" } +progress_error = { fg = "#db4b4b", bg = "#292e42" } + +# Permissions +perm_type = { fg = "#7aa2f7" } +perm_read = { fg = "#e0af68" } +perm_write = { fg = "#f7768e" } +perm_exec = { fg = "#9ece6a" } +perm_sep = { fg = "#414868" } + +[pick] +border = { fg = "#29a4bd" } +active = { fg = "#c0caf5", bg = "#2e3c64" } +inactive = { fg = "#c0caf5" } + +# Input +[input] +border = { fg = "#0db9d7" } +title = { fg = "#0db9d7" } +value = { fg = "#9d7cd8" } +selected = { bg = "#2e3c64" } + +# Completion +[cmp] +border = { fg = "#0db9d7" } +active = { fg = "#c0caf5", bg = "#363d59" } +inactive = { fg = "#c0caf5" } + +icon_file = "" +icon_folder = "" +icon_command = "" + +# Tasks +[tasks] +border = { fg = "#29a4bd" } +title = { fg = "#29a4bd" } +hovered = { fg = "#c0caf5", bg = "#2e3c64" } + +# Which +[which] +cols = 3 +mask = { bg = "#1f2335" } +cand = { fg = "#7dcfff" } +rest = { fg = "#7aa2f7" } +desc = { fg = "#bb9af7" } +separator = " ➜ " +separator_style = { fg = "#565f89" } + +# Confirm +[confirm] +border = { fg = "#0db9d7" } +title = { fg = "#29a4bd" } +content = {} +list = {} +btn_yes = { bg = "#2e3c64" } +btn_no = {} +btn_labels = [ " [Y]es ", " (N)o " ] + +# Spot +[spot] +border = { fg = "#29a4bd" } +title = { fg = "#29a4bd" } + +# Notify +[notify] +title_info = { fg = "#0db9d7" } +title_warn = { fg = "#e0af68" } +title_error = { fg = "#db4b4b" } + +icon_error = "" +icon_warn = "" +icon_info = "" + +# Help +[help] +on = { fg = "#9ece6a" } +run = { fg = "#bb9af7" } +desc = { fg = "#7dcfff" } +hovered = { bg = "#292e42" } +footer = { fg = "#c0caf5", bg = "#24283b" } + +[filetype] + +rules = [ + # Images + { mime = "image/*", fg = "#e0af68" }, + + # Media + { mime = "{audio,video}/*", fg = "#bb9af7" }, + + # Archives + { mime = "application/*zip", fg = "#f7768e" }, + { mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#f7768e" }, + + # Documents + { mime = "application/{pdf,doc,rtf,vnd.*}", fg = "#7dcfff" }, + + # Empty files + # { mime = "inode/x-empty", fg = "#f7768e" }, + + # Special files + { name = "*", is = "orphan", bg = "#f7768e" }, + { name = "*", is = "exec" , fg = "#9ece6a" }, + + # Fallback + { name = "*/", fg = "#7aa2f7" }, + { name = "*", fg = "#c0caf5" } +] + diff --git a/zsh/.zprofile b/zsh/.zprofile index 6b27a6c..1ec51b4 100644 --- a/zsh/.zprofile +++ b/zsh/.zprofile @@ -1 +1,4 @@ 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)" diff --git a/zsh/.zshrc b/zsh/.zshrc index 5f09829..2e356d3 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -27,6 +27,16 @@ export FZF_ALT_C_OPTS="--preview 'eza --tree --color=always {} | head -200'" export LC_ALL=en_US.UTF-8 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 NEXTDNS_URL="https://link-ip.nextdns.io/6f6c4e/f5476a644c7d5b0d" + +# 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}" #Nano Zone for gcc on MacOS if [[ "$OSTYPE" == "darwin"* ]]; then export MallocNanoZone=0 @@ -58,6 +68,7 @@ if command -v pyenv 1>/dev/null 2>&1; then fi eval "$(fzf --zsh)" eval "$(~/.local/bin/mise activate zsh)" +# eval "$(rbenv init - zsh)" # Aliases alias zshconfig="nvim ~/.zshrc" @@ -72,6 +83,27 @@ alias cat=bat if [[ "$OSTYPE" == "darwin"* ]]; then export PATH=$PATH:/Users/joshp/.spicetify + music() { + echo "Running music sync..." + + cd ~/Projects/lrcput || return + python lrcput.py -d "/Volumes/Crucial X8/Media/Music/" -r -R + + dot_clean "/Volumes/Crucial X8/Media/Music/" + + 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 + + rsync -aHv --delete \ + "/Volumes/Crucial X8/Media/Music/" \ + "/Volumes/Samsung USB/Music/" + + echo "✅ Music sync complete." + } + alluptd() { skip_all=false run_music=false @@ -158,7 +190,7 @@ if [[ "$OSTYPE" == "darwin"* ]]; then rsync -aHv --delete --chown=navidrome:navidrome \ --chmod=F644,D755 \ - -e 'ssh -p 5222' \ + -e 'ssh -p 6222' \ "/Volumes/Crucial X8/Media/Music/" \ root@ddns.joshpatra.me:/media/FiveTB/Navidrome/joshp @@ -218,3 +250,18 @@ export DYLD_LIBRARY_PATH="/opt/homebrew/Cellar/libgit2/1.9.0/lib:$DYLD_LIBRARY_P export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + +[[ "$TERM_PROGRAM" == "kiro" ]] && . "$(kiro --locate-shell-integration-path zsh)" + +export PATH="$PATH:$HOME/.local/bin" + +# Added by LM Studio CLI (lms) +export PATH="$PATH:/Users/joshp/.lmstudio/bin" +# End of LM Studio CLI section + +export GEMINI_API_KEY=AIzaSyA515wVt60qNWDqdt0QCKvx9vPoDb6b0fg +# The following lines have been added by Docker Desktop to enable Docker CLI completions. +fpath=(/Users/joshp/.docker/completions $fpath) +autoload -Uz compinit +compinit +# End of Docker CLI completions