aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorRobert Helgesson <robert@rycee.net>2017-01-12 01:01:15 +0100
committerRobert Helgesson <robert@rycee.net>2017-01-15 23:42:47 +0100
commit3d3a3f6d1398a35da49b85ac37c56e67e8b52396 (patch)
treec05807edf9b58d0e93fc9690a395a22fa8f0bae4 /modules
parentbd951cda66ab29376dcd707716d13cab7cf1910b (diff)
xresources: add module
This module adds basic support for configuring X resources.
Diffstat (limited to 'modules')
-rw-r--r--modules/default.nix1
-rw-r--r--modules/xresources.nix43
2 files changed, 44 insertions, 0 deletions
diff --git a/modules/default.nix b/modules/default.nix
index 340cfefebac..57f5c5c27cf 100644
--- a/modules/default.nix
+++ b/modules/default.nix
@@ -27,6 +27,7 @@ let
./services/udiskie.nix
./services/xscreensaver.nix
./systemd.nix
+ ./xresources.nix
./xsession.nix
];
diff --git a/modules/xresources.nix b/modules/xresources.nix
new file mode 100644
index 00000000000..43e8ff1c899
--- /dev/null
+++ b/modules/xresources.nix
@@ -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
+ );
+ };
+}