From 485ac7a4c4145c06dc5c845866d7ea4d7cab709e Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Thu, 7 Mar 2024 15:54:04 +0800 Subject: [PATCH] nixos/programs/{gnome-session,sessiond}: improve code --- modules/nixos/programs/gnome-session/default.nix | 11 +++++------ modules/nixos/programs/sessiond/default.nix | 11 +++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/modules/nixos/programs/gnome-session/default.nix b/modules/nixos/programs/gnome-session/default.nix index fc6fe6e6..06d62e30 100644 --- a/modules/nixos/programs/gnome-session/default.nix +++ b/modules/nixos/programs/gnome-session/default.nix @@ -115,15 +115,15 @@ let ) cfg.sessions; - sessionSystemdUnits = lib.mapAttrsToList + sessionSystemdUnits = lib.concatMapAttrs (name: session: let inherit (utils.systemdUtils.lib) pathToUnit serviceToUnit targetToUnit timerToUnit socketToUnit; componentsUnits = - lib.foldlAttrs - (acc: name: component: - acc // { + lib.concatMapAttrs + (name: component: + { "${component.id}.service" = serviceToUnit component.id component.serviceUnit; "${component.id}.target" = targetToUnit component.id component.targetUnit; } // lib.optionalAttrs (component.socketUnit != null) { @@ -133,7 +133,6 @@ let } // lib.optionalAttrs (component.pathUnit != null) { "${component.id}.path" = pathToUnit component.id component.pathUnit; }) - { } session.components; in componentsUnits // { @@ -312,6 +311,6 @@ in # is more elegant and surprisingly trivial) but this requires # reimplementing parts of nixpkgs systemd-lib and we're lazy bastards so # no. - systemd.user.units = lib.mkMerge sessionSystemdUnits; + systemd.user.units = sessionSystemdUnits; }; } diff --git a/modules/nixos/programs/sessiond/default.nix b/modules/nixos/programs/sessiond/default.nix index b5d901d0..9711dbe1 100644 --- a/modules/nixos/programs/sessiond/default.nix +++ b/modules/nixos/programs/sessiond/default.nix @@ -39,16 +39,16 @@ let ) cfg.sessions; - sessionSystemdUnits = lib.mapAttrsToList + sessionSystemdUnits = lib.concatMapAttrs (name: session: let inherit (utils.systemdUtils.lib) pathToUnit serviceToUnit targetToUnit timerToUnit socketToUnit; sessionComponents = - lib.foldlAttrs - (acc: name: component: - acc // { + lib.concatMapAttrs + (name: component: + { "${component.id}.service" = serviceToUnit component.id component.serviceUnit; "${component.id}.target" = targetToUnit component.id component.targetUnit; } // lib.optionalAttrs (component.socketUnit != null) { @@ -58,7 +58,6 @@ let } // lib.optionalAttrs (component.pathUnit != null) { "${component.id}.path" = pathToUnit component.id component.pathUnit; }) - { } session.components; in sessionComponents // { @@ -193,7 +192,7 @@ in # Import those systemd units from sessiond as well. systemd.packages = [ cfg.package ]; - systemd.user.units = lib.mkMerge sessionSystemdUnits; + systemd.user.units = sessionSystemdUnits; # We're disabling the upstream sessiond service since we have our own set # of sessiond sessions here.