{ config, pkgs, flakeSelf, ... }: let inputs = flakeSelf.inputs; in { nixpkgs.overlays = [ inputs.catppuccin-vsc.overlays.default ]; home-manager.users.toast = { home.packages = with pkgs; [ nixpkgs-fmt ]; programs.vscode = { enable = true; package = pkgs.vscodium; mutableExtensionsDir = false; extensions = with inputs.vscode-extensions.extensions.x86_64-linux.open-vsx; [ jnoortheen.nix-ide (pkgs.catppuccin-vsc.override { workbenchMode = "flat"; extraBordersEnabled = true; }) catppuccin.catppuccin-vsc-icons waderyan.gitblame ]; userSettings = { # VSCode doesn't like nested settings # https://stackoverflow.com/questions/74134436/is-it-possible-to-express-settings-in-vs-codes-settings-json-where-each-dot-sep # TODO: write a function that unnests settings "workbench.colorTheme" = "Catppuccin Mocha"; "workbench.iconTheme" = "catppuccin-mocha"; "editor.fontFamily" = "JetBrainsMono Nerd Font"; "editor.semanticHighlighting.enabled" = true; "nix.enableLanguageServer" = true; "nix.serverPath" = "${pkgs.nil}/bin/nil"; "nix.serverSettings" = { "nil"."formatting"."command" = [ "nixpkgs-fmt" ]; }; "terminal.integrated.minimumContrastRatio" = 1; "window.titleBarStyle" = "custom"; }; }; }; }