diff options
| -rw-r--r-- | home-manager/theme-st.nix | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/home-manager/theme-st.nix b/home-manager/theme-st.nix index 01c08ec..0a2cf34 100644 --- a/home-manager/theme-st.nix +++ b/home-manager/theme-st.nix @@ -1,20 +1,24 @@ { config, lib, pkgs, ... }: let cfg = config.programs._st; toString = x: if lib.isBool x then (if x then "true" else "false") else builtins.toString x; - generateXftFontString = name: attrs: + # http://freedesktop.org/software/fontconfig/fontconfig-user.html + generateFontConfigString = name: attrs: name + lib.optionalString (attrs != {}) ( ":" + lib.concatStringsSep ":" ( lib.mapAttrsToList (key: value: "${key}=${toString value}") attrs ) ) ; - themed-st = pkgs.st.overrideAttrs (old: { - nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ pkgs.makeWrapper ]; - postInstall = (old.postInstall or "") + '' - wrapProgram $out/bin/st \ - --add-flags '-f"${generateXftFontString cfg.font.name cfg.font.attrs}"' + themed-st = pkgs.stdenv.mkDerivation { + name = "themed-st"; + dontUnpack = true; + buildInputs = [ pkgs.makeWrapper ]; + installPhase = '' + mkdir -p $out/bin + makeWrapper ${pkgs.st}/bin/st $out/bin/st \ + --add-flags '-f"${generateFontConfigString cfg.font.name cfg.font.attrs}"' ''; - }); + }; in { options.programs._st = { enable = lib.mkEnableOption "enables theming st with home manager"; |
