mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-04-25 06:19:10 +00:00
programs/gnome-session: change componentsType.desktopConfig
type to composite type
`lib.types.attrs` does not have good merging step for priority values so we changed it to `attrsOf anything`.
This commit is contained in:
parent
72449a9322
commit
0b46826cb3
@ -22,7 +22,7 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
desktopConfig = lib.mkOption {
|
desktopConfig = lib.mkOption {
|
||||||
type = lib.types.attrs;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
The configuration for the gnome-session desktop file. For more
|
The configuration for the gnome-session desktop file. For more
|
||||||
information, look into `makeDesktopItem` nixpkgs builder.
|
information, look into `makeDesktopItem` nixpkgs builder.
|
||||||
@ -100,6 +100,21 @@ let
|
|||||||
config = {
|
config = {
|
||||||
id = "${session.prefix}.${name}";
|
id = "${session.prefix}.${name}";
|
||||||
|
|
||||||
|
# Make with the default configurations.
|
||||||
|
desktopConfig = {
|
||||||
|
name = lib.mkForce config.id;
|
||||||
|
desktopName = lib.mkDefault "${session.fullName} - ${config.description}";
|
||||||
|
exec = lib.mkForce config.scriptPackage;
|
||||||
|
noDisplay = lib.mkForce true;
|
||||||
|
onlyShowIn = [ "X-${session.fullName}" ];
|
||||||
|
extraConfig = {
|
||||||
|
X-GNOME-AutoRestart = lib.mkDefault "false";
|
||||||
|
X-GNOME-Autostart-Notify = lib.mkDefault "true";
|
||||||
|
X-GNOME-Autostart-Phase = lib.mkDefault "Application";
|
||||||
|
X-GNOME-HiddenUnderSystemd = lib.mkDefault "true";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Setting some recommendation and requirements for systemd-managed
|
# Setting some recommendation and requirements for systemd-managed
|
||||||
# gnome-session components.
|
# gnome-session components.
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
@ -147,31 +162,7 @@ let
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
desktopPackage =
|
desktopPackage = pkgs.makeDesktopItem config.desktopConfig;
|
||||||
let
|
|
||||||
defaultDesktopConfig = config.desktopConfig // {
|
|
||||||
name = config.id;
|
|
||||||
desktopName = "${session.fullName} - ${config.description}";
|
|
||||||
exec = config.scriptPackage;
|
|
||||||
noDisplay = true;
|
|
||||||
onlyShowIn = [ "X-${session.fullName}" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Basically, more default desktop configuration.
|
|
||||||
applicableDesktopConfig = {
|
|
||||||
# More information can be found in gnome-session(1) manual page.
|
|
||||||
extraConfig = {
|
|
||||||
X-GNOME-AutoRestart = "false";
|
|
||||||
X-GNOME-Autostart-Notify = "true";
|
|
||||||
X-GNOME-Autostart-Phase = "Application";
|
|
||||||
X-GNOME-HiddenUnderSystemd = "true";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
pkgs.makeDesktopItem
|
|
||||||
(lib.attrsets.recursiveUpdate
|
|
||||||
applicableDesktopConfig
|
|
||||||
defaultDesktopConfig);
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user