summaryrefslogtreecommitdiff
path: root/home-manager/theme-st.nix
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/theme-st.nix')
-rw-r--r--home-manager/theme-st.nix18
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";