aboutsummaryrefslogtreecommitdiffstats
path: root/modules/by-name/gt/gtk/module.nix
blob: 444420772f873d17c33dec439f1f86d727a02a2b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# nixos-config - My current NixOS configuration
#
# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
# SPDX-License-Identifier: GPL-3.0-or-later
#
# This file is part of my nixos-config.
#
# You should have received a copy of the License along with this program.
# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
{
  config,
  pkgs,
  lib,
  packageSets,
  libraries,
  ...
}: let
  cfg = config.soispha.gtk;

  homeConfig = config.home-manager.users.soispha;
in {
  options.soispha.gtk = {
    enable = libraries.base.options.mkEnable "gtk themes";
  };

  config.home-manager.users.soispha = lib.mkIf cfg.enable {
    gtk = {
      enable = true;
      theme = {
        # NOTE: The `nordic` package pulls the whole plasma shell, to copy some stuff from a plasma theme :/ <2026-05-29>
        # NOTE: Unstable removed the nordic theme, as it also supported gtk2, which is
        # insecure. So we use stable until unstable adds it again. <2026-08-13>
        package = packageSets.stable.nordic;
        name = "Nordic";
      };
      cursorTheme = {
        package = pkgs.nordzy-cursor-theme;
        name = "Nordzy-cursors";
      };
      iconTheme = {
        package = pkgs.nordzy-icon-theme;
        name = "Nordzy-icon";
      };
      font = {
        name = "Noto Sans";
        size = 10;
      };
      gtk2 = {
        configLocation = "${homeConfig.xdg.configHome}/gtk-2.0/gtkrc";
        #      extraConfig = ''
        #        gtk-enable-animations=1
        #        gtk-primary-button-warps-slider=0
        #        gtk-toolbar-style=3
        #        gtk-menu-images=1
        #        gtk-button-images=1
        #
        #      '';
      };
      gtk3 = {
        # extraConfig = ''
        #        gtk-button-images=true
        #        gtk-decoration-layout=icon:minimize,maximize,close
        #        gtk-enable-animations=true
        #        gtk-menu-images=true
        #        gtk-primary-button-warps-slider=false
        #        gtk-toolbar-style=3
        #        #gtk-modules=window-decorations-gtk-module:colorreload-gtk-module
        #      '';
        extraCss = "";
      };
      gtk4 = {
        theme = homeConfig.gtk.theme;
        #      extraConfig = ''
        #        gtk-application-prefer-dark-theme=true
        #        gtk-decoration-layout=icon:minimize,maximize,close
        #        gtk-enable-animations=true
        #        gtk-primary-button-warps-slider=false
        #      '';
      };
    };
  };
}