diff options
Diffstat (limited to 'lass/1systems')
-rw-r--r-- | lass/1systems/blue/source.nix | 6 | ||||
-rw-r--r-- | lass/1systems/xerxes/config.nix | 119 | ||||
-rw-r--r-- | lass/1systems/xerxes/physical.nix | 86 |
3 files changed, 208 insertions, 3 deletions
diff --git a/lass/1systems/blue/source.nix b/lass/1systems/blue/source.nix index 21f3a8bd5..1a98fc058 100644 --- a/lass/1systems/blue/source.nix +++ b/lass/1systems/blue/source.nix @@ -1,6 +1,6 @@ -{ lib, pkgs, ... }: +{ lib, pkgs, test, ... }: { - nixpkgs = lib.mkForce { + nixpkgs = lib.mkIf (! test) (lib.mkForce { file = { path = toString (pkgs.fetchFromGitHub { owner = "nixos"; @@ -10,5 +10,5 @@ }); useChecksum = true; }; - }; + }); } diff --git a/lass/1systems/xerxes/config.nix b/lass/1systems/xerxes/config.nix new file mode 100644 index 000000000..2d25bc88a --- /dev/null +++ b/lass/1systems/xerxes/config.nix @@ -0,0 +1,119 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + <stockholm/lass> + + <stockholm/lass/2configs/retiolum.nix> + <stockholm/lass/2configs/exim-retiolum.nix> + <stockholm/lass/2configs/baseX.nix> + <stockholm/lass/2configs/browsers.nix> + <stockholm/lass/2configs/programs.nix> + <stockholm/lass/2configs/network-manager.nix> + <stockholm/lass/2configs/syncthing.nix> + <stockholm/lass/2configs/games.nix> + <stockholm/lass/2configs/steam.nix> + <stockholm/lass/2configs/wine.nix> + <stockholm/lass/2configs/fetchWallpaper.nix> + <stockholm/lass/2configs/nfs-dl.nix> + <stockholm/lass/2configs/pass.nix> + <stockholm/lass/2configs/mail.nix> + ]; + + krebs.build.host = config.krebs.hosts.xerxes; + + environment.shellAliases = { + deploy = pkgs.writeDash "deploy" '' + set -eu + export SYSTEM="$1" + $(nix-build $HOME/sync/stockholm/lass/krops.nix --no-out-link --argstr name "$SYSTEM" -A deploy) + ''; + }; + + services.xserver = { + displayManager.lightdm.autoLogin.enable = true; + displayManager.lightdm.autoLogin.user = "lass"; + }; + + krebs.syncthing = { + folders = { + the_playlist = { + path = "/home/lass/tmp/the_playlist"; + peers = [ "mors" "phone" "prism" "xerxes" ]; + }; + }; + }; + krebs.permown = { + "/home/lass/tmp/the_playlist" = { + owner = "lass"; + group = "syncthing"; + umask = "0007"; + }; + }; + + boot.blacklistedKernelModules = [ "xpad" ]; + systemd.services.xboxdrv = { + wantedBy = [ "multi-user.target" ]; + script = '' + ${pkgs.xboxdrv.overrideAttrs(o: { + patches = [ (pkgs.fetchurl { + url = "https://patch-diff.githubusercontent.com/raw/xboxdrv/xboxdrv/pull/251.patch"; + sha256 = "17784y20mxqrlhgvwvszh8lprxrvgmb7ah9dknmbhj5jhkjl8wq5"; + }) ]; + })}/bin/xboxdrv --type xbox360 --dbus disabled -D + ''; + }; + + programs.adb.enable = true; + + services.logind.lidSwitch = "ignore"; + services.acpid = { + enable = true; + lidEventCommands = '' + export DISPLAY=:${toString config.services.xserver.display} + case "$1" in + "button/lid LID close") + ${pkgs.xorg.xinput}/bin/xinput disable 'pointer: Mouse for Windows' + ${pkgs.xorg.xinput}/bin/xinput disable 'keyboard: Mouse for Windows' + ${pkgs.acpilight}/bin/xbacklight -get > /tmp/pre_lid_brightness + ${pkgs.acpilight}/bin/xbacklight -set 0 + ;; + "button/lid LID open") + ${pkgs.xorg.xinput}/bin/xinput enable 'pointer: Mouse for Windows' + ${pkgs.xorg.xinput}/bin/xinput enable 'keyboard: Mouse for Windows' + ${pkgs.acpilight}/bin/xbacklight -set $(cat /tmp/pre_lid_brightness) + ;; + esac + ''; + }; + + systemd.services.suspend-again = { + after = [ "suspend.target" ]; + requiredBy = [ "suspend.target" ]; + # environment = { + # DISPLAY = ":${toString config.services.xserver.display}"; + # }; + serviceConfig = { + ExecStart = pkgs.writeDash "suspend-again" '' + ${pkgs.gnugrep}/bin/grep -q closed /proc/acpi/button/lid/LID0/state + if [ "$?" -eq 0 ]; then + echo 'wakeup with closed lid' + ${pkgs.systemd}/bin/systemctl suspend + fi + ''; + Type = "simple"; + }; + }; + + hardware.bluetooth.enable = true; + hardware.pulseaudio.package = pkgs.pulseaudioFull; + # hardware.pulseaudio.configFile = pkgs.writeText "default.pa" '' + # load-module module-bluetooth-policy + # load-module module-bluetooth-discover + # ## module fails to load with + # ## module-bluez5-device.c: Failed to get device path from module arguments + # ## module.c: Failed to load module "module-bluez5-device" (argument: ""): initialization failed. + # # load-module module-bluez5-device + # # load-module module-bluez5-discover + # ''; +} diff --git a/lass/1systems/xerxes/physical.nix b/lass/1systems/xerxes/physical.nix new file mode 100644 index 000000000..5d60dfc45 --- /dev/null +++ b/lass/1systems/xerxes/physical.nix @@ -0,0 +1,86 @@ +{ pkgs, lib, ... }: +{ + imports = [ + ./config.nix + <nixpkgs/nixos/modules/installer/scan/not-detected.nix> + ]; + + boot.zfs.enableUnstable = true; + boot.loader.grub = { + enable = true; + device = "/dev/sda"; + efiSupport = true; + }; + boot.loader.efi.canTouchEfiVariables = true; + + # TODO fix touchscreen + boot.blacklistedKernelModules = [ + "goodix" + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.initrd.luks.devices.crypted.device = "/dev/sda3"; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + boot.kernelParams = [ + "fbcon=rotate:1" + "boot.shell_on_fail" + ]; + + fileSystems."/" = { + device = "rpool/root"; + fsType = "zfs"; + }; + + fileSystems."/home" = { + device = "rpool/home"; + fsType = "zfs"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/E749-784C"; + fsType = "vfat"; + }; + + swapDevices = [ ]; + + boot.extraModprobeConfig = '' + options zfs zfs_arc_max=1073741824 + ''; + + nix.maxJobs = lib.mkDefault 4; + + networking.hostId = "9b0a74ac"; + networking.networkmanager.enable = true; + + hardware.opengl.enable = true; + + services.tlp.enable = true; + services.tlp.extraConfig = '' + CPU_SCALING_GOVERNOR_ON_AC=ondemand + CPU_SCALING_GOVERNOR_ON_BAT=powersave + CPU_MIN_PERF_ON_AC=0 + CPU_MAX_PERF_ON_AC=100 + CPU_MIN_PERF_ON_BAT=0 + CPU_MAX_PERF_ON_BAT=30 + ''; + + services.logind.extraConfig = '' + HandlePowerKey=suspend + IdleAction=suspend + IdleActionSec=300 + ''; + + services.xserver = { + videoDrivers = [ "intel" ]; + deviceSection = '' + Option "TearFree" "true" + ''; + displayManager.sessionCommands = '' + echo nonono > /tmp/xxyy + (sleep 2 && ${pkgs.xorg.xrandr}/bin/xrandr --output eDP1 --rotate right) + (sleep 2 && ${pkgs.xorg.xinput}/bin/xinput set-prop 'Goodix Capacitive TouchScreen' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1) + ''; + }; +} |