final version
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
# modules/theming.nix
|
||||
# Visual theming: fonts, GTK/Qt themes, cursors, icons
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
@@ -13,16 +18,16 @@
|
||||
nerd-fonts.jetbrains-mono
|
||||
|
||||
# Additional fonts for full coverage
|
||||
inter # Modern UI font
|
||||
noto-fonts # Wide Unicode coverage
|
||||
noto-fonts-cjk-sans # Chinese, Japanese, Korean
|
||||
noto-fonts-emoji # Color emoji
|
||||
inter # Modern UI font
|
||||
noto-fonts # Wide Unicode coverage
|
||||
noto-fonts-cjk-sans # Chinese, Japanese, Korean
|
||||
noto-fonts-color-emoji # Color emoji
|
||||
|
||||
# Optional nice fonts
|
||||
source-sans # Adobe Source Sans
|
||||
source-serif # Adobe Source Serif
|
||||
source-code-pro # Adobe Source Code
|
||||
fira-code # Alternative coding font with ligatures
|
||||
source-sans # Adobe Source Sans
|
||||
source-serif # Adobe Source Serif
|
||||
source-code-pro # Adobe Source Code
|
||||
fira-code # Alternative coding font with ligatures
|
||||
];
|
||||
|
||||
fontconfig = {
|
||||
@@ -30,9 +35,15 @@
|
||||
|
||||
# Default fonts
|
||||
defaultFonts = {
|
||||
sansSerif = [ "Inter" "Noto Sans" ];
|
||||
sansSerif = [
|
||||
"Inter"
|
||||
"Noto Sans"
|
||||
];
|
||||
serif = [ "Noto Serif" ];
|
||||
monospace = [ "JetBrainsMono Nerd Font" "JetBrains Mono" ];
|
||||
monospace = [
|
||||
"JetBrainsMono Nerd Font"
|
||||
"JetBrains Mono"
|
||||
];
|
||||
emoji = [ "Noto Color Emoji" ];
|
||||
};
|
||||
|
||||
@@ -51,38 +62,41 @@
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
environment.systemPackages = with pkgs; [
|
||||
# GTK themes
|
||||
adw-gtk3 # GTK3 theme matching libadwaita
|
||||
adwaita-icon-theme # GNOME icons (needed for many apps)
|
||||
adw-gtk3 # GTK3 theme matching libadwaita
|
||||
adwaita-icon-theme # GNOME icons (needed for many apps)
|
||||
|
||||
# Icon theme
|
||||
papirus-icon-theme # Modern, flat icons
|
||||
papirus-icon-theme # Modern, flat icons
|
||||
|
||||
# Cursor theme
|
||||
bibata-cursors # Modern cursor theme
|
||||
# Cursor theme (Adwaita cursor is included in adwaita-icon-theme above)
|
||||
|
||||
# Qt theming
|
||||
qt5ct # Qt5 configuration tool
|
||||
qt6ct # Qt6 configuration tool
|
||||
adwaita-qt # Adwaita theme for Qt5
|
||||
adwaita-qt6 # Adwaita theme for Qt6
|
||||
libsForQt5.qt5ct # Qt5 configuration tool
|
||||
kdePackages.qt6ct # Qt6 configuration tool
|
||||
|
||||
# Theme tools
|
||||
dconf-editor # Edit GNOME/GTK settings
|
||||
nwg-look # GTK settings editor for Wayland
|
||||
dconf-editor # Edit GNOME/GTK settings
|
||||
nwg-look # GTK settings editor for Wayland
|
||||
];
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# Qt Theming Environment
|
||||
# Environment Variables for Theming
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
environment.sessionVariables = {
|
||||
# Qt platform integration
|
||||
QT_QPA_PLATFORMTHEME = "qt5ct";
|
||||
QT_QPA_PLATFORMTHEME = "qt6ct";
|
||||
|
||||
# Cursor theme (for apps that don't respect system settings)
|
||||
XCURSOR_THEME = "Bibata-Modern-Classic";
|
||||
# GTK theme (for apps that don't read dconf)
|
||||
GTK_THEME = "adw-gtk3-dark";
|
||||
|
||||
# Cursor theme
|
||||
XCURSOR_THEME = "Adwaita";
|
||||
XCURSOR_SIZE = "24";
|
||||
};
|
||||
|
||||
# Ensure cursor themes are found
|
||||
environment.pathsToLink = [ "/share/icons" ];
|
||||
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
# GTK Settings via dconf
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
@@ -91,22 +105,24 @@
|
||||
|
||||
programs.dconf = {
|
||||
enable = true;
|
||||
profiles.user.databases = [{
|
||||
settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
gtk-theme = "adw-gtk3-dark";
|
||||
icon-theme = "Papirus-Dark";
|
||||
cursor-theme = "Bibata-Modern-Classic";
|
||||
cursor-size = lib.gvariant.mkInt32 24;
|
||||
font-name = "Inter 11";
|
||||
document-font-name = "Inter 11";
|
||||
monospace-font-name = "JetBrainsMono Nerd Font 10";
|
||||
profiles.user.databases = [
|
||||
{
|
||||
settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
gtk-theme = "adw-gtk3-dark";
|
||||
icon-theme = "Papirus-Dark";
|
||||
cursor-theme = "Adwaita";
|
||||
cursor-size = lib.gvariant.mkInt32 24;
|
||||
font-name = "Inter 11";
|
||||
document-font-name = "Inter 11";
|
||||
monospace-font-name = "JetBrainsMono Nerd Font 10";
|
||||
};
|
||||
"org/gnome/desktop/wm/preferences" = {
|
||||
titlebar-font = "Inter Bold 11";
|
||||
};
|
||||
};
|
||||
"org/gnome/desktop/wm/preferences" = {
|
||||
titlebar-font = "Inter Bold 11";
|
||||
};
|
||||
};
|
||||
}];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user