Compare commits

...

3 commits

Author SHA1 Message Date
edd3ffff2d
hyprland/exec.nix: set cursor 2025-04-06 14:03:58 +02:00
e03b8873cb
style: big gtk rework
I hate gtk
2025-04-06 14:03:46 +02:00
304f14ac57
thunar: add gvfs 2025-04-06 14:03:18 +02:00
5 changed files with 82 additions and 20 deletions

View file

@ -0,0 +1,23 @@
{
config,
lib,
pkgs,
...
}: {
programs.thunar = {
enable = true;
plugins = builtins.attrValues {
inherit
(pkgs.xfce)
thunar-volman
thunar-vcs-plugin
thunar-archive-plugin
thunar-media-tags-plugin
;
};
};
services.gvfs = {
enable = true;
package = pkgs.gvfs;
};
}

View file

@ -58,7 +58,6 @@ in {
(pkgs) (pkgs)
material-icons material-icons
material-design-icons material-design-icons
papirus-icon-theme
lexend lexend
noto-fonts noto-fonts
noto-fonts-cjk-sans noto-fonts-cjk-sans

View file

@ -7,9 +7,9 @@
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) str package; inherit (lib.types) str package;
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
cfg = config.modules.theme.gtk; cfg = config.modules.theming.gtk;
in { in {
options.modules.theme.gtk = { options.modules.theming.gtk = {
enable = mkEnableOption "Wether to enable GTK theming"; enable = mkEnableOption "Wether to enable GTK theming";
theme = { theme = {
name = mkOption { name = mkOption {
@ -32,7 +32,7 @@ in {
}; };
package = mkOption { package = mkOption {
description = "The GTK icon theme package"; description = "The GTK icon theme package";
default = pkgs.catppuccin-papirus-folders; default = pkgs.papirus-icon-theme;
type = package; type = package;
}; };
}; };
@ -40,5 +40,25 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
# NOTE: we need this or gtk breaks # NOTE: we need this or gtk breaks
programs.dconf.enable = true; programs.dconf.enable = true;
environment = {
systemPackages = builtins.attrValues {
inherit
(pkgs)
gruvbox-gtk-theme
papirus-icon-theme
;
};
variables = let
cursorSize = 32;
in {
GTK_THEME = "Gruvbox-Dark";
XCURSOR_THEME = "BreezeX-RosePine-Linux";
XCURSOR_SIZE = cursorSize;
HYPRCURSOR_THEME = "BreezeX-RosePine-Linux";
HYPRCURSOR_SIZE = cursorSize;
};
};
}; };
} }

View file

@ -7,9 +7,31 @@
inherit (lib.modules) mkMerge mkIf; inherit (lib.modules) mkMerge mkIf;
inherit (lib.options) mkEnableOption; inherit (lib.options) mkEnableOption;
cfg = config.modules.theming; cfg = config.modules.theming;
inherit (builtins) toString isBool;
inherit (lib) boolToString escape generators;
toGtk3Ini = generators.toINI {
mkKeyValue = key: value: let
value' =
if isBool value
then boolToString value
else toString value;
in "${escape ["="] key}=${value'}";
};
gtkIni = {
gtk-application-prefer-dark-theme = 1;
gtk-font-name = "Lexend 11";
gtk-icon-theme-name = "Papirus-Dark";
gtk-xft-antialias = 1;
gtk-xft-hinting = 1;
gtk-xft-hintstyle = "hintslight";
gtk-xft-rgba = "rgb";
gtk-cursor-theme-name = "BreezeX-RosePine-Linux";
gtk-theme-name = "Gruvbox-Dark";
};
in { in {
options.modules.theming = { options.modules.theming = {
gtk.enable = mkEnableOption "gtk theming";
qt.enable = mkEnableOption "qt theming"; qt.enable = mkEnableOption "qt theming";
}; };
config = mkMerge [ config = mkMerge [
@ -19,25 +41,23 @@ in {
inherit (pkgs) rose-pine-cursor; inherit (pkgs) rose-pine-cursor;
}; };
etc = { etc = {
"xdg/gtk-4.0/settings.ini".text = '' "xdg/gtk-4.0/settings.ini".text = toGtk3Ini {
[Settings] Settings = gtkIni;
gtk-application-prefer-dark-theme=true };
gtk-cursor-theme-name=BreezeX-RosePine-Linux "xdg/gtk-3.0/settings.ini".text = toGtk3Ini {
''; Settings = gtkIni;
};
"xdg/gtk-3.0/settings.ini".text = ''
[Settings]
gtk-application-prefer-dark-theme=true
gtk-cursor-theme-name=BreezeX-RosePine-Linux
'';
"xdg/gtk-2.0/gtkrc".text = '' "xdg/gtk-2.0/gtkrc".text = ''
gtk-cursor-theme-name = "BreezeX-RosePine-Linux" gtk-cursor-theme-name = BreezeX-RosePine-Linux
gtk-cursor-theme-size = 30 gtk-cursor-theme-size = 32
gtk-theme-name = Gruvbox-Dark
gtk-icon-theme-name = Papirus-Dark
gtk-font-name = Lexend 11
''; '';
"xdg/Xresources".text = '' "xdg/Xresources".text = ''
Xcursor.size: 30 Xcursor.size: 32
Xcursor.theme: BreezeX-RosePine-Linux Xcursor.theme: BreezeX-RosePine-Linux
''; '';
}; };

View file

@ -10,7 +10,7 @@ in {
# Hyprland settings # Hyprland settings
# Programs which get executed at Hyprland start. # Programs which get executed at Hyprland start.
exec-once = [ exec-once = [
# "hyprctl setcursor ${cursor.name} ${toString cursor.size}" "hyprctl setcursor ${pkgs.rose-pine-cursor} BreezeX-RosePine-Linux"
"[workspace special:keepassxc; silent;tile] ${pkgs.keepassxc}/bin/keepassxc" "[workspace special:keepassxc; silent;tile] ${pkgs.keepassxc}/bin/keepassxc"
"[workspace special:audio; silent;tile] ${pkgs.pwvucontrol}/bin/pwvucontrol" "[workspace special:audio; silent;tile] ${pkgs.pwvucontrol}/bin/pwvucontrol"