diff --git a/dot_config/ghostty/config b/dot_config/ghostty/config new file mode 100644 index 0000000..27770fb --- /dev/null +++ b/dot_config/ghostty/config @@ -0,0 +1,4 @@ +# MesloLGM Nerd Font — matches Neovim (have_nerd_font), oh-my-posh, and other terminals. +# Install: oh-my-posh font install Meslo, or brew install --cask font-meslo-lg-nerd-font +font-family = "MesloLGM Nerd Font" +font-size = 12 diff --git a/dot_config/mise/config.toml.tmpl b/dot_config/mise/config.toml.tmpl index d1d2c73..582b6af 100644 --- a/dot_config/mise/config.toml.tmpl +++ b/dot_config/mise/config.toml.tmpl @@ -13,3 +13,4 @@ trusted_config_paths = [ [tools] bun = "1.3.13" python = "3.13.0" +vale = "latest" diff --git a/dot_config/mise/mise.lock b/dot_config/mise/mise.lock index fd53c73..ee93e93 100644 --- a/dot_config/mise/mise.lock +++ b/dot_config/mise/mise.lock @@ -81,3 +81,56 @@ provenance = "github-attestations" checksum = "sha256:c8134287496727922a5c47896b4f2b1623e3aab91cbb7c1ca64542db7593f3f1" url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" provenance = "github-attestations" + +[tools.python."platforms.windows-x64-baseline"] +checksum = "sha256:c8134287496727922a5c47896b4f2b1623e3aab91cbb7c1ca64542db7593f3f1" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[[tools.vale]] +version = "3.14.2" +backend = "aqua:vale-cli/vale" + +[tools.vale."platforms.linux-arm64"] +checksum = "sha256:b11fa9955b93814f993442568b9b922604cc4b574643037b84900e9514860802" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_arm64.tar.gz" + +[tools.vale."platforms.linux-arm64-musl"] +checksum = "sha256:b11fa9955b93814f993442568b9b922604cc4b574643037b84900e9514860802" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_arm64.tar.gz" + +[tools.vale."platforms.linux-x64"] +checksum = "sha256:469cf88ec58a374dca14b2564c4391d2c9a1c632210aa0b642758b794082e05f" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_64-bit.tar.gz" + +[tools.vale."platforms.linux-x64-baseline"] +checksum = "sha256:469cf88ec58a374dca14b2564c4391d2c9a1c632210aa0b642758b794082e05f" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_64-bit.tar.gz" + +[tools.vale."platforms.linux-x64-musl"] +checksum = "sha256:469cf88ec58a374dca14b2564c4391d2c9a1c632210aa0b642758b794082e05f" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_64-bit.tar.gz" + +[tools.vale."platforms.linux-x64-musl-baseline"] +checksum = "sha256:469cf88ec58a374dca14b2564c4391d2c9a1c632210aa0b642758b794082e05f" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Linux_64-bit.tar.gz" + +[tools.vale."platforms.macos-arm64"] +checksum = "sha256:14305f4e5e0756351ffd4ff8dd1e561c5d49f6a27360834238d832d9e64ac70f" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_macOS_arm64.tar.gz" + +[tools.vale."platforms.macos-x64"] +checksum = "sha256:083d1494dd411ee65ce4e14106426d69908b4fe65d35cc0576cdd70e6c3c2dae" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_macOS_64-bit.tar.gz" + +[tools.vale."platforms.macos-x64-baseline"] +checksum = "sha256:083d1494dd411ee65ce4e14106426d69908b4fe65d35cc0576cdd70e6c3c2dae" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_macOS_64-bit.tar.gz" + +[tools.vale."platforms.windows-x64"] +checksum = "sha256:2469b1635264cbe3ef2e5111270f03ec7583679ed76421155f4dd390fcc18874" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Windows_64-bit.zip" + +[tools.vale."platforms.windows-x64-baseline"] +checksum = "sha256:2469b1635264cbe3ef2e5111270f03ec7583679ed76421155f4dd390fcc18874" +url = "https://github.com/vale-cli/vale/releases/download/v3.14.2/vale_3.14.2_Windows_64-bit.zip" diff --git a/dot_config/nvim/init.lua b/dot_config/nvim/init.lua index ea00ab6..b24b9f3 100644 --- a/dot_config/nvim/init.lua +++ b/dot_config/nvim/init.lua @@ -90,13 +90,18 @@ P.S. You can delete this when you're done too. It's your config now! :) vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' +local path_sep = vim.fn.has 'win32' == 1 and ';' or ':' + +local function prepend_path(dir) + if vim.fn.isdirectory(dir) == 1 and not string.find(vim.env.PATH or '', dir, 1, true) then + vim.env.PATH = dir .. path_sep .. (vim.env.PATH or '') + end +end + if vim.fn.has 'win32' == 1 then vim.env.GIT_SSH_COMMAND = 'C:/Windows/System32/OpenSSH/ssh.exe -oBatchMode=yes' - local nvim_bin = vim.fn.stdpath('config') .. '/bin' - if vim.fn.isdirectory(nvim_bin) == 1 and not string.find(vim.env.PATH or '', nvim_bin, 1, true) then - vim.env.PATH = nvim_bin .. ';' .. (vim.env.PATH or '') - end + prepend_path(vim.fn.stdpath('config') .. '/bin') local local_app_data = vim.env.LOCALAPPDATA if local_app_data and local_app_data ~= '' then @@ -112,11 +117,12 @@ if vim.fn.has 'win32' == 1 then table.insert(mise_dirs, local_app_data .. '/mise/shims') for _, dir in ipairs(mise_dirs) do - if vim.fn.isdirectory(dir) == 1 and not string.find(vim.env.PATH or '', dir, 1, true) then - vim.env.PATH = dir .. ';' .. (vim.env.PATH or '') - end + prepend_path(dir) end end +else + -- GUI/IDE launches often skip shell profile hooks; mise shims expose global tools (e.g. vale). + prepend_path(vim.fn.expand '~/.local/share/mise/shims') end -- Nerd Font icons (nvim-tree devicons, Lazy UI, statusline). Requires a Nerd Font diff --git a/dot_config/oh-my-posh/spaceship-custom.omp.json b/dot_config/oh-my-posh/spaceship-custom.omp.json index 3d9e20c..c0b0afd 100644 --- a/dot_config/oh-my-posh/spaceship-custom.omp.json +++ b/dot_config/oh-my-posh/spaceship-custom.omp.json @@ -104,7 +104,7 @@ { "type": "java", "style": "plain", - "foreground": "#4063D8", + "foreground": "#ED8B00", "template": "\ue738 <#ffffff>java {{ .Full }} ", "options": { "cache_duration": "5m" diff --git a/dot_config/vale/styles/config/vocabularies/Dotfiles/accept.base.txt b/dot_config/vale/styles/config/vocabularies/Dotfiles/accept.base.txt index 6cbe59f..6077c15 100644 --- a/dot_config/vale/styles/config/vocabularies/Dotfiles/accept.base.txt +++ b/dot_config/vale/styles/config/vocabularies/Dotfiles/accept.base.txt @@ -78,3 +78,8 @@ (?i)\bbooleans\b (?i)\bshuffleable\b (?i)\bgithub\b +(?i)\basdf\b +(?i)\bIntellij\b +(?i)\bproxying\b +(?i)\bmiddleware\b +(?i)\bdialogs\b diff --git a/dot_gitignore_global b/dot_gitignore_global index 8461e8d..af6f461 100644 --- a/dot_gitignore_global +++ b/dot_gitignore_global @@ -122,4 +122,5 @@ tags # Persistent undo [._]*.un~ +.agents-code-review/ **/.claude/settings.local.json diff --git a/dot_tmux.conf b/dot_tmux.conf index cec7003..d5c4238 100644 --- a/dot_tmux.conf +++ b/dot_tmux.conf @@ -7,6 +7,7 @@ set-option -g focus-events on set-option -g renumber-windows on set-option -g set-clipboard on set-option -g allow-rename off +set-window-option -g automatic-rename off set-option -g set-titles on set-option -g set-titles-string "#{session_name}:#{window_name}" set-option -sg escape-time 0 diff --git a/mise.lock b/mise.lock index ca5e2bb..62646c4 100644 --- a/mise.lock +++ b/mise.lock @@ -22,6 +22,40 @@ url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz" [tools.bats."platforms.macos-x64"] url = "https://github.com/bats-core/bats-core/archive/refs/tags/v1.13.0.tar.gz" +[[tools.python]] +version = "3.13.0" +backend = "core:python" + +[tools.python."platforms.linux-arm64"] +checksum = "sha256:06e633164cb0133685a2ce14af88df0dbcaea4b0b2c5d3348d6b81393307481a" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64"] +checksum = "sha256:b5e74d1e16402b633c6f04519618231fc0dbae7d2f9e4b1ac17c294cc3d3d076" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64-musl"] +checksum = "sha256:10978500ab6589760716c644aeadffa0f2c0bf31ea10f0c6160fee933933a567" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-arm64"] +checksum = "sha256:e94fafbac07da52c965cb6a7ffc51ce779bd253cd98af801347aac791b96499f" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-aarch64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-x64"] +checksum = "sha256:406664681bd44af35756ad08f5304f1ec57070bb76fae8ff357ff177f229b224" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.windows-x64"] +checksum = "sha256:c8134287496727922a5c47896b4f2b1623e3aab91cbb7c1ca64542db7593f3f1" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20241016/cpython-3.13.0+20241016-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" +provenance = "github-attestations" + [[tools.shellcheck]] version = "0.11.0" backend = "aqua:koalaman/shellcheck" diff --git a/windows/backup/README.md b/windows/backup/README.md index 8e57a7f..4a838e4 100644 --- a/windows/backup/README.md +++ b/windows/backup/README.md @@ -18,6 +18,7 @@ The export script currently captures these targets when present: (`Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1`) - Windows Terminal settings (`settings.json` for stable/preview packages) - VS Code user settings and keybindings +- Cursor user settings and keybindings - `winget` package export (`windows/backup/winget-packages.json`) ## Notes diff --git a/windows/backup/export.ps1 b/windows/backup/export.ps1 index 6a883c5..bd37022 100644 --- a/windows/backup/export.ps1 +++ b/windows/backup/export.ps1 @@ -59,6 +59,14 @@ $targets = @( @{ Source = Join-Path $env:APPDATA "Code\User\keybindings.json" Destination = Join-Path $repoRootPath "windows\vscode\keybindings.json" + }, + @{ + Source = Join-Path $env:APPDATA "Cursor\User\settings.json" + Destination = Join-Path $repoRootPath "windows\cursor\settings.json" + }, + @{ + Source = Join-Path $env:APPDATA "Cursor\User\keybindings.json" + Destination = Join-Path $repoRootPath "windows\cursor\keybindings.json" } ) diff --git a/windows/cursor/settings.json b/windows/cursor/settings.json new file mode 100644 index 0000000..1cff076 --- /dev/null +++ b/windows/cursor/settings.json @@ -0,0 +1,5 @@ +{ + "workbench.colorTheme": "Default Dark Modern", + "terminal.integrated.fontFamily": "MesloLGM Nerd Font", + "terminal.integrated.fontSize": 12 +} diff --git a/windows/terminal/settings.json b/windows/terminal/settings.json index 3c6023c..f7e5c76 100644 --- a/windows/terminal/settings.json +++ b/windows/terminal/settings.json @@ -59,7 +59,12 @@ ], "profiles": { - "defaults": {}, + "defaults": { + "font": { + "face": "MesloLGM Nerd Font", + "size": 12 + } + }, "list": [ { diff --git a/windows/vscode/settings.json b/windows/vscode/settings.json index d66e5c5..1cff076 100644 --- a/windows/vscode/settings.json +++ b/windows/vscode/settings.json @@ -1,3 +1,5 @@ { - "workbench.colorTheme": "Default Dark Modern" + "workbench.colorTheme": "Default Dark Modern", + "terminal.integrated.fontFamily": "MesloLGM Nerd Font", + "terminal.integrated.fontSize": 12 }