summaryrefslogtreecommitdiff
path: root/home-manager/theme-st.nix
diff options
context:
space:
mode:
authorTim Keller <tjk@tjkeller.xyz>2025-08-30 12:31:28 -0500
committerTim Keller <tjk@tjkeller.xyz>2025-08-30 12:31:28 -0500
commit9da942ba47d34210e86a1a709e802eda5c3b95db (patch)
treef7434c4b4c9b8e5271220c11f9b802815c3519c7 /home-manager/theme-st.nix
parentc3c3d6f1fd19a5da015c9a9d3ae5c54f2d177be0 (diff)
downloadnixos-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.nix49
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 ];
};
}