{ config, pkgs, lib, host, rice, ... }: { config = lib.mkIf (host != "NxACE") { home.packages = [ pkgs.vscodium pkgs.nixpkgs-fmt ]; programs.vscode = { enable = true; package = pkgs.vscodium; profiles.default ={ userSettings = { workbench.colorTheme = "Just Black"; editor.fontFamily = "'${rice.font.code.name}', 'monospace', monospace"; remote.SSH.useLocalServer = 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"; } ]; 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 ] ++ 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="; } ]; enableUpdateCheck = false; enableExtensionUpdateCheck = false; }; }; }; 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 []; }