diff options
author | Tim Keller <tjk@tjkeller.xyz> | 2025-08-30 12:31:28 -0500 |
---|---|---|
committer | Tim Keller <tjk@tjkeller.xyz> | 2025-08-30 12:31:28 -0500 |
commit | 9da942ba47d34210e86a1a709e802eda5c3b95db (patch) | |
tree | f7434c4b4c9b8e5271220c11f9b802815c3519c7 /home-manager/theme-st.nix | |
parent | c3c3d6f1fd19a5da015c9a9d3ae5c54f2d177be0 (diff) | |
download | nixos-9da942ba47d34210e86a1a709e802eda5c3b95db.tar.xz nixos-9da942ba47d34210e86a1a709e802eda5c3b95db.zip |
refactor users activation. refactor home manager config to match nixos conf and move tjkeller archetypes to users/timmy. update many of the exising home manager configs to be nicer and better organized. profile archetypes now include homeconfigs which can be enabled per user, and are setup using a new mkProfileArchetype function.
Diffstat (limited to 'home-manager/theme-st.nix')
-rw-r--r-- | home-manager/theme-st.nix | 49 |
1 files changed, 34 insertions, 15 deletions
diff --git a/home-manager/theme-st.nix b/home-manager/theme-st.nix index 0a06cd0..aa4ddbb 100644 --- a/home-manager/theme-st.nix +++ b/home-manager/theme-st.nix @@ -1,22 +1,41 @@ -{ config, lib, pkgs, ... }: { - options = { - theme.st = { - enable = lib.mkEnableOption "enables theming st with home manager"; - font = lib.mkOption { +{ config, lib, pkgs, ... }: let + cfg = config.programs._st; + generateXftFontString = name: attrs: + name + lib.optionalString lib.attrIsEmpty attrs ( + ":" + builtins.concatStringsSep ":" ( + lib.mapAttrsToList (key: value: "${key}=${value}") attrs + ) + ) + ; + themed-st = pkgs.st.overrideAttrs (old: { + buildInputs = old.buildInputs or [] ++ [ pkgs.makeWrapper ]; + postInstall = old.postInstall or "" + '' + wrapProgram $out/bin/st \ + --add-flags '-f"${generateXftFontString cfg.font.name cfg.font.attrs}"' + ''; + }); +in { + options.programs._st = { + enable = lib.mkEnableOption "enables theming st with home manager"; + font = { + name = lib.mkOption { type = lib.types.str; - default = "JetBrainsMonoNL Nerd Font Mono:size=12:antialias=true:autohint=true"; + example = "JetBrainsMonoNL Nerd Font Mono"; + default = "monospace"; + }; + attrs = { + type = lib.types.attrs; + default = {}; + example = { + size = 12; + antialias = true; + autohint = true; + }; }; }; }; - config = let - themed-st = pkgs.st.overrideAttrs (old: { - buildInputs = old.buildInputs or [] ++ [ pkgs.makeWrapper ]; - postInstall = old.postInstall or "" + '' - wrapProgram $out/bin/st \ - --add-flags '-f"${config.theme.st.font}"' - ''; - }); - in lib.mkIf config.theme.enable { + + config = lib.mkIf cfg.enable { home.packages = [ themed-st ]; }; } |