xresources: implement by using session commands

This commit is contained in:
lassulus 2015-05-05 17:16:57 +02:00 committed by tv
parent 9fc62f557a
commit cbd9e5ea8a

View File

@ -50,14 +50,6 @@ in
'';
};
services.xresources.user = mkOption {
type = types.str;
default = "nobody";
description = ''
The user the xresources should be loaded as.
'';
};
services.xresources.resources = mkOption {
default = {};
type = types.attrsOf types.str;
@ -79,30 +71,11 @@ in
user = cfg.user;
xres = concatStringsSep "\n" (attrValues cfg.resources);
mkService = user: xres: rec {
description = "xresources managment script";
requires = [ "display-manager.service" ];
after = requires;
path = [ pkgs.xlibs.xrdb ];
#TODO: make DISPLAY configurable
environment = {
DISPLAY = ":0";
};
serviceConfig = {
Type = "oneshot";
User = user;
RemainAfterExit = "yes";
ExecStart = writeScript "${user}-xresources-init" ''
#!/bin/sh
in mkIf cfg.enable {
services.xserver.displayManager.sessionCommands = ''
echo ${shell-escape xres} | xrdb -merge
'';
};
};
in mkIf cfg.enable {
systemd.services."${user}-xresources" = mkService user xres;
};
}