{ inputs, self, ... }: { flake.nixosModules.graphics = { config, pkgs, lib, ... }: { options.features.applications.gui.vscode.enable = lib.mkEnableOption "vscode"; config = let mkIfElse = with lib; p: yes: no: mkMerge [ (mkIf p yes) (mkIf (!p) no) ]; in lib.mkIf (config.features.applications.gui.vscode.enable) (mkIfElse (config.features.nixos.home-manager.enable) { home-manager.users.grey.features.applications.gui.vscode.enable = lib.mkDefault true; } { environment.systemPackages = [ pkgs.vscode ]; }); }; flake.homeModules.graphics = { config, pkgs, lib, ... }: { options.features.applications.gui.vscode.enable = lib.mkEnableOption "vscode"; config = lib.mkIf (config.features.applications.gui.vscode.enable) { home.packages = [ pkgs.vscode ]; home.activation = { linkVsCodeConfigSettings = lib.hm.dag.entryAfter ["writeBoundary"] (config.helpers.mkSymlinkActivationScript { target = ".config/Code/User/settings.json"; source = "dotfiles/global/vscode/settings.json"; }); linkVsCodeConfigKeybindings = lib.hm.dag.entryAfter ["writeBoundary"] (config.helpers.mkSymlinkActivationScript { target = ".config/Code/User/keybindings.json"; source = "dotfiles/global/vscode/keybindings.json"; }); }; }; }; }