mirror of
https://github.com/ItsDrike/nixdots
synced 2024-12-25 17:24:35 +00:00
149 lines
3.9 KiB
Nix
149 lines
3.9 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (lib) mkEnableOption mkOption types;
|
|
in {
|
|
options.myOptions.home-manager.theme = {
|
|
gtk = {
|
|
enable = mkEnableOption "GTK theming optionss";
|
|
usePortal = mkEnableOption "native desktop portal use for filepickers";
|
|
|
|
theme = {
|
|
name = mkOption {
|
|
type = types.str;
|
|
default = "Tokyonight-Dark";
|
|
description = "The name for the GTK theme package";
|
|
};
|
|
|
|
package = mkOption {
|
|
type = types.package;
|
|
description = "The theme package to be used for GTK programs";
|
|
default = pkgs.tokyo-night-gtk;
|
|
};
|
|
};
|
|
|
|
iconTheme = {
|
|
name = mkOption {
|
|
type = types.str;
|
|
description = "The name for the icon theme that will be used for GTK programs";
|
|
default = "Papirus-Dark";
|
|
};
|
|
|
|
package = mkOption {
|
|
type = types.package;
|
|
description = "The GTK icon theme package to be used";
|
|
default = pkgs.catppuccin-papirus-folders.override {
|
|
accent = "blue";
|
|
flavor = "mocha";
|
|
};
|
|
};
|
|
};
|
|
|
|
font = {
|
|
name = mkOption {
|
|
type = types.str;
|
|
description = "The name of the font that will be used for GTK applications";
|
|
default = "Noto Sans"; # Lexend
|
|
};
|
|
|
|
size = mkOption {
|
|
type = types.int;
|
|
description = "The size of the font";
|
|
default = 10; # 10
|
|
};
|
|
};
|
|
};
|
|
|
|
qt = {
|
|
forceGtk = mkOption {
|
|
type = types.bool;
|
|
default = false;
|
|
description = ''
|
|
Whether to force QT applications to try and use the GTK theme.
|
|
|
|
If false, qtct platform theme & Kvantum will be used instead.
|
|
'';
|
|
};
|
|
|
|
kvantumTheme = {
|
|
name = mkOption {
|
|
type = types.str;
|
|
default = "Catppuccin-Mocha-Blue";
|
|
description = ''
|
|
The name for the QT kvantum theme.
|
|
|
|
This needs to match the directory containing the kvconfig & svg files
|
|
for selected theme. The package should expose these in /share/Kvantum.
|
|
|
|
This has no effect if forceGtk is set.
|
|
'';
|
|
};
|
|
|
|
package = mkOption {
|
|
type = types.package;
|
|
description = ''
|
|
The theme package to be used for QT kvantum theme.
|
|
|
|
This needs to expose a directory in /share/Kvantum with the
|
|
kvconfig & svg files. The name of this directory should match
|
|
the kvantumTheme.name option.
|
|
|
|
This has no effect if forceGtk is set.
|
|
'';
|
|
default = pkgs.catppuccin-kvantum.override {
|
|
variant = "Mocha";
|
|
accent = "Blue";
|
|
};
|
|
};
|
|
};
|
|
|
|
iconTheme = {
|
|
name = mkOption {
|
|
type = types.str;
|
|
description = ''
|
|
The name for the icon theme that will be used for QT programs.
|
|
|
|
This has no effect if forceGtk is set.
|
|
'';
|
|
default = "Papirus-Dark";
|
|
};
|
|
|
|
package = mkOption {
|
|
type = types.package;
|
|
description = ''
|
|
The QT icon theme package to be used.
|
|
|
|
This has no effect if forceGtk is set.
|
|
'';
|
|
default = pkgs.catppuccin-papirus-folders.override {
|
|
accent = "blue";
|
|
flavor = "mocha";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
cursor = {
|
|
name = mkOption {
|
|
type = types.str;
|
|
default = "BreezeX-RosePine-Linux";
|
|
description = "The name of the cursor inside the package";
|
|
};
|
|
|
|
package = mkOption {
|
|
type = types.package;
|
|
default = pkgs.rose-pine-cursor;
|
|
description = "The package providing the cursors";
|
|
};
|
|
|
|
size = mkOption {
|
|
type = types.int;
|
|
default = 24;
|
|
description = "The size of the cursor";
|
|
};
|
|
};
|
|
};
|
|
}
|