I use sddm with a personal fork of the astronaut theme.
Everything works well after a nixos rebuild switch --flake .
in my system config directory, and I can preview the theme working with sddm-greeter-qt6 --test-mode --theme /run/current-system/sw/share/sddm/themes/sddm-astronaut-theme/
to confirm that it does indeed work properly.
However, once I reboot my system, the theme is changed. The new theme is a previous sddm theme that I had installed but then removed. For the life of me, I can’t find out why this is still installed and used. I can’t find any reference of it in my config.
The way the theme works is just symlinking an entry in the nix store to a folder in the themes
directory of sddm. After rebuilding, the nix store entry that is used is a different entry than after rebooting. In other words, rebooting changes the entry that is used as my theme.
My sddm configuration is:
{ pkgs, lib, config, inputs, ... }:
let
sddm-astronaut = pkgs.libsForQt5.callPackage ../../../../pkgs/sddm-astronaut-theme { };
in {
environment.defaultPackages = [
sddm-astronaut
];
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
package = pkgs.kdePackages.sddm;
theme = "sddm-astronaut-theme";
};
}
The file referenced to create sddm-astronaut
is:
{ pkgs, lib, stdenvNoCC }:
let
themeConfig = { };
in stdenvNoCC.mkDerivation rec {
pname = "sddm-astronaut";
version = "1.0";
src = pkgs.fetchFromGitHub {
owner = "ethananthony271";
repo = "sddm-astronaut-theme";
rev = "4b6b58505a1cf1f60b0365be3d964b4f68e26ffc";
hash = "sha256-LJQrcbPvh3VMBrW3mlbF+kwai0+Y6kVD6716IvxjjYk=";
};
dontWrapQtApps = true;
propagatedBuildInputs = with pkgs.kdePackages; [
qt5compat
qtsvg
];
installPhase =
let
basePath = "$out/share/sddm/themes/sddm-astronaut-theme";
in
''
mkdir -p ${basePath}
cp -r $src/* ${basePath}
''
+ lib.optionalString (themeConfig != null) ''
ln -sf ${basePath}/Themes/theme1.conf ${basePath}/theme.conf.user
'';
meta = {
description = "Modern looking qt6 sddm theme";
homepage = "https://github.com/${src.owner}/${src.repo}";
license = lib.licenses.gpl3;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ danid3v ];
};
}
Is there any reason that the packages used should change with a reboot? Or is something weird going on here. I’m really not sure what to make of this.