From d09bfa5c42330ba7500eafa91177824874bb4c4d Mon Sep 17 00:00:00 2001 From: Andrei Lazarescu Date: Wed, 18 Feb 2026 17:47:42 +0200 Subject: [PATCH] Reconcile nix setup with PC config --- flake.lock | 24 +++++++-------- home/andrei/git.nix | 8 ++--- home/andrei/ssh.nix | 2 ++ home/andrei/vscode.nix | 68 ++++++++++++++++++++++++++++++++++-------- system/homebrew.nix | 36 +++++++++++++++++----- 5 files changed, 101 insertions(+), 37 deletions(-) diff --git a/flake.lock b/flake.lock index 5d5ff2e..9ae7a46 100644 --- a/flake.lock +++ b/flake.lock @@ -28,11 +28,11 @@ ] }, "locked": { - "lastModified": 1758375677, - "narHash": "sha256-BLtD+6qWz7fQjPk2wpwyXQLGI0E30Ikgf2ppn2nVadI=", + "lastModified": 1761395627, + "narHash": "sha256-9wQpgBRW2PzYw1wx+MgCt1IbPAYz93csApLMgSZOJCk=", "owner": "nix-community", "repo": "home-manager", - "rev": "edc7468e12be92e926847cb02418e649b02b59dd", + "rev": "7296022150cd775917e4c831c393026eae7c2427", "type": "github" }, "original": { @@ -49,11 +49,11 @@ ] }, "locked": { - "lastModified": 1758102940, - "narHash": "sha256-wwqf3+A8EiqwWpcAaPN20QXJLlpGPpwtLTrzgnngI2o=", + "lastModified": 1761339987, + "narHash": "sha256-IUaawVwItZKi64IA6kF6wQCLCzpXbk2R46dHn8sHkig=", "owner": "nix-darwin", "repo": "nix-darwin", - "rev": "ebd0bfc11fc2b5cff37401e9b3703881ad5fabbd", + "rev": "7cd9aac79ee2924a85c211d21fafd394b06a38de", "type": "github" }, "original": { @@ -65,11 +65,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1758262103, - "narHash": "sha256-aBGl3XEOsjWw6W3AHiKibN7FeoG73dutQQEqnd/etR8=", + "lastModified": 1761349956, + "narHash": "sha256-tH3wHnOJms+U4k/rK2Nn1RfBrhffX92jLP/2VndSn0w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "12bd230118a1901a4a5d393f9f56b6ad7e571d01", + "rev": "02f2cb8e0feb4596d20cc52fda73ccee960e3538", "type": "github" }, "original": { @@ -87,11 +87,11 @@ ] }, "locked": { - "lastModified": 1758381358, - "narHash": "sha256-3edVTFHJavTAZH4D0MMraM+4JxrxXWeizQvlCWXcKnE=", + "lastModified": 1761424731, + "narHash": "sha256-R1dkdI2bLlhAFOLAT+W40lU1ab7+DBGaOORr/UrFZzY=", "owner": "nix-community", "repo": "NUR", - "rev": "62688dab3927fc080aad78d6814250b65cac1261", + "rev": "ceae515c833b8c6ac57307ccdefb08d782ea2432", "type": "github" }, "original": { diff --git a/home/andrei/git.nix b/home/andrei/git.nix index 3cf4cf9..c04b694 100644 --- a/home/andrei/git.nix +++ b/home/andrei/git.nix @@ -4,11 +4,11 @@ programs.git = { enable = true; package = pkgs.gitFull; - aliases = {}; lfs.enable = true; - userEmail = "lazarescu.andrei19@gmail.com"; - userName = "Andrei Lazarescu"; - extraConfig = { + settings = { + alias = {}; + user.email = "lazarescu.andrei19@gmail.com"; + user.name = "Andrei Lazarescu"; user.signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFkft5uSiWODIKIBGFPSCRktDEaxYPbudDUYlYyj53w/"; gpg.format = "ssh"; gpg.ssh.program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign"; diff --git a/home/andrei/ssh.nix b/home/andrei/ssh.nix index e8a1527..5dd57af 100644 --- a/home/andrei/ssh.nix +++ b/home/andrei/ssh.nix @@ -1,6 +1,8 @@ { programs.ssh = { enable = true; + enableDefaultConfig = false; + matchBlocks."*" = {}; extraConfig = '' Host * IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" diff --git a/home/andrei/vscode.nix b/home/andrei/vscode.nix index 7bdf3cb..069abb6 100644 --- a/home/andrei/vscode.nix +++ b/home/andrei/vscode.nix @@ -1,23 +1,59 @@ -{ pkgs, ... }: +{ lib, ... }: +let + vscodeExtensions = [ + "github.copilot" + "github.copilot-chat" + "ms-azuretools.vscode-containers" + "ms-dotnettools.csdevkit" + "ms-dotnettools.csharp" + "ms-dotnettools.vscode-dotnet-runtime" + "ms-vscode-remote.remote-containers" + "ms-vscode-remote.remote-ssh" + "ms-vscode-remote.remote-ssh-edit" + "ms-vscode-remote.remote-wsl" + "ms-vscode-remote.vscode-remote-extensionpack" + "ms-vscode.remote-explorer" + "ms-vscode.remote-server" + "ms-vsliveshare.vsliveshare" + ]; + + cursorExtensions = [ + "anysphere.cursorpyright" + "anysphere.remote-ssh" + "astro-build.astro-vscode" + "castwide.solargraph" + "expo.vscode-expo-tools" + "github.vscode-github-actions" + "jnoortheen.nix-ide" + "ms-dotnettools.csdevkit" + "ms-dotnettools.csharp" + "ms-dotnettools.vscode-dotnet-runtime" + "ms-python.anaconda-extension-pack" + "ms-python.debugpy" + "ms-python.python" + "msjsdiag.vscode-react-native" + "redhat.vscode-yaml" + "rust-lang.rust-analyzer" + "shopify.ruby-lsp" + ]; + + installExtensions = editor: extensions: '' + if command -v ${editor} >/dev/null 2>&1; then + for ext in ${lib.concatStringsSep " " (map lib.escapeShellArg extensions)}; do + $DRY_RUN_CMD ${editor} --install-extension "$ext" --force >/dev/null 2>&1 || true + done + fi + ''; +in { programs.vscode = { enable = true; - mutableExtensionsDir = false; + # Allow manual extension installs from within the editor. + mutableExtensionsDir = true; profiles.default = { enableExtensionUpdateCheck = true; enableUpdateCheck = true; - extensions = [ - pkgs.vscode-extensions.ms-vscode-remote.remote-ssh - pkgs.vscode-extensions.ms-vscode-remote.remote-ssh-edit - pkgs.vscode-extensions.jnoortheen.nix-ide - pkgs.vscode-extensions.ms-dotnettools.csdevkit - pkgs.vscode-extensions.ms-dotnettools.csharp - pkgs.vscode-extensions.ms-dotnettools.vscode-dotnet-runtime - pkgs.vscode-extensions.shopify.ruby-lsp - pkgs.vscode-extensions.castwide.solargraph - pkgs.vscode-extensions.astro-build.astro-vscode - ]; userSettings = { "editor.fontSize" = 16; "editor.fontFamily" = "'FiraCode Nerd Font Mono'"; @@ -28,4 +64,10 @@ }; }; }; + + home.activation.installEditorExtensions = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + # Keep your current VS Code and Cursor extensions as baseline. + ${installExtensions "code" vscodeExtensions} + ${installExtensions "cursor" cursorExtensions} + ''; } diff --git a/system/homebrew.nix b/system/homebrew.nix index c66400c..9f47b36 100644 --- a/system/homebrew.nix +++ b/system/homebrew.nix @@ -1,16 +1,36 @@ -{ pkgs, ... }: +{ ... }: { homebrew = { enable = true; - brews = [ "asdf" "libyaml" "libpq" "k9s" "sst/tap/opencode" "awscli" "helm" "sops" "yq" "opencode" - { - name = "postgresql@17"; - restart_service = "changed"; - } + brews = [ + "asdf" + "awscli" + "azure-cli" + "cloc" + "hashicorp/tap/terraform" + "helm" + "k9s" + "libpq" + "sops" + "sst/tap/opencode" + "yq" + ]; + taps = [ "hashicorp/tap" "sst/tap" ]; + casks = [ + "cursor" + "dotnet-sdk" + "firefox" + "flutter" + "google-chrome" + "obsidian" + "qbittorrent" + "raycast" + "slack" + "structuredlogviewer" + "visual-studio-code" + "vlc" ]; - taps = [ "sst/tap" ]; - casks = [ "raycast" "firefox" "slack" "google-chrome" "cursor" "qbittorrent" "vlc" "obsidian" ]; onActivation = { cleanup = "zap"; };