{ config, pkgs, ... }: { # Enable CUPS to print documents. services.printing.enable = true; # Enable sound with pipewire. services.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; # If you want to use JACK applications, uncomment this #jack.enable = true; # use the example session manager (no others are packaged yet so this is enabled by default, # no need to redefine it in your config for now) #media-session.enable = true; }; # Enable X11 server (required for some applications and SDDM compatibility) services.xserver.enable = true; services.openssh = { enable = true; settings = { X11Forwarding = true; PermitRootLogin = "no"; # no root PasswordAuthentication = false; # no passwords }; }; # Enable SDDM display manager with proper Wayland support services.displayManager.sddm = { enable = true; wayland.enable = true; settings = { General = { DisplayServer = "wayland"; GreeterEnvironment = "QT_WAYLAND_SHELL_INTEGRATION=layer-shell"; Numlock = "on"; HaltCommand = "/run/current-system/systemd/bin/systemctl poweroff"; RebootCommand = "/run/current-system/systemd/bin/systemctl reboot"; InputMethod = ""; }; Autologin = { User = "jared"; Session = "sway"; }; }; }; # Libinput configuration for both X11 and Wayland services.libinput = { enable = true; touchpad = { naturalScrolling = true; disableWhileTyping = true; # Optional: Palm rejection }; mouse = { naturalScrolling = true; }; }; virtualisation.docker = { enable = true; }; # Security and session management security.polkit.enable = true; # Ensure proper seat management for Wayland services.seatd = { enable = true; }; }