nixos/uwsm: set default for waylandCompositors (#474174)

This commit is contained in:
André Silva
2026-01-08 00:23:30 +00:00
committed by GitHub
3 changed files with 32 additions and 35 deletions
+3 -12
View File
@@ -89,6 +89,9 @@ in
configPackages = lib.mkDefault [ cfg.package ];
};
# To make the Hyprland session available in DM
services.displayManager.sessionPackages = [ cfg.package ];
systemd = lib.mkIf cfg.systemd.setPath.enable {
user.extraConfig = ''
DefaultEnvironment="PATH=/run/wrappers/bin:/etc/profiles/per-user/%u/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:$PATH"
@@ -98,18 +101,6 @@ in
(lib.mkIf (cfg.withUWSM) {
programs.uwsm.enable = true;
# Configure UWSM to launch Hyprland from a display manager like SDDM
programs.uwsm.waylandCompositors = {
hyprland = {
prettyName = "Hyprland";
comment = "Hyprland compositor managed by UWSM";
binPath = "/run/current-system/sw/bin/start-hyprland";
};
};
})
(lib.mkIf (!cfg.withUWSM) {
# To make a vanilla Hyprland session available in DM
services.displayManager.sessionPackages = [ cfg.package ];
})
(import ./wayland-session.nix {
+28 -22
View File
@@ -107,33 +107,39 @@ in
binPath = "/run/current-system/sw/bin/sway";
};
'';
default = { };
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
systemd.packages = [ cfg.package ];
environment.pathsToLink = [ "/share/uwsm" ];
config = lib.mkIf cfg.enable (
lib.mkMerge [
{
environment.systemPackages = [ cfg.package ];
systemd.packages = [ cfg.package ];
environment.pathsToLink = [ "/share/uwsm" ];
# UWSM recommends dbus broker for better compatibility
services.dbus.implementation = "broker";
# UWSM recommends dbus broker for better compatibility
services.dbus.implementation = "broker";
services.displayManager = {
enable = true;
sessionPackages = lib.mapAttrsToList (
name: value:
mk_uwsm_desktop_entry {
inherit name;
inherit (value)
prettyName
comment
binPath
extraArgs
;
}
) cfg.waylandCompositors;
};
};
services.displayManager.enable = true;
}
(lib.mkIf (cfg.waylandCompositors != { }) {
services.displayManager.sessionPackages = lib.mapAttrsToList (
name: value:
mk_uwsm_desktop_entry {
inherit name;
inherit (value)
prettyName
comment
binPath
extraArgs
;
}
) cfg.waylandCompositors;
})
]
);
meta.maintainers = with lib.maintainers; [
johnrtitor
+1 -1
View File
@@ -194,7 +194,7 @@ customStdenv.mkDerivation (finalAttrs: {
"NO_XWAYLAND" = !enableXWayland;
"NO_SYSTEMD" = !withSystemd;
"CMAKE_DISABLE_PRECOMPILE_HEADERS" = true;
"NO_UWSM" = true;
"NO_UWSM" = !withSystemd;
"NO_HYPRPM" = true;
"TRACY_ENABLE" = false;
};