+7
configs/mise.toml
+7
configs/mise.toml
+48
configs/vscode/keybindings.json
+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
+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
+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
+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