73 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  lib,
 | 
						|
  pkgs,
 | 
						|
  config,
 | 
						|
  osConfig,
 | 
						|
  ...
 | 
						|
}: {
 | 
						|
  config = {
 | 
						|
    nixpkgs.config = {
 | 
						|
      allowUnfree = true;
 | 
						|
    };
 | 
						|
 | 
						|
    # Programs that need to be installed with some extra configuration
 | 
						|
    programs = lib.mkMerge [
 | 
						|
      {
 | 
						|
        # Let Home Manager install and manage itself.
 | 
						|
        home-manager.enable = true;
 | 
						|
      }
 | 
						|
      (lib.mkIf (config.user.isDesktopUser || config.user.isTerminalUser) {
 | 
						|
        # git = {
 | 
						|
        #   enable = true;
 | 
						|
        #   userName = "Ivy";
 | 
						|
        #   userEmail = "ivy@example.com"; # Update this with actual email
 | 
						|
        #   extraConfig.init.defaultBranch = "main";
 | 
						|
        # };
 | 
						|
 | 
						|
        openssh = {
 | 
						|
          enable = true;
 | 
						|
          hostKeys = [
 | 
						|
            {
 | 
						|
              type = "ed25519";
 | 
						|
              path = "${config.home.username}_${osConfig.networking.hostName}_ed25519";
 | 
						|
            }
 | 
						|
          ];
 | 
						|
        };
 | 
						|
      })
 | 
						|
      (lib.mkIf config.user.isDesktopUser {
 | 
						|
        vscode = {
 | 
						|
          enable = true;
 | 
						|
          package = pkgs.vscodium;
 | 
						|
          mutableExtensionsDir = false;
 | 
						|
 | 
						|
          profiles.default = {
 | 
						|
            enableUpdateCheck = false;
 | 
						|
            enableExtensionUpdateCheck = false;
 | 
						|
 | 
						|
            extraExtensions = {
 | 
						|
              # Cline extension (Claude AI assistant)
 | 
						|
              claudeDev.enable = true;
 | 
						|
              # Auto Rename Tag
 | 
						|
              autoRenameTag.enable = true;
 | 
						|
              # Live Server
 | 
						|
              liveServer.enable = true;
 | 
						|
            };
 | 
						|
 | 
						|
            extensions = let
 | 
						|
              extension-pkgs = pkgs.nix-vscode-extensions.forVSCodeVersion config.programs.vscode.package.version;
 | 
						|
            in (
 | 
						|
              with extension-pkgs.open-vsx; [
 | 
						|
                streetsidesoftware.code-spell-checker
 | 
						|
              ]
 | 
						|
            );
 | 
						|
          };
 | 
						|
        };
 | 
						|
 | 
						|
        firefox.enable = true;
 | 
						|
        discord.enable = true;
 | 
						|
        signal-desktop-bin.enable = true;
 | 
						|
        claude-code.enable = true;
 | 
						|
      })
 | 
						|
    ];
 | 
						|
  };
 | 
						|
}
 |