# # 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 # { config, nixpkgs, pkgs, user, lib, pkgs-kabbone, ... }: { 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/sway/default.nix)] ++ # Window Manager (import ../../modules/wm/virtualisation) ++ # libvirt + Docker [(import ../../modules/wm/virtualisation/kvm-amd.nix)] ++ # kvm module options #[(import ../../modules/kabbone/corosync-qdevice.nix)] ++ # corosync qdevice quorum (import ../../modules/hardware); # Hardware devices boot = { # Boot options kernelPackages = pkgs.linuxPackages_latest; 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.sane = { # Used for scanning with Xsane # enable = false; # extraBackends = [ pkgs.sane-airscan ]; # }; # hardware = { # nitrokey.enable = true; # }; environment = { systemPackages = [ pkgs.linux-firmware pkgs-kabbone.corosync-qdevice ]; }; services = { #auto-cpufreq.enable = true; 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; }; }; hardware.openrgb = { enable = true; motherboard = "amd"; }; 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"; }; "lifebook.home.opel-online.de" = { id = "RKPZG3H-BDUZID3-DV26MKR-UOARIQC-JBCAFXP-J5QFM4H-5EGBSM5-VEGXHQ4"; }; }; 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" "lifebook.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. }; }; }; }; }; }