diff --git a/roles/kde/plasma.nix b/roles/kde/plasma.nix index 48d7098..e2b8eb8 100644 --- a/roles/kde/plasma.nix +++ b/roles/kde/plasma.nix @@ -19,8 +19,12 @@ let in { - # Enable the Plasma 5 Desktop Environment. - services.xserver.desktopManager.plasma5.enable = true; + services.xserver = { + # Enable the Plasma 5 Desktop Environment + desktopManager.plasma5.enable = true; + displayManager.defaultSession = "plasmawayland"; + }; + # GTK apps need dconf to grab the correct theme on Wayland programs.dconf.enable = true; @@ -57,5 +61,4 @@ in "xdg/gtkrc-2.0".text = gtk1and2settings; "xdg/gtkrc".text = gtk1and2settings; }; - environment.systemPackages = [pkgs.yaru-theme]; } diff --git a/roles/kde/sddm.nix b/roles/kde/sddm.nix index b290390..10afa13 100644 --- a/roles/kde/sddm.nix +++ b/roles/kde/sddm.nix @@ -1,15 +1,57 @@ -{ config, ... }: +{ 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,