nixos/sessionPackages: provide session names in passthru

We want access to the valid session names at evaluation time.
gstqt5
Tor Hedin Brønner 2019-01-12 08:33:05 +01:00 committed by Jan Tojnar
parent d362df6682
commit dd7144b860
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
6 changed files with 23 additions and 1 deletions

View File

@ -24,6 +24,7 @@ let
swayJoined = pkgs.symlinkJoin {
name = "sway-joined";
paths = [ swayWrapped swayPackage ];
passthru.providedSessions = [ "sway" ];
};
in {
options.programs.sway = {

View File

@ -263,7 +263,20 @@ in
};
sessionPackages = mkOption {
type = types.listOf types.package;
type = with types; listOf (package // {
description = "package with provided sessions";
check = p: assertMsg
(package.check p && p ? providedSessions
&& p.providedSessions != [] && all isString p.providedSessions)
''
Package, '${p.name}', did not specify any session names, as strings, in
'passthru.providedSessions'. This is required when used as a session package.
The session names can be looked up in:
${p}/share/xsessions
${p}/share/wayland-sessions
'';
});
default = [];
description = ''
A list of packages containing x11 or wayland session files to be passed to the display manager.

View File

@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
packageName = "gnome-session";
attrPath = "gnome3.gnome-session";
};
providedSessions = [ "gnome" "gnome-xorg" ];
};
meta = with stdenv.lib; {

View File

@ -141,6 +141,8 @@ let
Type=Application
DesktopNames=GNOME-Flashback;GNOME;
'';
} // {
providedSessions = [ "gnome-flashback-${wmName}" ];
};
mkSystemdTargetForWm = { wmName }:

View File

@ -131,6 +131,7 @@ stdenv.mkDerivation rec {
inherit repoName;
attrPath = pname;
};
providedSessions = [ "pantheon" ];
};
meta = with stdenv.lib; {

View File

@ -43,6 +43,10 @@ stdenv.mkDerivation rec {
makeFlags = [ "PREFIX=${placeholder "out"}" ];
passthru = {
providedSessions = [ "surf-display" ];
};
meta = with stdenv.lib; {
description = "Kiosk browser session manager based on the surf browser";
homepage = "https://code.it-zukunft-schule.de/cgit/surf-display/";