{ config, pkgs, lib, ... }: { imports = [ ./disks.nix ./hardware-configuration.nix ./environments.nix # ./system.nix use docker here ]; networking.hostName = "mibook"; boot.loader.grub = { enable = true; device = "/dev/nvme0n1"; useOSProber = true; }; # Configure keymap in X11 services.xserver.xkb = { layout = "de"; variant = ""; }; # Configure console keymap console.keyMap = "de"; # Enable CUPS to print documents. services.printing.enable = true; nixpkgs.config.allowUnfree = true; hardware.nvidia.prime = { sync.enable = false; nvidiaBusId = "PCI:01:00:0"; intelBusId = "PCI:00:2:0"; }; services.openssh.enable = true; # Don't let boot stall waiting for a network that may never come up # (WiFi credentials live in KWallet and need a desktop session), which # otherwise hangs the terminal boot before the login prompt appears. systemd.services.NetworkManager-wait-online.enable = false; # Boot-time choice: the default GRUB entry boots straight into KDE. # A separate "terminal" entry (a NixOS specialisation) boots to a text # console with autologin, where you can work or run `desktop` to bring # KDE up. Pick the entry you want in the GRUB menu at boot. # # NOTE: in terminal mode WiFi will not connect on its own (the password # is stored per-user in KWallet). To reach the machine over SSH from # terminal mode, first save the WiFi as a system connection in KDE: # network settings -> your WiFi -> "All users may connect to this network". specialisation.terminal.configuration = { system.nixos.tags = [ "terminal" ]; # Boot to a text console. graphical.target is what pulls in the display # manager (via its embedded Wants=display-manager.service), so defaulting # to multi-user.target leaves SDDM installed but not started at boot. systemd.defaultUnit = lib.mkForce "multi-user.target"; # Guarantee a usable shell on the console (no login prompt to hunt for). services.getty.autologinUser = "finn"; # Bring the desktop up on demand from the terminal. environment.systemPackages = [ (pkgs.writeShellScriptBin "desktop" "exec sudo systemctl start display-manager.service") ]; }; # KDE (PowerDevil) power settings: do nothing on lid close while on AC power. # Shipped as a system-wide default; KConfig cascades so a user's own # ~/.config/powerdevilrc will override this if present. environment.etc."xdg/powerdevilrc".text = '' [AC][SuspendAndShutdown] LidAction=0 ''; system = { stateVersion = "23.05"; autoUpgrade.enable = true; }; }