✨ 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 = [
|
modules = [
|
||||||
inputs.rose-pine.homeManagerModules.rose-pine
|
inputs.rose-pine.homeManagerModules.rose-pine
|
||||||
./modules/home/shellAbbrs.nix
|
./modules/home/shellAbbrs.nix
|
||||||
|
./modules/home/iconTheme.nix
|
||||||
./home
|
./home
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,6 +6,11 @@
|
||||||
|
|
||||||
rose-pine.pointerCursor.enable = true;
|
rose-pine.pointerCursor.enable = true;
|
||||||
|
|
||||||
|
home.iconTheme = {
|
||||||
|
package = pkgs.kora-icon-theme;
|
||||||
|
name = "kora";
|
||||||
|
};
|
||||||
|
|
||||||
fonts.fontconfig.defaultFonts.monospace = [ "Maple Mono NF" ];
|
fonts.fontconfig.defaultFonts.monospace = [ "Maple Mono NF" ];
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
|
|
@ -1,13 +1,8 @@
|
||||||
{ pkgs, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
rose-pine.enable = true;
|
rose-pine.enable = true;
|
||||||
|
|
||||||
iconTheme = {
|
|
||||||
package = pkgs.kora-icon-theme;
|
|
||||||
name = "kora";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
|
@ -12,12 +11,6 @@
|
||||||
# drop-in weirdness.
|
# drop-in weirdness.
|
||||||
rose-pine.enable = false;
|
rose-pine.enable = false;
|
||||||
|
|
||||||
# TODO: Set this globally and import it.
|
|
||||||
iconTheme = {
|
|
||||||
package = pkgs.kora-icon-theme;
|
|
||||||
name = "Kora";
|
|
||||||
};
|
|
||||||
|
|
||||||
settings = lib.mkMerge [
|
settings = lib.mkMerge [
|
||||||
### Rose Pine ###
|
### Rose Pine ###
|
||||||
# TODO: Set this conditionally based on current theme.
|
# 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