feat: add gtk theme

This commit is contained in:
oddlama 2023-09-14 18:52:30 +02:00
parent ce339bb50f
commit c4e9c34769
No known key found for this signature in database
GPG key ID: 14EFE510775FE39A
4 changed files with 97 additions and 43 deletions

View file

@ -4,11 +4,37 @@
... ...
}: { }: {
fonts = { fonts = {
fontconfig.defaultFonts = { fontconfig = {
sansSerif = lib.mkBefore ["Segoe UI"]; # Always prefer emojis even if the original font would provide a glyph
#serif = []; localConf = ''
monospace = ["FiraCode Nerd Font"]; <?xml version="1.0"?>
emoji = ["Segoe UI Emoji" "Noto Fonts Emoji"]; <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias binding="weak">
<family>monospace</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
<alias binding="weak">
<family>sans-serif</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
<alias binding="weak">
<family>serif</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
</fontconfig>
'';
defaultFonts = {
sansSerif = lib.mkBefore ["Segoe UI"];
monospace = ["FiraCode Nerd Font"];
emoji = ["Segoe UI Emoji" "Noto Fonts Emoji"];
};
}; };
packages = with pkgs; [ packages = with pkgs; [

View file

@ -10,6 +10,7 @@
./firefox.nix ./firefox.nix
./kitty.nix ./kitty.nix
./signal.nix ./signal.nix
./theme.nix
# XXX: disabled for the time being because gaming under nvidia+wayland has too many bugs # XXX: disabled for the time being because gaming under nvidia+wayland has too many bugs
# XXX: retest this in the future. Problems were flickering under gles, black screens and refresh issues under vulkan, black wine windows. # XXX: retest this in the future. Problems were flickering under gles, black screens and refresh issues under vulkan, black wine windows.
# ./sway.nix # ./sway.nix
@ -27,6 +28,7 @@
feh feh
pinentry # For yubikey pinentry # For yubikey
sirula sirula
gamescope
thunderbird thunderbird
xdg-utils xdg-utils
xdragon xdragon
@ -56,44 +58,6 @@
persistence."/persist".directories = [ persistence."/persist".directories = [
"projects" "projects"
]; ];
pointerCursor = {
gtk.enable = true;
name = "Adwaita-dark";
package = pkgs.gnome.adwaita-icon-theme;
# TODO XXX: not working
size = 24;
};
};
# Needed to fix cursors in firefox under wayland, see https://github.com/NixOS/nixpkgs/issues/207339#issuecomment-1374497558
gtk = {
enable = true;
theme = {
package = pkgs.gnome.gnome-themes-extra;
name = "Adwaita-dark";
};
gtk2.extraConfig = "gtk-application-prefer-dark-theme = true";
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = true;
gtk-cursor-theme-size = 24;
gtk-enable-animations = true;
gtk-xft-antialias = 1;
gtk-xft-dpi = 160;
gtk-xft-hinting = 1;
gtk-xft-hintstyle = "hintslight";
gtk-xft-rgba = "rgb";
};
};
qt = {
enable = true;
platformTheme = "gnome";
style = {
name = "adwaita";
package = pkgs.adwaita-qt;
};
}; };
xdg.mimeApps.enable = true; xdg.mimeApps.enable = true;

View file

@ -7,6 +7,7 @@
}: let }: let
inherit inherit
(lib) (lib)
escapeShellArg
mapAttrs' mapAttrs'
nameValuePair nameValuePair
; ;
@ -167,6 +168,9 @@ in {
xset mouse 1 0 xset mouse 1 0
xset r rate 235 60 xset r rate 235 60
[[ -f "$HOME"/${escapeShellArg config.xsession.scriptPath} ]] \
&& source "$HOME"/${escapeShellArg config.xsession.scriptPath}
exec i3 exec i3
''; '';
} }

View file

@ -0,0 +1,60 @@
{pkgs, ...}: {
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 32;
};
xresources.properties = {
"Xft.hinting" = true;
"Xft.antialias" = true;
"Xft.autohint" = false;
"Xft.lcdfilter" = "lcddefault";
"Xft.hintstyle" = "hintfull";
"Xft.rgba" = "rgb";
};
gtk = let
gtk34extraConfig = {
gtk-application-prefer-dark-theme = 1;
gtk-cursor-theme-size = 32;
gtk-enable-animations = true;
gtk-xft-antialias = 1;
gtk-xft-dpi = 160; # XXX: delete for wayland?
gtk-xft-hinting = 1;
gtk-xft-hintstyle = "hintfull";
gtk-xft-rgba = "rgb";
};
in {
enable = true;
font = {
package = pkgs.segoe-ui-ttf;
name = "Segoe UI";
};
iconTheme = {
name = "WhiteSur-dark";
package = pkgs.whitesur-icon-theme;
};
theme = {
name = "WhiteSur-dark-solid";
package = pkgs.whitesur-gtk-theme;
};
gtk2.extraConfig = "gtk-application-prefer-dark-theme = true";
gtk3.extraConfig = gtk34extraConfig;
gtk4.extraConfig = gtk34extraConfig;
};
qt = {
enable = true;
platformTheme = "gnome";
style = {
name = "adwaita";
package = pkgs.adwaita-qt;
};
};
}