feat(editors): restore vscode alongside zed for build123d workflows

- linux: programs.vscode via pkgs-master with gnome-libsecret password store
- darwin: visual-studio-code cask + aerospace window rules
- idols-ai: persist .vscode and .config/Code (Settings Sync handles extensions)
- xdg: code.desktop editor association and vscode:// scheme handler
This commit is contained in:
Ryan Yin
2026-08-29 17:05:44 +08:00
parent 5fe43e3c12
commit f08b45d2bc
5 changed files with 35 additions and 0 deletions
+4
View File
@@ -280,6 +280,10 @@ run = ['layout floating', 'move-node-to-workspace 9File']
if.app-id = 'com.apple.Preview' if.app-id = 'com.apple.Preview'
run = ['layout floating', 'move-node-to-workspace 9File'] run = ['layout floating', 'move-node-to-workspace 9File']
[[on-window-detected]]
if.app-id = 'com.microsoft.VSCode'
run = ['layout floating', 'move-node-to-workspace 9File']
[[on-window-detected]] [[on-window-detected]]
if.app-id = 'com.todesktop.230313mzl4w4u92' # Cursor AI Editor if.app-id = 'com.todesktop.230313mzl4w4u92' # Cursor AI Editor
run = ['layout floating', 'move-node-to-workspace 9File'] run = ['layout floating', 'move-node-to-workspace 9File']
+21
View File
@@ -0,0 +1,21 @@
{
lib,
pkgs-master,
...
}:
{
programs.vscode = {
# Extensions and settings are managed by VS Code's built-in Settings Sync,
# not declaratively here (persisted via `.config/Code`, see preservation).
enable = true;
package = pkgs-master.vscode.override {
commandLineArgs = [
# https://code.visualstudio.com/docs/configure/settings-sync#_recommended-configure-the-keyring-to-use-with-vs-code
# For use with any package that implements the Secret Service API
# (for example gnome-keyring, kwallet5, KeepassXC)
"--password-store=gnome-libsecret"
];
};
};
}
+3
View File
@@ -18,6 +18,7 @@
"firefox.desktop" "firefox.desktop"
]; ];
editor = [ editor = [
"code.desktop"
"dev.zed.Zed.desktop" "dev.zed.Zed.desktop"
"nvim.desktop" "nvim.desktop"
"Helix.desktop" "Helix.desktop"
@@ -47,6 +48,8 @@
"x-scheme-handler/ftp" = browser; # open `ftp:` url with `browser` "x-scheme-handler/ftp" = browser; # open `ftp:` url with `browser`
"x-scheme-handler/http" = browser; "x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser; "x-scheme-handler/https" = browser;
# https://github.com/microsoft/vscode/issues/146408
"x-scheme-handler/vscode" = [ "code-url-handler.desktop" ]; # open `vscode://` url with `code-url-handler.desktop`
"x-scheme-handler/zoommtg" = [ "Zoom.desktop" ]; "x-scheme-handler/zoommtg" = [ "Zoom.desktop" ];
# all other unknown schemes will be opened by this default application. # all other unknown schemes will be opened by this default application.
+4
View File
@@ -141,6 +141,10 @@ in
# neovim plugins # neovim plugins
".wakatime" ".wakatime"
# vscode
".vscode"
".config/Code"
# zed # zed
".config/zed" ".config/zed"
".local/share/zed" ".local/share/zed"
+3
View File
@@ -153,6 +153,9 @@ in
# "nikitabobko/tap/aerospace" # an i3-like tiling window manager for macOS # "nikitabobko/tap/aerospace" # an i3-like tiling window manager for macOS
"ghostty" # terminal emulator "ghostty" # terminal emulator
# code editor
"visual-studio-code"
# AI agents # AI agents
"codex-app" # codex desktop app "codex-app" # codex desktop app
"claude" # claude desktop app "claude" # claude desktop app