{ config, pkgs, ... }: let currentTheme = config.services.xserver.displayManager.sddm.theme; sddm-sugar-candy = pkgs.stdenv.mkDerivation { pname = "sddm-sugar-candy"; version = "master"; src = pkgs.fetchgit { url = "https://framagit.org/MarianArlt/sddm-sugar-candy.git"; hash = "sha256-XggFVsEXLYklrfy1ElkIp9fkTw4wvXbyVkaVCZq4ZLU="; }; installPhase = '' runHook preInstall mkdir -p $out/share/sddm/themes/sugar-candy cp -r /build/sddm-sugar-candy/* $out/share/sddm/themes/sugar-candy runHook postInstall ''; }; /* Adds a theme.conf.user file to the current sddm theme's folder, allowing you to change it's configuration without needing to repackage it */ customcfg = pkgs.stdenv.mkDerivation { name = "sddm-theme-customizer"; dontUnpack = true; # TODO: generate theme.conf.user outside of installPhase installPhase = '' runHook preInstall mkdir -p $out/share/sddm/themes/${currentTheme}/ echo "[General] background = ${pkgs.plasma-workspace-wallpapers}/share/wallpapers/MilkyWay/contents/images/5120x2880.png" >> $out/share/sddm/themes/${currentTheme}/theme.conf.user runHook postInstall ''; }; in { # Enable SDDM. services.xserver.displayManager.sddm = { enable = true; theme = "sugar-candy"; settings = { General = { Numlock = "on"; }; }; }; environment.systemPackages = [ sddm-sugar-candy customcfg ]; /* Sddm has a very annoying bug where it sometimes hangs at shutdown if you use Plasma's wayland session. The bug is already fixed upstream, but until it sddm gets updated on the repos this will do */ systemd.services.display-manager.serviceConfig = { TimeoutStopSec = "5s"; }; }