63 lines
1.6 KiB
Nix
63 lines
1.6 KiB
Nix
{ 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";
|
|
};
|
|
}
|