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
 | |
|     ./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;
 | |
|       };
 | |
|     })
 | |
|   ];
 | |
| }
 |