refactor(flake-parts): initial flake-parts configuration
This commit is contained in:
		
							parent
							
								
									8f67be9e68
								
							
						
					
					
						commit
						5603001d65
					
				
					 230 changed files with 380 additions and 717 deletions
				
			
		
							
								
								
									
										24
									
								
								outputs/nixos/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								outputs/nixos/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,24 @@
 | 
			
		|||
{ inputs, nixpkgs, self, ... }:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  inherit (nixpkgs.lib) nixosSystem;
 | 
			
		||||
 | 
			
		||||
  hm = inputs.home-manager.nixosModules.home-manager;
 | 
			
		||||
 | 
			
		||||
  systemInputs = "${self}/inputs/system";
 | 
			
		||||
  base = "${systemInputs}/modules/base";
 | 
			
		||||
 | 
			
		||||
  specialArgs = {inherit inputs self;};
 | 
			
		||||
in
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  ooksdesk = nixosSystem {
 | 
			
		||||
    inherit specialArgs;
 | 
			
		||||
    system = "x86_64-linux";
 | 
			
		||||
    modules = [
 | 
			
		||||
      ./ooksdesk
 | 
			
		||||
      hm
 | 
			
		||||
      base
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										128
									
								
								outputs/nixos/ooks-x1/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								outputs/nixos/ooks-x1/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,128 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{ config, inputs, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
# Imports
 | 
			
		||||
# -------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
	imports = [
 | 
			
		||||
    inputs.hardware.nixosModules.common-pc-ssd
 | 
			
		||||
    inputs.hardware.nixosModules.common-cpu-intel
 | 
			
		||||
    inputs.hardware.nixosModules.common-gpu-intel
 | 
			
		||||
 | 
			
		||||
		./hardware-configuration.nix
 | 
			
		||||
    
 | 
			
		||||
    ../common/user/ooks
 | 
			
		||||
    ../common/base
 | 
			
		||||
    ../common/features/bluetooth.nix
 | 
			
		||||
		../common/features/greetd.nix
 | 
			
		||||
 | 
			
		||||
		];
 | 
			
		||||
 | 
			
		||||
# Hostname and networking
 | 
			
		||||
# -------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
	networking = {
 | 
			
		||||
		hostName = "ooksx1"; 		
 | 
			
		||||
    networkmanager.enable = true;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Printing
 | 
			
		||||
# -------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
  services.printing.enable = true;
 | 
			
		||||
 | 
			
		||||
# Kernel
 | 
			
		||||
# ------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
  boot = {
 | 
			
		||||
    kernelPackages = pkgs.linuxKernel.packages.linux_zen;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Laptop Programs
 | 
			
		||||
# -------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
  powerManagement.powertop.enable = true;
 | 
			
		||||
  programs = {
 | 
			
		||||
    light.enable = true;
 | 
			
		||||
    dconf.enable = true;
 | 
			
		||||
    kdeconnect.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  hardware = {
 | 
			
		||||
    opengl = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
# gnupg
 | 
			
		||||
# -------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
	programs.gnupg.agent = {
 | 
			
		||||
		enable = true;
 | 
			
		||||
		enableSSHSupport = true;
 | 
			
		||||
 	};
 | 
			
		||||
 | 
			
		||||
# Services
 | 
			
		||||
# -------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
	services = {
 | 
			
		||||
    logind = {
 | 
			
		||||
      lidSwitch = "suspend";
 | 
			
		||||
    };
 | 
			
		||||
		dbus = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      packages = [ pkgs.gcr ];
 | 
			
		||||
    };
 | 
			
		||||
		auto-cpufreq = {
 | 
			
		||||
			enable = true;
 | 
			
		||||
			settings = {
 | 
			
		||||
				battery = {
 | 
			
		||||
					governor = "powersave";
 | 
			
		||||
					turbo = "never";
 | 
			
		||||
					};
 | 
			
		||||
				charger = {
 | 
			
		||||
					governor = "performance";
 | 
			
		||||
					turbo = "auto";
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
  };	
 | 
			
		||||
 | 
			
		||||
	systemd = {
 | 
			
		||||
		user.services.polkit-gnome-authentication-agent-1 = {
 | 
			
		||||
			description = "polkit-gnome-authentication-agent-1";
 | 
			
		||||
			wantedBy = [ "graphical-session.target" ];
 | 
			
		||||
			wants = [ "graphical-session.target" ];
 | 
			
		||||
			after = [ "graphical-session.target" ];
 | 
			
		||||
			serviceConfig = {
 | 
			
		||||
				Type = "simple";
 | 
			
		||||
				ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
 | 
			
		||||
				Restart = "on-failure";
 | 
			
		||||
				RestartSec = 1;
 | 
			
		||||
				TimeoutStopSec = 10;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
# Firewall
 | 
			
		||||
# -------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
	# networking.firewall.allowedTCPPorts = [ ... ];
 | 
			
		||||
	# networking.firewall.allowedUDPPorts = [ ... ];
 | 
			
		||||
	# Or disable the firewall altogether.
 | 
			
		||||
	# networking.firewall.enable = false;
 | 
			
		||||
 | 
			
		||||
# System Version
 | 
			
		||||
# -------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
	system = {
 | 
			
		||||
		stateVersion = "22.05";
 | 
			
		||||
	};
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										62
									
								
								outputs/nixos/ooks-x1/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								outputs/nixos/ooks-x1/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,62 @@
 | 
			
		|||
{ config, lib, pkgs, modulesPath, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
  boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
 | 
			
		||||
  boot.initrd.kernelModules = [ ];
 | 
			
		||||
  boot.kernelModules = [ "kvm-intel" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=root" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/3ea21f10-f705-457c-8366-a8268f658ba6";
 | 
			
		||||
 | 
			
		||||
  fileSystems."/nix" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=nix" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/persist" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=persist" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/swap" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=swap" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/45D8-8DC3";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [{
 | 
			
		||||
    device = "/swap/swapfile";
 | 
			
		||||
    size = 8196;
 | 
			
		||||
  }];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
  # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
			
		||||
  # still possible to use this option, but it's recommended to use it in conjunction
 | 
			
		||||
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
 | 
			
		||||
  networking.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.wwp0s20f0u2c2.useDHCP = lib.mkDefault true;
 | 
			
		||||
 | 
			
		||||
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
 | 
			
		||||
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										40
									
								
								outputs/nixos/ooksdesk/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								outputs/nixos/ooksdesk/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,40 @@
 | 
			
		|||
{ lib, config, inputs, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
	key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBn3ff3HaZHIyH4K13k8Mwqu/o7jIABJ8rANK+r2PfJk";
 | 
			
		||||
in
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
	imports = [
 | 
			
		||||
		./hardware-configuration.nix
 | 
			
		||||
	];
 | 
			
		||||
 | 
			
		||||
	systemModules.host = {
 | 
			
		||||
		name = "ooksdesk";
 | 
			
		||||
		type = "desktop";
 | 
			
		||||
		function = [ "workstation" "gaming" ];
 | 
			
		||||
		admin = {
 | 
			
		||||
			name = "ooks";
 | 
			
		||||
			shell = "fish";
 | 
			
		||||
			sshKey = key;
 | 
			
		||||
			homeManager = true;
 | 
			
		||||
		};
 | 
			
		||||
		hardware = {
 | 
			
		||||
			cpu.type = "amd";
 | 
			
		||||
			cpu.amd.pstate.enable = true;
 | 
			
		||||
			gpu.type = "amd";
 | 
			
		||||
			features = [ "ssd" ];
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
  	
 | 
			
		||||
	systemModules.networking.tailscale = {
 | 
			
		||||
		enable = true;
 | 
			
		||||
		client = true;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
  boot = {
 | 
			
		||||
	  kernelPackages = pkgs.linuxPackages_xanmod_latest;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
  system.stateVersion = lib.mkDefault "23.11";
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										58
									
								
								outputs/nixos/ooksdesk/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								outputs/nixos/ooksdesk/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,58 @@
 | 
			
		|||
# 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 = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
 | 
			
		||||
  boot.initrd.kernelModules = [ ];
 | 
			
		||||
  boot.kernelModules = [ "kvm-amd" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=root" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/b5d09a8b-54a9-4f72-828c-5cceea2ec287";
 | 
			
		||||
 | 
			
		||||
  fileSystems."/nix" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=nix" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/persist" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=persist" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/swap" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=swap" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/1D01-7040";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
  # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
			
		||||
  # still possible to use this option, but it's recommended to use it in conjunction
 | 
			
		||||
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
 | 
			
		||||
  networking.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.enp8s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
 | 
			
		||||
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
  hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										34
									
								
								outputs/nixos/ooksmedia/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								outputs/nixos/ooksmedia/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,34 @@
 | 
			
		|||
{ config, inputs, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
	imports = [
 | 
			
		||||
		./hardware-configuration.nix
 | 
			
		||||
    ../../profiles
 | 
			
		||||
		./nixarr.nix
 | 
			
		||||
		];
 | 
			
		||||
 | 
			
		||||
    activeProfiles = ["base" "gaming"];
 | 
			
		||||
 | 
			
		||||
		systemModules.user = {
 | 
			
		||||
			ooks.enable = true;
 | 
			
		||||
			shell = "fish";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		systemModules.hardware = {
 | 
			
		||||
			cpu.type = "intel";
 | 
			
		||||
			gpu.type = "nvidia";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		systemModules.networking.tailscale = {
 | 
			
		||||
			enable = true;
 | 
			
		||||
			server = true;
 | 
			
		||||
		};
 | 
			
		||||
  	
 | 
			
		||||
		networking = {
 | 
			
		||||
  		hostName = "ooksmedia"; 		
 | 
			
		||||
			# useDHCP = true;
 | 
			
		||||
		};
 | 
			
		||||
    boot = {
 | 
			
		||||
      kernelPackages = pkgs.linuxPackages_xanmod_latest;
 | 
			
		||||
		};
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										56
									
								
								outputs/nixos/ooksmedia/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								outputs/nixos/ooksmedia/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,56 @@
 | 
			
		|||
# 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 = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
 | 
			
		||||
  boot.initrd.kernelModules = [ ];
 | 
			
		||||
  boot.kernelModules = [ "kvm-intel" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=root" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/nix" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=nix" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/persist" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=persist" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/swap" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=swap" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/B511-09E2";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
  # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
			
		||||
  # still possible to use this option, but it's recommended to use it in conjunction
 | 
			
		||||
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
 | 
			
		||||
  networking.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
 | 
			
		||||
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								outputs/nixos/ooksmedia/nixarr.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								outputs/nixos/ooksmedia/nixarr.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
{ inputs, ... }:
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
{
 | 
			
		||||
  imports = [ inputs.nixarr.nixosModules.default ];
 | 
			
		||||
  nixarr = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    mediaDir = "/jellyfin";
 | 
			
		||||
    stateDir = "/var/lib/nixarr";
 | 
			
		||||
    mediaUsers = ["ooks"];
 | 
			
		||||
 | 
			
		||||
    jellyfin.enable = true;
 | 
			
		||||
    sonarr.enable = true;
 | 
			
		||||
    radarr.enable = true;
 | 
			
		||||
    prowlarr.enable = true;
 | 
			
		||||
    transmission.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
  fileSystems."/jellyfin" = {
 | 
			
		||||
    device = "/dev/disk/by-label/jellyfin";
 | 
			
		||||
    fsType = "btrfs";
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										38
									
								
								outputs/nixos/ooksmicro/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								outputs/nixos/ooksmicro/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
{  pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
	imports = [
 | 
			
		||||
		./hardware-configuration.nix
 | 
			
		||||
    ../../profiles
 | 
			
		||||
		];
 | 
			
		||||
 | 
			
		||||
    activeProfiles = ["base" "laptop"];
 | 
			
		||||
 | 
			
		||||
		systemModules.user = {
 | 
			
		||||
			ooks.enable = true;
 | 
			
		||||
			shell.fish.enable = true;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		systemModules.laptop.power = {
 | 
			
		||||
			powersave = {
 | 
			
		||||
				minFreq = 800;
 | 
			
		||||
				maxFreq = 1600;
 | 
			
		||||
			};
 | 
			
		||||
			performance = {
 | 
			
		||||
				minFreq = 1100;
 | 
			
		||||
				maxFreq = 2600;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
  	
 | 
			
		||||
		networking = {
 | 
			
		||||
  		hostName = "ooksmicro";
 | 
			
		||||
		};
 | 
			
		||||
		
 | 
			
		||||
    boot = {
 | 
			
		||||
      kernelPackages = pkgs.linuxKernel.packages.linux_zen;
 | 
			
		||||
			# need this due to 
 | 
			
		||||
	    kernelParams = [ "fbcon=rotate:1" ];
 | 
			
		||||
			# required for keyboard to work during boot
 | 
			
		||||
			initrd.availableKernelModules = [ "battery" ];
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										53
									
								
								outputs/nixos/ooksmicro/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								outputs/nixos/ooksmicro/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,53 @@
 | 
			
		|||
# 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" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ];
 | 
			
		||||
  boot.initrd.kernelModules = [ ];
 | 
			
		||||
  boot.kernelModules = [ "kvm-intel" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=root" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/fe7ea7fd-b531-4c00-8123-99f7ea855800";
 | 
			
		||||
 | 
			
		||||
  fileSystems."/nix" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=nix" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/57C5-11E7";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/persist" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=persist" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
  # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
			
		||||
  # still possible to use this option, but it's recommended to use it in conjunction
 | 
			
		||||
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
 | 
			
		||||
  networking.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.eno1.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
 | 
			
		||||
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								outputs/nixos/ooksphone/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								outputs/nixos/ooksphone/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,43 @@
 | 
			
		|||
{ pkgs, inputs, outputs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports = [ ./modules ];
 | 
			
		||||
 | 
			
		||||
  environment.packages = with pkgs; [
 | 
			
		||||
    killall
 | 
			
		||||
    hostname
 | 
			
		||||
    man
 | 
			
		||||
    coreutils
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  environment.etcBackupExtension = ".bak";
 | 
			
		||||
 | 
			
		||||
  system.stateVersion = "23.11";
 | 
			
		||||
 | 
			
		||||
  nix = {
 | 
			
		||||
    extraOptions = ''
 | 
			
		||||
      experimental-features = nix-command flakes
 | 
			
		||||
    '';
 | 
			
		||||
    substituters = [
 | 
			
		||||
      "https://cache.nixos.org?priority=10"
 | 
			
		||||
      "https://helix.cachix.org"
 | 
			
		||||
      "https://nix-community.cachix.org"
 | 
			
		||||
    ];
 | 
			
		||||
    trustedPublicKeys = [
 | 
			
		||||
      "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
 | 
			
		||||
      "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
 | 
			
		||||
      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
  
 | 
			
		||||
  time.timeZone = "Pacific/Auckland";
 | 
			
		||||
 | 
			
		||||
  user = {
 | 
			
		||||
    shell = "${pkgs.fish}/bin/fish";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home-manager = {
 | 
			
		||||
    extraSpecialArgs = { inherit inputs outputs; };
 | 
			
		||||
    config = import ../../../home/user/ooks/ooksphone;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								outputs/nixos/ooksphone/modules/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								outputs/nixos/ooksphone/modules/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./theme.nix
 | 
			
		||||
    # ./openssh.nix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								outputs/nixos/ooksphone/modules/openssh.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								outputs/nixos/ooksphone/modules/openssh.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{
 | 
			
		||||
  programs.ssh = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    startAgent = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								outputs/nixos/ooksphone/modules/theme.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								outputs/nixos/ooksphone/modules/theme.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,43 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  fontPackage = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
 | 
			
		||||
  fontPath = "/share/fonts/truetype/NerdFonts/JetBrainsMonoNerdFontMono-Regular.ttf";
 | 
			
		||||
in
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  terminal = {
 | 
			
		||||
    font = fontPackage + fontPath;
 | 
			
		||||
 | 
			
		||||
    # Gruvbox Material Dark Soft
 | 
			
		||||
    colors = {
 | 
			
		||||
      background = "#32302F";
 | 
			
		||||
      foreground = "#DDC7A1";
 | 
			
		||||
      cursor = "#DDC7A1";
 | 
			
		||||
 | 
			
		||||
      color0 = "#32302F"; # Black
 | 
			
		||||
      color8 = "#7C6F64"; # Bright Black
 | 
			
		||||
 | 
			
		||||
      color1 = "#EA6962"; # Red
 | 
			
		||||
      color9 = "#EA6962"; # Bright Red
 | 
			
		||||
 | 
			
		||||
      color2 = "#A9B665"; # Green
 | 
			
		||||
      color10 = "#A9B665"; # Bright Green
 | 
			
		||||
 | 
			
		||||
      color3 = "#D8A657"; # Yellow
 | 
			
		||||
      color11 = "#D8A657"; # Bright Yellow
 | 
			
		||||
 | 
			
		||||
      color4 = "#7DAEA3"; # Blue
 | 
			
		||||
      color12 = "#7DAEA3"; # Bright Blue
 | 
			
		||||
 | 
			
		||||
      color5 = "#D3869B"; # Magenta
 | 
			
		||||
      color13 = "#D3869B"; # Bright Magenta
 | 
			
		||||
 | 
			
		||||
      color6 = "#89B482"; # Cyan
 | 
			
		||||
      color14 = "#89B482"; # Bright Cyan
 | 
			
		||||
 | 
			
		||||
      color7 = "#DDC7A1"; # White
 | 
			
		||||
      color15 = "#FBF1C7"; # Bright White
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										40
									
								
								outputs/nixos/ookst480s/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								outputs/nixos/ookst480s/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,40 @@
 | 
			
		|||
{ config, inputs, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
	imports = [
 | 
			
		||||
    inputs.hardware.nixosModules.lenovo-thinkpad-t480s
 | 
			
		||||
		./hardware-configuration.nix
 | 
			
		||||
    ../../profiles
 | 
			
		||||
		];
 | 
			
		||||
 | 
			
		||||
    activeProfiles = ["base"];
 | 
			
		||||
 | 
			
		||||
		systemModules = {
 | 
			
		||||
			user = {
 | 
			
		||||
				ooks.enable = true;
 | 
			
		||||
				shell = "fish";
 | 
			
		||||
			};
 | 
			
		||||
			hardware = {
 | 
			
		||||
				cpu.type = "intel";
 | 
			
		||||
				gpu.type = "intel";
 | 
			
		||||
				features = [ "bluetooth" "backlight" "battery" ];
 | 
			
		||||
				battery = {
 | 
			
		||||
					powersave = {
 | 
			
		||||
						minFreq = 800;
 | 
			
		||||
						maxFreq = 1800;
 | 
			
		||||
					};
 | 
			
		||||
					performance = {
 | 
			
		||||
						minFreq = 1800;
 | 
			
		||||
						maxFreq = 3600;
 | 
			
		||||
					};
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		networking = {
 | 
			
		||||
  		hostName = "ookst480s"; 		
 | 
			
		||||
		};
 | 
			
		||||
    boot = {
 | 
			
		||||
      kernelPackages = pkgs.linuxKernel.packages.linux_zen;
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										61
									
								
								outputs/nixos/ookst480s/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								outputs/nixos/ookst480s/hardware-configuration.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,61 @@
 | 
			
		|||
# 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 = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ];
 | 
			
		||||
  boot.initrd.kernelModules = [ ];
 | 
			
		||||
  boot.kernelModules = [ "kvm-intel" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=root" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  boot.initrd.luks.devices."cryptnix".device = "/dev/disk/by-uuid/014d725c-bf13-40a2-a9ab-0dd6185a95f6";
 | 
			
		||||
 | 
			
		||||
  fileSystems."/nix" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=nix" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/persist" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=persist" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/swap" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283";
 | 
			
		||||
      fsType = "btrfs";
 | 
			
		||||
      options = [ "subvol=swap" ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-uuid/F356-6F9C";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
  # (the default) this is the recommended approach. When using systemd-networkd it's
 | 
			
		||||
  # still possible to use this option, but it's recommended to use it in conjunction
 | 
			
		||||
  # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
 | 
			
		||||
  networking.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.wlp61s0.useDHCP = lib.mkDefault true;
 | 
			
		||||
  # networking.interfaces.wwan0.useDHCP = lib.mkDefault true;
 | 
			
		||||
 | 
			
		||||
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 | 
			
		||||
  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
 | 
			
		||||
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue