From fa385918cdc7e4f1f7b8f4eebdd12d984cd22113 Mon Sep 17 00:00:00 2001 From: Toast Date: Wed, 28 Jun 2023 14:49:18 +0200 Subject: [PATCH 1/4] Plasma: remove leftover testing package --- roles/kde/plasma.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/roles/kde/plasma.nix b/roles/kde/plasma.nix index 48d7098..1445083 100644 --- a/roles/kde/plasma.nix +++ b/roles/kde/plasma.nix @@ -57,5 +57,4 @@ in "xdg/gtkrc-2.0".text = gtk1and2settings; "xdg/gtkrc".text = gtk1and2settings; }; - environment.systemPackages = [pkgs.yaru-theme]; } From d6eff86646fe3b0105fd220e436f77dd67668dfd Mon Sep 17 00:00:00 2001 From: Toast Date: Wed, 28 Jun 2023 14:50:12 +0200 Subject: [PATCH 2/4] Plasma: set default session to plasma wayland --- roles/kde/plasma.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/roles/kde/plasma.nix b/roles/kde/plasma.nix index 1445083..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; From 0dc2b2980b7daa03f10ba78fff9a1ec69bc1954d Mon Sep 17 00:00:00 2001 From: Toast Date: Thu, 29 Jun 2023 12:57:40 +0200 Subject: [PATCH 3/4] Sddm: create derivation containing custom theme --- roles/kde/sddm.nix | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/roles/kde/sddm.nix b/roles/kde/sddm.nix index b290390..1c6e689 100644 --- a/roles/kde/sddm.nix +++ b/roles/kde/sddm.nix @@ -1,15 +1,36 @@ -{ config, ... }: +{ config, pkgs, ... }: + +let + 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 + ''; + }; + +in { # Enable SDDM. services.xserver.displayManager.sddm = { enable = true; + theme = "sugar-candy"; settings = { General = { Numlock = "on"; }; }; }; - + environment.systemPackages = [ sddm-sugar-candy ]; /* 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, From 69ad5319786c9c014463b655324ef5ba0c400f4d Mon Sep 17 00:00:00 2001 From: Toast Date: Thu, 29 Jun 2023 12:58:40 +0200 Subject: [PATCH 4/4] Sddm: customize the currently applied theme --- roles/kde/sddm.nix | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/roles/kde/sddm.nix b/roles/kde/sddm.nix index 1c6e689..10afa13 100644 --- a/roles/kde/sddm.nix +++ b/roles/kde/sddm.nix @@ -1,6 +1,8 @@ { config, pkgs, ... }: let + currentTheme = config.services.xserver.displayManager.sddm.theme; + sddm-sugar-candy = pkgs.stdenv.mkDerivation { pname = "sddm-sugar-candy"; version = "master"; @@ -18,6 +20,25 @@ let ''; }; + /* + 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 { @@ -30,7 +51,7 @@ in }; }; - environment.systemPackages = [ sddm-sugar-candy ]; + 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,