diff --git a/modules/xresources.nix b/modules/xresources.nix index 86084380..634314f3 100644 --- a/modules/xresources.nix +++ b/modules/xresources.nix @@ -28,17 +28,40 @@ in "Emacs*toolBar" = 0; }; description = '' - X server resources that should be set. If null, - then this feature is disabled and no + X server resources that should be set. + If this and all other xresources options are + null, then this feature is disabled and no + ~/.Xresources link is produced. + ''; + }; + + xresources.extraConfig = mkOption { + type = types.lines; + default = ""; + example = literalExample '' + builtins.readFile ( + pkgs.fetchFromGitHub { + owner = "solarized"; + repo = "xresources"; + rev = "025ceddbddf55f2eb4ab40b05889148aab9699fc"; + sha256 = "0lxv37gmh38y9d3l8nbnsm1mskcv10g3i83j0kac0a2qmypv1k9f"; + } + "/Xresources.dark" + ) + ''; + description = '' + Additional X server resources contents. + If this and all other xresources options are + null, then this feature is disabled and no ~/.Xresources link is produced. ''; }; }; - config = mkIf (cfg.properties != null) { + config = mkIf (cfg.properties != null || cfg.extraConfig != "") { home.file.".Xresources".text = - concatStringsSep "\n" ( - mapAttrsToList formatLine cfg.properties + concatStringsSep "\n" ([] + ++ (optional (cfg.extraConfig != "") cfg.extraConfig) + ++ (optionals (cfg.properties != null) (mapAttrsToList formatLine cfg.properties)) ) + "\n"; }; }