Compare commits
	
		
			3 Commits
		
	
	
		
			a61a2f79bd
			...
			f166ba76d8
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| f166ba76d8 | |||
| 4b57f49353 | |||
| 3699684117 | 
@ -6,6 +6,7 @@ Configuration files for my personal machine, powered by [[https://nixos.org/][Ni
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
The configuration is sliced into different files, per category:
 | 
					The configuration is sliced into different files, per category:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- ZFS pool configuration: hardware-configuration.nix
 | 
				
			||||||
- Globally installed packages: software.nix
 | 
					- Globally installed packages: software.nix
 | 
				
			||||||
- Network and VPN configuration: networking.nix
 | 
					- Network and VPN configuration: networking.nix
 | 
				
			||||||
- Window manager and userland services: gui.nix
 | 
					- Window manager and userland services: gui.nix
 | 
				
			||||||
@ -13,6 +14,7 @@ The configuration is sliced into different files, per category:
 | 
				
			|||||||
- Sound and music setup: audio.nix
 | 
					- Sound and music setup: audio.nix
 | 
				
			||||||
- Development tools: development.nix
 | 
					- Development tools: development.nix
 | 
				
			||||||
- Printing and scanner client: printing.nix
 | 
					- Printing and scanner client: printing.nix
 | 
				
			||||||
- ZFS pool configuration: hardware-configuration.nix
 | 
					- Systemd user services and timers: periodic.nix
 | 
				
			||||||
 | 
					- Power management: power.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
All the modules are imported in *configuration.nix*
 | 
					All the modules are imported in *configuration.nix*
 | 
				
			||||||
 | 
				
			|||||||
@ -32,9 +32,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  # Run Nix garbage collector, while avoiding compiling
 | 
					  # Run Nix garbage collector, while avoiding compiling
 | 
				
			||||||
  nix = {
 | 
					  nix = {
 | 
				
			||||||
 | 
					    autoOptimiseStore = true;
 | 
				
			||||||
    gc = {
 | 
					    gc = {
 | 
				
			||||||
      automatic = true;
 | 
					      automatic = true;
 | 
				
			||||||
      options = "--delete-older-than 14d";
 | 
					      options = "--delete-older-than 7d";
 | 
				
			||||||
      dates = "14:30";
 | 
					      dates = "14:30";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    extraOptions = ''
 | 
					    extraOptions = ''
 | 
				
			||||||
@ -65,39 +66,6 @@
 | 
				
			|||||||
  time.timeZone = "Europe/Brussels";
 | 
					  time.timeZone = "Europe/Brussels";
 | 
				
			||||||
  services.timesyncd.enable = true;
 | 
					  services.timesyncd.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Enable the TLP daemon
 | 
					 | 
				
			||||||
  services.tlp = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    settings = {
 | 
					 | 
				
			||||||
      # Use the new CPU frequency scaling governor
 | 
					 | 
				
			||||||
      CPU_SCALING_GOVERNOR_ON_AC = "schedutil";
 | 
					 | 
				
			||||||
      CPU_SCALING_GOVERNOR_ON_BAT = "schedutil";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # Adjust CPU frequencies accordingly to the power state
 | 
					 | 
				
			||||||
      CPU_SCALING_MIN_FREQ_ON_AC = 800000;
 | 
					 | 
				
			||||||
      CPU_SCALING_MAX_FREQ_ON_AC = 3000000;
 | 
					 | 
				
			||||||
      CPU_SCALING_MIN_FREQ_ON_BAT = 800000;
 | 
					 | 
				
			||||||
      CPU_SCALING_MAX_FREQ_ON_BAT = 2300000;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
 | 
					 | 
				
			||||||
      # A value of 0 disables, >=1 enables power saving (recommended: 1).
 | 
					 | 
				
			||||||
      # Default: 0 (AC), 1 (BAT)
 | 
					 | 
				
			||||||
      SOUND_POWER_SAVE_ON_AC = 0;
 | 
					 | 
				
			||||||
      SOUND_POWER_SAVE_ON_BAT = 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable.
 | 
					 | 
				
			||||||
      # Default: on (AC), auto (BAT)
 | 
					 | 
				
			||||||
      RUNTIME_PM_ON_AC = "on";
 | 
					 | 
				
			||||||
      RUNTIME_PM_ON_BAT = "auto";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # Battery feature drivers: 0=disable, 1=enable
 | 
					 | 
				
			||||||
      # Default: 1 (all)
 | 
					 | 
				
			||||||
      NATACPI_ENABLE = 1;
 | 
					 | 
				
			||||||
      TPACPI_ENABLE = 1;
 | 
					 | 
				
			||||||
      TPSMAPI_ENABLE = 1;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # NixOS version
 | 
					  # NixOS version
 | 
				
			||||||
  system.stateVersion = "20.09";
 | 
					  system.stateVersion = "20.09";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -123,15 +91,9 @@
 | 
				
			|||||||
    dates = "14:00";
 | 
					    dates = "14:00";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Suspend to RAM/disk when battery is critical
 | 
					 | 
				
			||||||
  services.upower = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    percentageAction = 5;
 | 
					 | 
				
			||||||
    criticalPowerAction = "HybridSleep";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Import other configuration modules
 | 
					  # Import other configuration modules
 | 
				
			||||||
  imports = [
 | 
					  imports = [
 | 
				
			||||||
 | 
					    ./modules/hardware-configuration.nix
 | 
				
			||||||
    ./modules/software.nix
 | 
					    ./modules/software.nix
 | 
				
			||||||
    ./modules/networking.nix
 | 
					    ./modules/networking.nix
 | 
				
			||||||
    ./modules/gui.nix
 | 
					    ./modules/gui.nix
 | 
				
			||||||
@ -140,7 +102,7 @@
 | 
				
			|||||||
    ./modules/development.nix
 | 
					    ./modules/development.nix
 | 
				
			||||||
    ./modules/printing.nix
 | 
					    ./modules/printing.nix
 | 
				
			||||||
    ./modules/periodic.nix
 | 
					    ./modules/periodic.nix
 | 
				
			||||||
    ./modules/hardware-configuration.nix
 | 
					    ./modules/power.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										45
									
								
								modules/power.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								modules/power.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					{ config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  # Enable the TLP daemon
 | 
				
			||||||
 | 
					  services.tlp = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      # Use the new CPU frequency scaling governor
 | 
				
			||||||
 | 
					      CPU_SCALING_GOVERNOR_ON_AC = "schedutil";
 | 
				
			||||||
 | 
					      CPU_SCALING_GOVERNOR_ON_BAT = "schedutil";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Adjust CPU frequencies accordingly to the power state
 | 
				
			||||||
 | 
					      CPU_SCALING_MIN_FREQ_ON_AC = 800000;
 | 
				
			||||||
 | 
					      CPU_SCALING_MAX_FREQ_ON_AC = 3000000;
 | 
				
			||||||
 | 
					      CPU_SCALING_MIN_FREQ_ON_BAT = 800000;
 | 
				
			||||||
 | 
					      CPU_SCALING_MAX_FREQ_ON_BAT = 2300000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
 | 
				
			||||||
 | 
					      # A value of 0 disables, >=1 enables power saving (recommended: 1).
 | 
				
			||||||
 | 
					      # Default: 0 (AC), 1 (BAT)
 | 
				
			||||||
 | 
					      SOUND_POWER_SAVE_ON_AC = 0;
 | 
				
			||||||
 | 
					      SOUND_POWER_SAVE_ON_BAT = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable.
 | 
				
			||||||
 | 
					      # Default: on (AC), auto (BAT)
 | 
				
			||||||
 | 
					      RUNTIME_PM_ON_AC = "on";
 | 
				
			||||||
 | 
					      RUNTIME_PM_ON_BAT = "auto";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Battery feature drivers: 0=disable, 1=enable
 | 
				
			||||||
 | 
					      # Default: 1 (all)
 | 
				
			||||||
 | 
					      NATACPI_ENABLE = 1;
 | 
				
			||||||
 | 
					      TPACPI_ENABLE = 1;
 | 
				
			||||||
 | 
					      TPSMAPI_ENABLE = 1;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Suspend to RAM/disk when battery is critical
 | 
				
			||||||
 | 
					  services.upower = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    percentageAction = 5;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Disable touchscreen
 | 
				
			||||||
 | 
					  boot.blacklistedKernelModules = [ "hid_multitouch" ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user