# SPDX-FileCopyrightText: 2022 Richard Brežák # # SPDX-License-Identifier: LGPL-3.0-or-later { inputs, lib', config, ... }: let inherit (lib') flip mapAttrs singleton; config' = config; in { flake.nixosConfigurations.liveusb = inputs.nixpkgs.lib.nixosSystem { system = "x86_64-linux"; lib = lib'; specialArgs = { config' = config'; inputs' = inputs; secret = lib'.loadSecrets inputs.secrets; }; modules = singleton ({ pkgs, config, ... }: { imports = [ "${inputs.nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix" ../../common/nixpkgs.nix ]; environment.systemPackages = [ (pkgs.writeShellScriptBin "test-s0ix" '' _cpu_residency="/sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us" _system_residency="/sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us" echo '> '"$_system_residency before" _residency_before=$(cat "$_system_residency") echo "$_residency_before" echo "Suspending to RAM and resuming in 30 seconds..." rtcwake -u -s 30 -m mem -n && systemctl suspend echo '> '"$_system_residency after" _residency_after=$(cat "$_system_residency") echo "$_residency_after" if [ $_residency_before -lt $_residency_after ] ; then echo "Suspend successful" elso echo "Suspend unsuccessful" fi ${lib'.getExe pkgs.smartmontools} -a $(echo /dev/nvme?n? | tr ' ' '\n' | head -n 1) '') ]; isoImage.edition = "xfce"; services.xserver.videoDrivers = [ "nvidia" ]; boot.supportedFilesystems = singleton "zfs"; boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_1; boot.kernelParams = [ "nvidia.NVreg_EnableS0ixPowerManagement=1" "nvidia.NVreg_S0ixPowerManagementVideoMemoryThreshold=2048" ]; hardware.nvidia = { powerManagement.enable = true; package = config.boot.kernelPackages.nvidia_x11_beta; }; services.xserver = { desktopManager = { xterm.enable = false; xfce.enable = true; }; displayManager.defaultSession = "xfce"; }; }); }; }