diff options
| author | Tim Keller <tjk@tjkeller.xyz> | 2025-12-15 21:41:25 -0600 |
|---|---|---|
| committer | Tim Keller <tjk@tjkeller.xyz> | 2025-12-15 21:41:25 -0600 |
| commit | f17695133828debe6e75c50968fc1e6da40e6e5b (patch) | |
| tree | 992b53efa6f6c5a8ba7fc74021d81d07002a48ab /home-manager/theme-st.nix | |
| parent | 5fe4339996ce84590656a67747e33dd3d51f3ea2 (diff) | |
| download | nixos-f17695133828debe6e75c50968fc1e6da40e6e5b.tar.xz nixos-f17695133828debe6e75c50968fc1e6da40e6e5b.zip | |
avoid rebuilding st in themed-st by creating a new derivation instead of overriding the unthemed derivation
Diffstat (limited to 'home-manager/theme-st.nix')
| -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"; |
