{ config, pkgs, lib, user, host, rice, allowed, ... }: { config = lib.mkIf (host != "NxACE") { home.packages = [ pkgs.vscodium pkgs.nixpkgs-fmt ]; programs.vscode = { enable = true; package = pkgs.vscodium; extensions = with pkgs.vscode-extensions; [ jnoortheen.nix-ide ms-python.python ms-python.black-formatter redhat.vscode-yaml redhat.vscode-xml ms-python.python mhutchie.git-graph github.vscode-pull-request-github esbenp.prettier-vscode gencer.html-slim-scss-css-class-completion donjayamanne.githistory mads-hartmann.bash-ide-vscode bungcip.better-toml arrterian.nix-env-selector # ms-vscode-remote.remote-ssh ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ { name = "just-black"; publisher = "nur"; version = "3.1.1"; sha256 = "sha256-fatJZquCDsLDFGVzBol2D6LIZUbZ6GzqcVEFAwLodW0="; } { name = "vscode-sshfs"; publisher = "Kelvin"; version = "1.26.1"; sha256 = "sha256-WO9vYELNvwmuNeI05sUBE969KAiKYtrJ1fRfdZx3OYU="; } { name = "color-highlight"; publisher = "naumovs"; version = "2.8.0"; sha256 = "sha256-mT2P1lEdW66YkDRN6fi0rmmvvyBfXiJjAUHns8a8ipE="; } { name = "dancehelix"; publisher = "silverquark"; version = "0.5.16"; sha256 = "sha256-oHwtlbB18ctEnfStDOpJ+2/Kq41JZog8FVhTa1/s7m0="; } # { # name = "remote-ssh-edit"; # publisher = "ms-vscode-remote"; # version = "0.86.0"; # sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g"; # } # { # name = "remote-ssh"; # publisher = "ms-vscode-remote"; # version = "0.110.2024030715"; # sha256 = "sha256-gkxrBwPRDdLFaxc1/vYFBsv4Z0JOhDzb8LrLhkToC/g="; # } ]; userSettings = { workbench.colorTheme = "Just Black"; editor.fontFamily = "'${rice.font.code.name2}', 'monospace', monospace"; remote.SSH.useLocalServer = false; }; enableUpdateCheck = false; enableExtensionUpdateCheck = false; keybindings = [ { key = "ctrl+d"; command = "editor.action.deleteLines"; when = "textInputFocus"; } { key = "ctrl+shift+d"; command = "editor.action.duplicateSelection"; when = "textInputFocus"; } { # unset so that ctrl d is not set twice key = ""; command = "editor.action.addSelectionToNextFindMatch"; when = "editorFocus"; } { # unset so that ctrl shift d is not set twice key = ""; command = "workbench.view.debug"; } ]; }; }; imports = if host != "NxACE" then [ # Make vscode settings writable (import (builtins.fetchurl { url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/mutability.nix"; sha256 = "4b5ca670c1ac865927e98ac5bf5c131eca46cc20abf0bd0612db955bfc979de8"; }) { inherit config lib; }) (import (builtins.fetchurl { url = "https://gist.githubusercontent.com/piousdeer/b29c272eaeba398b864da6abf6cb5daa/raw/41e569ba110eb6ebbb463a6b1f5d9fe4f9e82375/vscode.nix"; sha256 = "fed877fa1eefd94bc4806641cea87138df78a47af89c7818ac5e76ebacbd025f"; }) { inherit config lib pkgs; }) ] else []; }