@jaspermayone's dotfiles

final on #2 closes #2

Changed files
+322 -3
configs
darwin
modules
+7
configs/mise.toml
··· 1 + [tools] 2 + node = "22" 3 + ruby = "latest" 4 + 5 + [settings] 6 + idiomatic_version_file_enable_tools = [] 7 + experimental = true
+48
configs/vscode/keybindings.json
··· 1 + // Place your key bindings in this file to override the defaultsauto[] 2 + [ 3 + { 4 + "key": "cmd+p", 5 + "command": "workbench.action.showCommands", 6 + }, 7 + { 8 + "key": "cmd+/", 9 + "command": "editor.action.commentLine", 10 + "when": "editorTextFocus && !editorReadonly" 11 + }, 12 + { 13 + "key": "cmd+/", 14 + "command": "-editor.action.commentLine", 15 + "when": "editorTextFocus && !editorReadonly" 16 + }, 17 + { 18 + "key": "alt+cmd+/", 19 + "command": "editor.action.blockComment", 20 + "when": "editorTextFocus && !editorReadonly" 21 + }, 22 + { 23 + "key": "shift+alt+a", 24 + "command": "-editor.action.blockComment", 25 + "when": "editorTextFocus && !editorReadonly" 26 + }, 27 + { 28 + "key": "alt+cmd+f", 29 + "command": "swift.insertFunctionComment", 30 + "when": "editorTextFocus" 31 + }, 32 + { 33 + "key": "alt+cmd+/", 34 + "command": "-swift.insertFunctionComment", 35 + "when": "editorTextFocus" 36 + }, 37 + { 38 + "key": "shift+enter alt+cmd", 39 + "command": "liveshare.followToTheSide", 40 + "when": "liveshare:hasCollaborators" 41 + }, 42 + { 43 + "key": "alt+cmd+/", 44 + "command": "-liveshare.followToTheSide", 45 + "when": "liveshare:hasCollaborators" 46 + } 47 + ] 48 + // testing...
+167
configs/vscode/settings.json
··· 1 + { 2 + "editor.inlineSuggest.enabled": true, 3 + "editor.accessibilitySupport": "off", 4 + "terminal.integrated.env.osx": {}, 5 + "workbench.startupEditor": "none", 6 + "javascript.updateImportsOnFileMove.enabled": "always", 7 + "typescript.updateImportsOnFileMove.enabled": "always", 8 + "[javascript]": { 9 + "editor.defaultFormatter": "vscode.typescript-language-features" 10 + }, 11 + "[json]": { 12 + "editor.defaultFormatter": "vscode.json-language-features" 13 + }, 14 + "files.trimTrailingWhitespace": true, 15 + "[jsonc]": { 16 + "editor.defaultFormatter": "vscode.json-language-features" 17 + }, 18 + "[typescript]": { 19 + "editor.defaultFormatter": "esbenp.prettier-vscode" 20 + }, 21 + "[css]": { 22 + "editor.suggest.insertMode": "replace" 23 + }, 24 + "files.exclude": { 25 + "**/.DS_Store": false, 26 + "**/.DS_Store/**": true, 27 + "**/.git": false, 28 + "**/.hg": false, 29 + "**/.svn": false, 30 + "**/CVS": false, 31 + "**/Thumbs.db": false, 32 + "node_modules": true 33 + }, 34 + "files.trimFinalNewlines": true, 35 + "[html]": { 36 + "editor.defaultFormatter": "vscode.html-language-features" 37 + }, 38 + "terminal.explorerKind": "external", 39 + "terminal.external.osxExec": "iTerm.app", 40 + "terminal.integrated.allowMnemonics": true, 41 + "[dockercompose]": { 42 + "editor.defaultFormatter": "ms-azuretools.vscode-docker" 43 + }, 44 + "gitlens.defaultGravatarsStyle": "wavatar", 45 + "explorer.confirmDragAndDrop": false, 46 + "debug.terminal.clearBeforeReusing": true, 47 + "git.confirmSync": false, 48 + "svelte.enable-ts-plugin": true, 49 + "git.openRepositoryInParentFolders": "never", 50 + "gitlens.rebaseEditor.ordering": "asc", 51 + "editor.unicodeHighlight.allowedCharacters": { 52 + "‌": true 53 + }, 54 + "editor.unicodeHighlight.includeStrings": false, 55 + "[sql]": { 56 + "editor.defaultFormatter": "teejae.vscode-sql-formatter" 57 + }, 58 + "editor.fontFamily": "Monaspace Neon Var", 59 + "editor.fontLigatures": "'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'calt', 'dlig'", 60 + "editor.fontSize": 12, 61 + "git.enableSmartCommit": true, 62 + "[ruby]": { 63 + "editor.defaultFormatter": "Shopify.ruby-lsp", 64 + "editor.formatOnType": true, 65 + "editor.tabSize": 2, 66 + "editor.insertSpaces": true, 67 + "files.trimTrailingWhitespace": true, 68 + "files.insertFinalNewline": true, 69 + "files.trimFinalNewlines": true, 70 + "editor.rulers": [ 71 + 120 72 + ], 73 + "editor.semanticHighlighting.enabled": true 74 + }, 75 + "standardRuby.autofix": true, 76 + "github.copilot.enable": { 77 + "*": true, 78 + "plaintext": false, 79 + "markdown": false, 80 + "scminput": false, 81 + "properties": false 82 + }, 83 + "ruby.interpreter.commandPath": "mise exec ruby --", 84 + "rubyLsp.rubyVersionManager": { 85 + "identifier": "mise" 86 + }, 87 + "editor.linkedEditing": true, 88 + "editor.tabSize": 2, 89 + "editor.codeActionsOnSave": { 90 + "source.fixAll": "explicit", 91 + "source.organizeImports": "explicit" 92 + }, 93 + "editor.tokenColorCustomizations": { 94 + "textMateRules": [ 95 + { 96 + "name": "envKeys", 97 + "scope": "string.quoted.single.ini,constant.numeric.ini,string.quoted.double.ini", 98 + "settings": { 99 + "foreground": "#19354900" 100 + } 101 + } 102 + ] 103 + }, 104 + "prisma.showPrismaDataPlatformNotification": false, 105 + "solargraph.commandPath": "/Users/jsp/.local/share/mise/installs/ruby/3.4.3/bin/solargraph", 106 + "sorbet.enabled": true, 107 + "[erb]": { 108 + "editor.defaultFormatter": "tomclose.format-erb" 109 + }, 110 + "colorize.exclude": [ 111 + "**/.git", 112 + "**/.svn", 113 + "**/.hg", 114 + "**/CVS", 115 + "**/.DS_Store", 116 + "**/.git", 117 + "**/node_modules", 118 + "**/bower_components", 119 + "**/tmp", 120 + "**/dist", 121 + "**/tests" 122 + ], 123 + "arcade-vsc.slackID": "U05NX48GL3T", 124 + "arcade-vsc.notifications.startReminder": false, 125 + "lldb.library": "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB", 126 + "lldb.launch.expressions": "native", 127 + "editor.formatOnPaste": true, 128 + "[typescriptreact]": { 129 + "editor.defaultFormatter": "esbenp.prettier-vscode" 130 + }, 131 + "editor.defaultFormatter": "esbenp.prettier-vscode", 132 + "editor.formatOnSave": true, 133 + "typescript.preferences.organizeImports": {}, 134 + "workbench.editorAssociations": { 135 + "git-rebase-todo": "default" 136 + }, 137 + "workbench.preferredDarkColorTheme": "Comrade (rainglow)", 138 + "workbench.preferredLightColorTheme": "Coffee Light (rainglow)", 139 + "workbench.iconTheme": "vscode-icons", 140 + "workbench.preferredHighContrastColorTheme": "Comrade Contrast (rainglow)", 141 + "workbench.preferredHighContrastLightColorTheme": "Coffee Contrast (rainglow)", 142 + "git.blame.editorDecoration.enabled": false, 143 + "npm.packageManager": "bun", 144 + "github.copilot.nextEditSuggestions.enabled": true, 145 + "roo-cline.allowedCommands": [ 146 + "git log", 147 + "git diff", 148 + "git show", 149 + "python3 -m venv venv", 150 + "python3" 151 + ], 152 + "roo-cline.deniedCommands": [], 153 + "chromiumide.metrics.showMessage": false, 154 + "chromiumide.disclaimerOnMac.enabled": false, 155 + "gitlens.ai.model": "vscode", 156 + "gitlens.ai.vscode.model": "copilot:gpt-4.1", 157 + "workbench.colorTheme": "Absent (rainglow)", 158 + "telemetry.editStats.enabled": false, 159 + "[github-actions-workflow]": { 160 + "editor.defaultFormatter": "redhat.vscode-yaml" 161 + }, 162 + "chat.mcp.discovery.enabled": { 163 + "windsurf": true, 164 + "claude-desktop": true 165 + }, 166 + "platformio-ide.autoOpenPlatformIOIniFile": false, 167 + }
+85 -3
darwin/default.nix
··· 34 34 imagemagick 35 35 wget 36 36 woff2 37 + 38 + # Additional CLI tools 39 + lazygit 40 + redis 41 + mkcert 42 + inetutils # telnet, ftp, etc. 43 + watchman 44 + pipx 45 + pwgen 46 + ninja 47 + gnumake 48 + ghostscript 49 + yubikey-manager 50 + bitwarden-cli 51 + git-filter-repo 52 + libyaml 53 + fswatch 54 + wireguard-tools 37 55 ]; 38 56 39 57 # Homebrew integration ··· 41 59 enable = true; 42 60 onActivation = { 43 61 autoUpdate = true; 44 - # cleanup = "zap"; # Remove unlisted packages 62 + cleanup = "zap"; # Remove unlisted packages 45 63 upgrade = true; 46 64 }; 47 65 48 66 taps = [ 49 67 "bramstein/webfonttools" 68 + "charmbracelet/tap" 69 + "heroku/brew" 70 + "jaspermayone/tap" 71 + "minio/stable" 72 + "oven-sh/bun" 73 + "sst/tap" 74 + "stripe/stripe-cli" 75 + "withgraphite/tap" 76 + "dotenvx/brew" 50 77 ]; 51 78 52 - # CLI tools (only macOS-specific or unavailable in nixpkgs) 79 + # CLI tools (only macOS-specific, special taps, or unavailable in nixpkgs) 53 80 brews = [ 81 + # macOS specific 54 82 "mas" # Mac App Store CLI 55 - # Font tools (from bramstein/webfonttools tap) 83 + 84 + # Font tools (bramstein tap) 56 85 "sfnt2woff" 57 86 "sfnt2woff-zopfli" 87 + 88 + # Cloud/Dev CLIs (from taps) 89 + "heroku/brew/heroku" 90 + "stripe/stripe-cli/stripe" 91 + "vercel-cli" 92 + "withgraphite/tap/graphite" 93 + "sst/tap/opencode" 94 + "dotenvx/brew/dotenvx" 95 + 96 + # Charmbracelet tools 97 + "charmbracelet/tap/freeze" 98 + "charmbracelet/tap/crush" 99 + 100 + # Custom/personal 101 + "jaspermayone/tap/boxcar" 102 + "minio/stable/mc" 103 + 104 + # Embedded development 105 + "arm-none-eabi-gcc" 106 + "dfu-util" 107 + "open-ocd" 108 + "stlink" 109 + 110 + # Build tools 111 + "ccache" 112 + "sccache" 113 + 114 + # Languages/runtimes (specific versions) 115 + "composer" 116 + "openjdk" 117 + "openjdk@21" 118 + "rust" # Keep for toolchain management 119 + 120 + # Databases (specific versions) 121 + "mysql@8.0" 122 + "postgresql@17" 123 + "percona-toolkit" 124 + "pgvector" 125 + 126 + # Image processing 127 + "vips" 128 + "graphicsmagick" 129 + 130 + # Misc tools 131 + "thefuck" 132 + "trufflehog" 133 + "eget" 134 + "gitmoji" 135 + "create-dmg" 58 136 ]; 59 137 60 138 # GUI apps (casks) 61 139 casks = [ 140 + "basictex" 141 + "bitwarden" 62 142 "discord" 63 143 "espanso" 144 + "gitkraken-cli" 145 + "ngrok" 64 146 "raycast" 65 147 ]; 66 148
+15
modules/configs.nix
··· 18 18 source = ../configs/karabiner.json; 19 19 }; 20 20 21 + # Mise (version manager) configuration 22 + xdg.configFile."mise/config.toml".source = ../configs/mise.toml; 23 + 21 24 # Espanso configuration 22 25 home.file = lib.mkMerge [ 23 26 # macOS espanso paths ··· 30 33 (lib.mkIf (!isDarwin) { 31 34 ".config/espanso/config/default.yml".source = ../configs/espanso/config/default.yml; 32 35 ".config/espanso/match/base.yml".source = ../configs/espanso/match/base.yml; 36 + }) 37 + 38 + # VS Code settings (macOS) 39 + (lib.mkIf isDarwin { 40 + "Library/Application Support/Code/User/settings.json".source = ../configs/vscode/settings.json; 41 + "Library/Application Support/Code/User/keybindings.json".source = ../configs/vscode/keybindings.json; 42 + }) 43 + 44 + # VS Code settings (Linux) 45 + (lib.mkIf (!isDarwin) { 46 + ".config/Code/User/settings.json".source = ../configs/vscode/settings.json; 47 + ".config/Code/User/keybindings.json".source = ../configs/vscode/keybindings.json; 33 48 }) 34 49 ]; 35 50