add desktop host
This commit is contained in:
		
							parent
							
								
									33e20b8685
								
							
						
					
					
						commit
						26e223eb56
					
				@ -25,21 +25,28 @@ let
 | 
			
		||||
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  desktop = lib.nixosSystem {                               # Desktop profile
 | 
			
		||||
  desktop = lib.nixosSystem {                                # Desktop profile
 | 
			
		||||
    inherit system;
 | 
			
		||||
    specialArgs = { inherit inputs user location; }; # Pass flake variable
 | 
			
		||||
    modules = [                                             # Modules that are used.
 | 
			
		||||
    specialArgs = { inherit inputs user locationhyprland nixos-hardware nur; };
 | 
			
		||||
    modules = [
 | 
			
		||||
      nur.nixosModules.nur
 | 
			
		||||
      hyprland.nixosModules.default
 | 
			
		||||
      #hyprland.nixosModules.default
 | 
			
		||||
      ./desktop
 | 
			
		||||
      ./configuration.nix
 | 
			
		||||
      nixos-hardware.nixosModules.common-cpu-amd
 | 
			
		||||
      nixos-hardware.nixosModules.common-gpu-amd
 | 
			
		||||
      nixos-hardware.nixosModules.common-pc-ssd
 | 
			
		||||
      
 | 
			
		||||
 | 
			
		||||
      home-manager.nixosModules.home-manager {              # Home-Manager module that is used.
 | 
			
		||||
      home-manager.nixosModules.home-manager {
 | 
			
		||||
          nixpkgs.overlays = [
 | 
			
		||||
            nur.overlay
 | 
			
		||||
          ];
 | 
			
		||||
        home-manager.useGlobalPkgs = true;
 | 
			
		||||
        home-manager.useUserPackages = true;
 | 
			
		||||
        home-manager.extraSpecialArgs = { inherit user; };  # Pass flake variable
 | 
			
		||||
        home-manager.extraSpecialArgs = { inherit user; };
 | 
			
		||||
        home-manager.users.${user} = {
 | 
			
		||||
          imports = [(import ./home.nix)] ++ [(import ./desktop/home.nix)];
 | 
			
		||||
        imports = [(import ./home.nix)] ++ [(import ./desktop/home.nix)];
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
@ -50,10 +57,12 @@ in
 | 
			
		||||
    specialArgs = { inherit inputs user location hyprland nixos-hardware nur; };
 | 
			
		||||
    modules = [
 | 
			
		||||
      nur.nixosModules.nur
 | 
			
		||||
      hyprland.nixosModules.default
 | 
			
		||||
      #hyprland.nixosModules.default
 | 
			
		||||
      ./laptop
 | 
			
		||||
      ./configuration.nix
 | 
			
		||||
      nixos-hardware.nixosModules.common-cpu-intel
 | 
			
		||||
      nixos-hardware.nixosModules.common-gpu-intel
 | 
			
		||||
      nixos-hardware.nixosModules.common-pc-ssd
 | 
			
		||||
 | 
			
		||||
      home-manager.nixosModules.home-manager {
 | 
			
		||||
          nixpkgs.overlays = [
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										96
									
								
								hosts/desktop/1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								hosts/desktop/1
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,96 @@
 | 
			
		||||
#
 | 
			
		||||
# Hardware settings for Teclast F5 10" Laptop
 | 
			
		||||
# NixOS @ sda2
 | 
			
		||||
#
 | 
			
		||||
# flake.nix
 | 
			
		||||
#  └─ ./hosts
 | 
			
		||||
#      └─ ./laptop
 | 
			
		||||
#          └─ hardware-configuration.nix *
 | 
			
		||||
#
 | 
			
		||||
# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
			
		||||
# and may be overwritten by future invocations.  Please make changes
 | 
			
		||||
# to /etc/nixos/configuration.nix instead.
 | 
			
		||||
{ config, lib, pkgs, modulesPath, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
  boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "usb_storage" "usbhid" "sd_mod" "sdhci_pci" "rtsx_usb_sdmmc" ];
 | 
			
		||||
  boot.initrd.kernelModules = [ "vfio_pci" "vfio" "vfio_iommu_type1" "vfio_virqfd" ];
 | 
			
		||||
  boot.kernelModules = [ "kvm" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-label/ROOT";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/home" =
 | 
			
		||||
    { device = "/dev/disk/by-label/ROOT";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@home" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/opt" =
 | 
			
		||||
    { device = "/dev/disk/by-label/ROOT";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@opt" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/srv" =
 | 
			
		||||
    { device = "/dev/disk/by-label/ROOT";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@srv" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-label/BOOT";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/mnt/Herkules" =
 | 
			
		||||
    { device = "truenas:/mnt/Herkules";
 | 
			
		||||
      fsType = "nfs";
 | 
			
		||||
      options = [ "noauto,users,x-systemd.automount,x-systemd.device-timeout=10,soft,timeo=14,x-systemd.idle-timeout=1min,sec=sys,exec" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/mnt/Nova" =
 | 
			
		||||
    { device = "truenas:/mnt/Nova";
 | 
			
		||||
      fsType = "nfs";
 | 
			
		||||
      options = [ "noauto,users,x-systemd.automount,x-systemd.device-timeout=10,soft,timeo=14,x-systemd.idle-timeout=1min,sec=sys,exec" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
  
 | 
			
		||||
  networking = {
 | 
			
		||||
    useDHCP = false;                        # Deprecated
 | 
			
		||||
    hostName = "hades";
 | 
			
		||||
    networkmanager = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
    };
 | 
			
		||||
    interfaces = {
 | 
			
		||||
      eth0 = {
 | 
			
		||||
        useDHCP = true;                     # For versatility sake, manually edit IP on nm-applet.
 | 
			
		||||
        #ipv4.addresses = [ {
 | 
			
		||||
        #    address = "192.168.0.51";
 | 
			
		||||
        #    prefixLength = 24;
 | 
			
		||||
        #} ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
    #defaultGateway = "192.168.0.1";
 | 
			
		||||
    #nameservers = [ "192.168.0.4" ];
 | 
			
		||||
    #firewall = {
 | 
			
		||||
    #  enable = false;
 | 
			
		||||
    #  #allowedUDPPorts = [ 53 67 ];
 | 
			
		||||
    #  #allowedTCPPorts = [ 53 80 443 9443 ];
 | 
			
		||||
    #};
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  #hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
  # high-resolution display
 | 
			
		||||
  hardware.video.hidpi.enable = lib.mkDefault true;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										91
									
								
								hosts/desktop/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								hosts/desktop/default.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,91 @@
 | 
			
		||||
#
 | 
			
		||||
#  Specific system configuration settings for desktop
 | 
			
		||||
#
 | 
			
		||||
#  flake.nix
 | 
			
		||||
#   ├─ ./hosts
 | 
			
		||||
#   │   └─ ./laptop
 | 
			
		||||
#   │        ├─ default.nix *
 | 
			
		||||
#   │        └─ hardware-configuration.nix       
 | 
			
		||||
#   └─ ./modules
 | 
			
		||||
#       ├─ ./desktop
 | 
			
		||||
#       │   └─ ./hyprland
 | 
			
		||||
#       │       └─ hyprland.nix
 | 
			
		||||
#       ├─ ./modules
 | 
			
		||||
#       │   └─ ./programs
 | 
			
		||||
#       │       └─ waybar.nix
 | 
			
		||||
#       └─ ./hardware
 | 
			
		||||
#           └─ default.nix
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
{ config, pkgs, user, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =                                                         # For now, if applying to other system, swap files
 | 
			
		||||
    [(import ./hardware-configuration.nix)] ++                      # Current system hardware config @ /etc/nixos/hardware-configuration.nix
 | 
			
		||||
    #[(import ../../modules/desktop/hyprland/default.nix)] ++        # Window Manager
 | 
			
		||||
    [(import ../../modules/desktop/sway/default.nix)] ++        # Window Manager
 | 
			
		||||
    [(import ../../modules/desktop/virtualisation/docker.nix)] ++   # Docker
 | 
			
		||||
    (import ../../modules/hardware);                                # Hardware devices
 | 
			
		||||
 | 
			
		||||
  boot = {                                  # Boot options
 | 
			
		||||
    kernelPackages = pkgs.linuxPackages_latest;
 | 
			
		||||
 | 
			
		||||
    loader = {                              # EFI Boot
 | 
			
		||||
      systemd-boot.enable = true;
 | 
			
		||||
      efi = {
 | 
			
		||||
        canTouchEfiVariables = true;
 | 
			
		||||
        efiSysMountPoint = "/boot";
 | 
			
		||||
      };
 | 
			
		||||
      timeout = 1;                          # Grub auto select time
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
#  hardware.sane = {                           # Used for scanning with Xsane
 | 
			
		||||
#    enable = false;
 | 
			
		||||
#    extraBackends = [ pkgs.sane-airscan ];
 | 
			
		||||
#  };
 | 
			
		||||
 | 
			
		||||
#  environment = {
 | 
			
		||||
#    systemPackages = with pkgs; [
 | 
			
		||||
##      simple-scan
 | 
			
		||||
##       intel-media-driver
 | 
			
		||||
##       alacritty
 | 
			
		||||
#    ];
 | 
			
		||||
#  };
 | 
			
		||||
 | 
			
		||||
  programs = {                              # No xbacklight, this is the alterantive
 | 
			
		||||
    dconf.enable = true;
 | 
			
		||||
    light.enable = true;
 | 
			
		||||
    ssh.startAgent = false;
 | 
			
		||||
    gnupg.agent = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      enableSSHSupport = true;
 | 
			
		||||
      pinentryFlavor = "curses";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services = {
 | 
			
		||||
    #auto-cpufreq.enable = true;
 | 
			
		||||
    blueman.enable = true;
 | 
			
		||||
    printing = {                            # Printing and drivers for TS5300
 | 
			
		||||
      enable = true;
 | 
			
		||||
      drivers = [ pkgs.gutenprint ];
 | 
			
		||||
    };
 | 
			
		||||
    avahi = {                               # Needed to find wireless printer
 | 
			
		||||
      enable = true;
 | 
			
		||||
      nssmdns = true;
 | 
			
		||||
      publish = {                           # Needed for detecting the scanner
 | 
			
		||||
        enable = true;
 | 
			
		||||
        addresses = true;
 | 
			
		||||
        userServices = true;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  #temporary bluetooth fix
 | 
			
		||||
#  systemd.tmpfiles.rules = [
 | 
			
		||||
#    "d /var/lib/bluetooth 700 root root - -"
 | 
			
		||||
#  ];
 | 
			
		||||
#  systemd.targets."bluetooth".after = ["systemd-tmpfiles-setup.service"];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										96
									
								
								hosts/desktop/hardware-configuration.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								hosts/desktop/hardware-configuration.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,96 @@
 | 
			
		||||
#
 | 
			
		||||
# Hardware settings for Teclast F5 10" Laptop
 | 
			
		||||
# NixOS @ sda2
 | 
			
		||||
#
 | 
			
		||||
# flake.nix
 | 
			
		||||
#  └─ ./hosts
 | 
			
		||||
#      └─ ./laptop
 | 
			
		||||
#          └─ hardware-configuration.nix *
 | 
			
		||||
#
 | 
			
		||||
# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
			
		||||
# and may be overwritten by future invocations.  Please make changes
 | 
			
		||||
# to /etc/nixos/configuration.nix instead.
 | 
			
		||||
{ config, lib, pkgs, modulesPath, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
  boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "usb_storage" "usbhid" "sd_mod" "sdhci_pci" "rtsx_usb_sdmmc" ];
 | 
			
		||||
  boot.initrd.kernelModules = [ "vfio_pci" "vfio" "vfio_iommu_type1" "vfio_virqfd" ];
 | 
			
		||||
  boot.kernelModules = [ "kvm" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-label/ROOT";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/home" =
 | 
			
		||||
    { device = "/dev/disk/by-label/ROOT";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@home" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/opt" =
 | 
			
		||||
    { device = "/dev/disk/by-label/ROOT";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@opt" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/srv" =
 | 
			
		||||
    { device = "/dev/disk/by-label/ROOT";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@srv" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-label/BOOT";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/mnt/Herkules" =
 | 
			
		||||
    { device = "truenas:/mnt/Herkules";
 | 
			
		||||
      fsType = "nfs";
 | 
			
		||||
      options = [ "noauto,users,x-systemd.automount,x-systemd.device-timeout=10,soft,timeo=14,x-systemd.idle-timeout=1min,sec=sys,exec" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/mnt/Nova" =
 | 
			
		||||
    { device = "truenas:/mnt/Nova";
 | 
			
		||||
      fsType = "nfs";
 | 
			
		||||
      options = [ "noauto,users,x-systemd.automount,x-systemd.device-timeout=10,soft,timeo=14,x-systemd.idle-timeout=1min,sec=sys,exec" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
  
 | 
			
		||||
  networking = {
 | 
			
		||||
    useDHCP = false;                        # Deprecated
 | 
			
		||||
    hostName = "hades";
 | 
			
		||||
    networkmanager = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
    };
 | 
			
		||||
    interfaces = {
 | 
			
		||||
      eth0 = {
 | 
			
		||||
        useDHCP = true;                     # For versatility sake, manually edit IP on nm-applet.
 | 
			
		||||
        #ipv4.addresses = [ {
 | 
			
		||||
        #    address = "192.168.0.51";
 | 
			
		||||
        #    prefixLength = 24;
 | 
			
		||||
        #} ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
    #defaultGateway = "192.168.0.1";
 | 
			
		||||
    #nameservers = [ "192.168.0.4" ];
 | 
			
		||||
    #firewall = {
 | 
			
		||||
    #  enable = false;
 | 
			
		||||
    #  #allowedUDPPorts = [ 53 67 ];
 | 
			
		||||
    #  #allowedTCPPorts = [ 53 80 443 9443 ];
 | 
			
		||||
    #};
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  #hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
  # high-resolution display
 | 
			
		||||
  hardware.video.hidpi.enable = lib.mkDefault true;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										57
									
								
								hosts/desktop/home.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								hosts/desktop/home.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,57 @@
 | 
			
		||||
#
 | 
			
		||||
#  Home-manager configuration for laptop
 | 
			
		||||
#
 | 
			
		||||
#  flake.nix
 | 
			
		||||
#   ├─ ./hosts
 | 
			
		||||
#   │   └─ ./laptop
 | 
			
		||||
#   │       └─ home.nix *
 | 
			
		||||
#   └─ ./modules
 | 
			
		||||
#       └─ ./desktop
 | 
			
		||||
#           └─ ./hyprland
 | 
			
		||||
#              └─ hyprland.nix
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [
 | 
			
		||||
      #../../modules/desktop/hyprland/home.nix # Window Manager
 | 
			
		||||
      ../../modules/desktop/sway/home.nix # Window Manager
 | 
			
		||||
      ../../modules/home.nix # Window Manager
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
  home = {                                # Specific packages for laptop
 | 
			
		||||
    packages = with pkgs; [
 | 
			
		||||
      # Applications
 | 
			
		||||
      libreoffice                         # Office packages
 | 
			
		||||
      #firefox
 | 
			
		||||
      chromium
 | 
			
		||||
      thunderbird
 | 
			
		||||
      streamlink
 | 
			
		||||
      streamlink-twitch-gui-bin
 | 
			
		||||
      element-desktop
 | 
			
		||||
      pulsemixer
 | 
			
		||||
      yubioath-desktop
 | 
			
		||||
 | 
			
		||||
      # Display
 | 
			
		||||
      #light                              # xorg.xbacklight not supported. Other option is just use xrandr.
 | 
			
		||||
 | 
			
		||||
      # Power Management
 | 
			
		||||
      #auto-cpufreq                       # Power management
 | 
			
		||||
      #tlp                                # Power management
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs = {
 | 
			
		||||
    alacritty.settings.font.size = 11;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  services = {                            # Applets
 | 
			
		||||
   blueman-applet.enable = true;         # Bluetooth
 | 
			
		||||
   network-manager-applet.enable = true; # Network
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  xsession.preferStatusNotifierItems = true;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user