forked from jan-leila/nix-config
		
	
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  lib,
 | 
						|
  pkgs,
 | 
						|
  config,
 | 
						|
  osConfig,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  hardware = osConfig.host.hardware;
 | 
						|
in {
 | 
						|
  imports = [
 | 
						|
    ./vscode
 | 
						|
    ./firefox.nix
 | 
						|
    ./direnv.nix
 | 
						|
    ./openssh.nix
 | 
						|
    ./git.nix
 | 
						|
    ./makemkv.nix
 | 
						|
  ];
 | 
						|
 | 
						|
  config = lib.mkMerge [
 | 
						|
    {
 | 
						|
      programs = lib.mkMerge [
 | 
						|
        {
 | 
						|
          # Let Home Manager install and manage itself.
 | 
						|
          home-manager.enable = true;
 | 
						|
        }
 | 
						|
        (lib.mkIf (config.user.isTerminalUser || config.user.isDesktopUser) {
 | 
						|
          bash.enable = true;
 | 
						|
          git.enable = true;
 | 
						|
          openssh.enable = true;
 | 
						|
        })
 | 
						|
        (lib.mkIf config.user.isDesktopUser {
 | 
						|
          bitwarden.enable = true;
 | 
						|
          obs-studio.enable = hardware.graphicsAcceleration.enable;
 | 
						|
          qbittorrent.enable = true;
 | 
						|
          prostudiomasters.enable = true;
 | 
						|
          protonvpn-gui.enable = true;
 | 
						|
          dbeaver-bin.enable = true;
 | 
						|
          bruno.enable = true;
 | 
						|
          piper.enable = hardware.piperMouse.enable;
 | 
						|
          proxmark3.enable = true;
 | 
						|
          openrgb.enable = hardware.openRGB.enable;
 | 
						|
          via.enable = hardware.viaKeyboard.enable;
 | 
						|
          claude-code.enable = osConfig.host.ai.enable;
 | 
						|
          davinci-resolve.enable = hardware.graphicsAcceleration.enable;
 | 
						|
          mfoc.enable = true;
 | 
						|
        })
 | 
						|
        (lib.mkIf (hardware.directAccess.enable && config.user.isDesktopUser) {
 | 
						|
          anki.enable = true;
 | 
						|
          makemkv.enable = true;
 | 
						|
          discord.enable = true;
 | 
						|
          signal-desktop-bin.enable = true;
 | 
						|
          calibre.enable = true;
 | 
						|
          obsidian.enable = true;
 | 
						|
          jetbrains.idea-community.enable = true;
 | 
						|
          vscode.enable = true;
 | 
						|
          firefox.enable = true;
 | 
						|
          steam.enable = true;
 | 
						|
          krita.enable = true;
 | 
						|
          ungoogled-chromium.enable = true;
 | 
						|
          libreoffice.enable = true;
 | 
						|
          mapillary-uploader.enable = true;
 | 
						|
          inkscape.enable = true;
 | 
						|
          gimp.enable = true;
 | 
						|
          freecad.enable = true;
 | 
						|
          onionshare.enable = true;
 | 
						|
          pdfarranger.enable = true;
 | 
						|
          picard.enable = true;
 | 
						|
          qflipper.enable = true;
 | 
						|
          openvpn.enable = true;
 | 
						|
          noisetorch.enable = true;
 | 
						|
          tor-browser.enable = true;
 | 
						|
          gdx-liftoff.enable = true;
 | 
						|
          # polycule package is now working with Flutter 3.29
 | 
						|
          polycule.enable = true;
 | 
						|
        })
 | 
						|
      ];
 | 
						|
    }
 | 
						|
    (lib.mkIf config.user.isTerminalUser {
 | 
						|
      home.packages = with pkgs; [
 | 
						|
        # command line tools
 | 
						|
        sox
 | 
						|
        yt-dlp
 | 
						|
        ffmpeg
 | 
						|
        imagemagick
 | 
						|
      ];
 | 
						|
    })
 | 
						|
    (lib.mkIf config.user.isDesktopUser {
 | 
						|
      nixpkgs.config = {
 | 
						|
        allowUnfree = true;
 | 
						|
      };
 | 
						|
    })
 | 
						|
  ];
 | 
						|
}
 |