xresources: add module
This module adds basic support for configuring X resources.
This commit is contained in:
parent
bd951cda66
commit
3d3a3f6d13
|
@ -27,6 +27,7 @@ let
|
|||
./services/udiskie.nix
|
||||
./services/xscreensaver.nix
|
||||
./systemd.nix
|
||||
./xresources.nix
|
||||
./xsession.nix
|
||||
];
|
||||
|
||||
|
|
43
modules/xresources.nix
Normal file
43
modules/xresources.nix
Normal file
|
@ -0,0 +1,43 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.xresources;
|
||||
|
||||
formatLine = n: v:
|
||||
let
|
||||
v' =
|
||||
if isBool v then (if v then "true" else "false")
|
||||
else toString v;
|
||||
in
|
||||
"${n}: ${v'}";
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
xresources.properties = mkOption {
|
||||
type = types.nullOr types.attrs;
|
||||
default = null;
|
||||
example = ''
|
||||
{
|
||||
"XTerm*faceName" = "dejavu sans mono";
|
||||
"Emacs*toolBar" = 0;
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
X server resources that should be set. If null, then this
|
||||
feature is disabled and no ~/.Xresources link is produced.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf (cfg.properties != null) {
|
||||
home.file.".Xresources".text =
|
||||
concatStringsSep "\n" (
|
||||
mapAttrsToList formatLine cfg.properties
|
||||
);
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue