# # 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 # { lib, 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/wm/hyprland/default.nix)] ++ # Window Manager [(import ../../modules/wm/sway/default.nix)] ++ # Window Manager [(import ../../modules/wm/virtualisation/docker.nix)] ++ # Docker [(import ../../modules/wm/virtualisation/kvm-intel.nix)] ++ # kvm module options (import ../../modules/hardware); # Hardware devices boot = { # Boot options kernelPackages = pkgs.linuxPackages_latest; initrd.prepend = [ "${./patched-SSDT4}" ]; loader = { # EFI Boot systemd-boot.enable = lib.mkForce false; efi = { canTouchEfiVariables = true; efiSysMountPoint = "/boot"; }; timeout = 1; # Grub auto select time }; lanzaboote = { enable = true; pkiBundle = "/etc/secureboot"; }; }; hardware = { nitrokey.enable = true; }; environment = { systemPackages = with pkgs; [ linux-firmware intel-media-driver ]; }; programs = { # No xbacklight, this is the alterantive light.enable = true; }; systemd.sleep.extraConfig = "HibernateDelaySec=1h"; services = { logind.lidSwitch = "suspend-then-hibernate"; # Laptop does not go to sleep when lid is closed blueman.enable = true; avahi = { # Needed to find wireless printer enable = true; nssmdns4 = true; publish = { # Needed for detecting the scanner enable = true; addresses = true; userServices = true; }; }; #tailscale.enable = true; syncthing = { enable = true; group = "users"; user = "kabbone"; dataDir = "/home/${config.services.syncthing.user}/Sync"; configDir = "/home/${config.services.syncthing.user}/.config/syncthing"; overrideDevices = true; # overrides any devices added or deleted through the WebUI overrideFolders = true; # overrides any folders added or deleted through the WebUI openDefaultPorts = true; settings = { devices = { "jupiter.home.opel-online.de" = { id = "T53WU6Z-3NT74ZE-PZVZB2N-7FBTZ5K-HESC2ZM-W4ABDAS-NWXHTGI-ST4CDQR"; }; "hades.home.opel-online.de" = { id = "3VPCBVW-RH7XKFM-TWJGQHC-ZRAQ575-CQKGGKP-NAB4VXE-KCKJFUT-AMCUQQA"; }; }; folders = { "Sync" = { # Name of folder in Syncthing, also the folder ID path = "/home/${config.services.syncthing.user}/Sync"; # Which folder to add to Syncthing devices = [ "jupiter.home.opel-online.de" "hades.home.opel-online.de" ]; # Which devices to share the folder with ignorePerms = false; # By default, Syncthing doesn't sync file permissions. This line enables it for this folder. }; }; }; }; }; }