nixos-configs/modules/desktop/themes/gtk.nix

76 lines
1.5 KiB
Nix
Raw Normal View History

2024-08-20 22:58:24 +02:00
{
config,
lib,
pkgs,
...
}:
2023-03-27 09:28:51 +02:00
2024-03-01 17:11:19 +01:00
let
cfg = config.modules.desktop.themes.gtk;
gruvboxPlus = pkgs.stdenv.mkDerivation rec {
name = "gruvbox-plus";
version = "5.1";
src = pkgs.fetchurl {
2024-08-20 22:58:24 +02:00
url = "https://github.com/SylEleuth/gruvbox-plus-icon-pack/releases/download/v${version}/gruvbox-plus-icon-pack-${version}.zip";
2024-03-01 17:11:19 +01:00
sha256 = "1n3hqwk1mqaj8vbmy0pqbiq6v5jqrhmhin506xbpnccl28f907j0";
};
dontUnpack = true;
installPhase = ''
mkdir -p $out
${pkgs.unzip}/bin/unzip $src -d $out/
'';
};
2024-08-20 22:58:24 +02:00
in
{
options.modules.desktop.themes.gtk = {
enable = lib.my.mkBoolOpt false;
};
2023-03-27 09:28:51 +02:00
2024-08-20 22:58:24 +02:00
config = lib.mkIf cfg.enable {
2023-03-27 09:28:51 +02:00
systemd.packages = [ pkgs.dconf ];
services.dbus.packages = with pkgs; [ dconf ];
home-manager.users.${config.user.name} = {
gtk = {
enable = true;
2024-03-01 17:11:19 +01:00
cursorTheme = {
2024-10-13 22:52:21 +02:00
package = pkgs.paper-icon-theme;
2024-03-01 17:11:19 +01:00
name = "Paper";
};
theme = {
2024-10-13 22:52:21 +02:00
package = pkgs.adw-gtk3;
2024-03-01 17:11:19 +01:00
name = "adw-gtk3";
};
iconTheme = {
package = gruvboxPlus;
name = "GruvboxPlus";
};
2023-03-27 09:28:51 +02:00
};
2024-03-01 17:11:19 +01:00
xdg.configFile = {
2024-08-20 22:58:24 +02:00
"gtk-3.0/gtk.css" = {
source = ./gtk.css;
};
"gtk-4.0/gtk.css" = {
source = ./gtk.css;
};
2024-03-01 17:11:19 +01:00
};
2023-03-27 09:28:51 +02:00
2024-03-01 17:11:19 +01:00
home = {
2023-03-27 09:28:51 +02:00
pointerCursor = {
2024-10-13 22:52:21 +02:00
package = pkgs.paper-icon-theme;
2023-03-27 09:28:51 +02:00
name = "Paper";
size = 24;
gtk.enable = true;
x11.enable = true;
};
};
};
};
}