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

67 lines
1.5 KiB
Nix
Raw Normal View History

2023-03-27 09:28:51 +02:00
{ inputs, config, lib, pkgs, ... }:
with lib;
with lib.my;
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 {
url =
"https://github.com/SylEleuth/gruvbox-plus-icon-pack/releases/download/v${version}/gruvbox-plus-icon-pack-${version}.zip";
sha256 = "1n3hqwk1mqaj8vbmy0pqbiq6v5jqrhmhin506xbpnccl28f907j0";
};
dontUnpack = true;
installPhase = ''
mkdir -p $out
${pkgs.unzip}/bin/unzip $src -d $out/
'';
};
2023-03-27 09:28:51 +02:00
in {
options.modules.desktop.themes.gtk = { enable = mkBoolOpt false; };
config = mkIf cfg.enable {
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 = {
package = pkgs.unstable.paper-icon-theme;
name = "Paper";
};
theme = {
package = pkgs.unstable.adw-gtk3;
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 = {
"gtk-3.0/gtk.css" = { source = ./gtk.css; };
"gtk-4.0/gtk.css" = { source = ./gtk.css; };
};
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 = {
2023-05-17 05:53:52 +02:00
package = pkgs.unstable.paper-icon-theme;
2023-03-27 09:28:51 +02:00
name = "Paper";
size = 24;
gtk.enable = true;
x11.enable = true;
};
};
};
};
}