✨ feat(modules): Add iconTheme module
Allows setting iconTheme globally.
This commit is contained in:
parent
bfd3d6c289
commit
83f4dbff57
5 changed files with 67 additions and 13 deletions
|
@ -48,6 +48,7 @@
|
|||
modules = [
|
||||
inputs.rose-pine.homeManagerModules.rose-pine
|
||||
./modules/home/shellAbbrs.nix
|
||||
./modules/home/iconTheme.nix
|
||||
./home
|
||||
];
|
||||
};
|
||||
|
|
|
@ -6,6 +6,11 @@
|
|||
|
||||
rose-pine.pointerCursor.enable = true;
|
||||
|
||||
home.iconTheme = {
|
||||
package = pkgs.kora-icon-theme;
|
||||
name = "kora";
|
||||
};
|
||||
|
||||
fonts.fontconfig.defaultFonts.monospace = [ "Maple Mono NF" ];
|
||||
|
||||
imports = [
|
||||
|
|
|
@ -1,13 +1,8 @@
|
|||
{ pkgs, ... }:
|
||||
{ ... }:
|
||||
{
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
rose-pine.enable = true;
|
||||
|
||||
iconTheme = {
|
||||
package = pkgs.kora-icon-theme;
|
||||
name = "kora";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
|
@ -12,12 +11,6 @@
|
|||
# drop-in weirdness.
|
||||
rose-pine.enable = false;
|
||||
|
||||
# TODO: Set this globally and import it.
|
||||
iconTheme = {
|
||||
package = pkgs.kora-icon-theme;
|
||||
name = "Kora";
|
||||
};
|
||||
|
||||
settings = lib.mkMerge [
|
||||
### Rose Pine ###
|
||||
# TODO: Set this conditionally based on current theme.
|
||||
|
|
60
modules/home/iconTheme.nix
Normal file
60
modules/home/iconTheme.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
# https://github.com/nix-community/home-manager/blob/master/modules/misc/gtk.nix
|
||||
iconThemeType = types.submodule {
|
||||
options = {
|
||||
package = mkOption {
|
||||
type = types.nullOr types.package;
|
||||
default = null;
|
||||
example = literalExpression "pkgs.gnome.adwaita-icon-theme";
|
||||
description = ''
|
||||
Package providing the icon theme. This package will be installed
|
||||
to your profile. If `null` then the theme
|
||||
is assumed to already be available in your profile.
|
||||
'';
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
example = "Adwaita";
|
||||
description = "The name of the icon theme within the package.";
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
options = {
|
||||
home = {
|
||||
iconTheme = mkOption {
|
||||
type = types.nullOr iconThemeType;
|
||||
default = null;
|
||||
description = ''
|
||||
The icon theme to use.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config =
|
||||
let
|
||||
cfg = config.home.iconTheme;
|
||||
in
|
||||
{
|
||||
gtk = mkIf config.gtk.enable (mkDefault {
|
||||
iconTheme = {
|
||||
name = cfg.name;
|
||||
package = cfg.package;
|
||||
};
|
||||
});
|
||||
|
||||
services.dunst = mkIf config.services.dunst.enable (mkDefault {
|
||||
iconTheme = {
|
||||
name = cfg.name;
|
||||
package = cfg.package;
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue