Modules/Niri: Set Qt theme

This commit is contained in:
2026-07-21 11:38:58 +02:00
parent 990d78ca32
commit e7cfee0c19
+94 -29
View File
@@ -74,8 +74,58 @@ in {
}; };
}; };
qt = let
qtConfig = qtct: {
Appearance = {
icon_theme = color.iconTheme;
standard_dialogs = "xdgdesktopportal";
style = "kvantum";
custom_palette = true;
color_scheme_path = "${config.home.homeDirectory}/.config/${qtct}/colors/catppuccin-mocha-mauve.conf";
# color_scheme_path = "${pkgs.catppuccin-qt5ct}/share/${qtct}/colors/catppuccin-mocha-mauve.conf";
};
Fonts = {
fixed = color.font;
general = nixosConfig.fonts.fontconfig.defaultFonts.sansSerif;
};
};
in {
enable = true;
platformTheme.name = "qtct";
# style.name = "kvantum";
kvantum = {
enable = true;
themes = with pkgs; [
(catppuccin-kvantum.override {
variant = "mocha";
accent = "mauve";
})
];
settings = {
General.theme = "catppuccin-mocha-mauve";
};
};
qt5ctSettings = qtConfig "qt5ct";
qt6ctSettings = qtConfig "qt6ct";
};
xdg.configFile = {
"qt5ct/colors/catppuccin-mocha-mauve.conf".source = "${pkgs.catppuccin-qt5ct}/share/qt5ct/colors/catppuccin-mocha-mauve.conf";
"qt6ct/colors/catppuccin-mocha-mauve.conf".source = "${pkgs.catppuccin-qt5ct}/share/qt6ct/colors/catppuccin-mocha-mauve.conf";
"dolphinrc".source = (pkgs.formats.ini {}).generate "dolphinrc" {
Icons.Theme = color.iconTheme;
UiSettings.ColorScheme = "*";
};
};
# Disable Niri's kde auth agent and start gnome auth agent instead # Disable Niri's kde auth agent and start gnome auth agent instead
systemd.user.services.niri-flake-polkit = lib.mkForce {}; systemd.user.services.niri-flake-polkit = lib.mkForce {};
# TODO: Module
systemd.user.services.polkit-gnome-authentication-agent-1 = { systemd.user.services.polkit-gnome-authentication-agent-1 = {
Unit = { Unit = {
Description = "polkit-gnome-authentication-agent-1"; Description = "polkit-gnome-authentication-agent-1";
@@ -99,6 +149,7 @@ in {
# Link theme for flatpak # Link theme for flatpak
".themes/${config.gtk.theme.name}".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}"; ".themes/${config.gtk.theme.name}".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}";
# TODO: Module
".config/waypaper/config.ini".text = lib.generators.toINI {} { ".config/waypaper/config.ini".text = lib.generators.toINI {} {
Settings = { Settings = {
use_xdg_state = true; use_xdg_state = true;
@@ -135,8 +186,9 @@ in {
}; };
sessionVariables = { sessionVariables = {
QT_QPA_PLATFORMTHEME = "gtk3"; # For Noctalia # QT_QPA_PLATFORMTHEME = "gtk3"; # For Noctalia
GDK_BACKEND = "wayland,x11"; # For screen sharing # GDK_BACKEND = "wayland,x11"; # For screen sharing
GDK_BACKEND = "wayland";
}; };
pointerCursor = { pointerCursor = {
@@ -155,14 +207,24 @@ in {
waypaper waypaper
wtype # For elephant wtype # For elephant
# GTK apps (look good and work well with xdg portals) # GTK
nautilus # Fallback file chooser used by xdg-desktop-portal-gnome nautilus # Fallback file chooser used by xdg-desktop-portal-gnome
# Catppuccin-GTK theme
sassc sassc
gtk-engine-murrine gtk-engine-murrine
gnome-themes-extra gnome-themes-extra
# Qt
libsForQt5.qtstyleplugin-kvantum
kdePackages.qtstyleplugin-kvantum
libsForQt5.qt5ct
kdePackages.qt6ct
kdePackages.dolphin
kdePackages.dolphin-plugins
kdePackages.qtsvg
kdePackages.kio
kdePackages.kio-fuse
kdePackages.kio-extras
# In case we fallback to the default niri config/keybindings # In case we fallback to the default niri config/keybindings
alacritty alacritty
fuzzel fuzzel
@@ -170,6 +232,7 @@ in {
}; };
services = { services = {
# TODO: Module
dunst = { dunst = {
enable = true; enable = true;
@@ -205,6 +268,7 @@ in {
}; };
programs = { programs = {
# TODO: Module
walker = { walker = {
enable = true; enable = true;
runAsService = true; runAsService = true;
@@ -461,13 +525,13 @@ in {
prefer-no-csd = true; # Disable client-side decorations (e.g. window titlebars) prefer-no-csd = true; # Disable client-side decorations (e.g. window titlebars)
spawn-at-startup = [ spawn-at-startup = [
{ # {
argv = [ # argv = [
"ashell" # "ashell"
"-c" # "-c"
"${config.paths.dotfiles}/ashell/config.toml" # "${config.paths.dotfiles}/ashell/config.toml"
]; # ];
} # }
{ {
argv = [ argv = [
"waypaper" "waypaper"
@@ -773,6 +837,7 @@ in {
# TODO: Move values to config option and set in home/christoph/niri.nix # TODO: Move values to config option and set in home/christoph/niri.nix
binds = with config.lib.niri.actions; let binds = with config.lib.niri.actions; let
# TODO: Module
sessionMenu = mylib.rofi.mkMenu { sessionMenu = mylib.rofi.mkMenu {
prompt = "Session"; prompt = "Session";
layers = [ layers = [
@@ -982,23 +1047,23 @@ in {
# title = "Take a screenshot of the current window."; # title = "Take a screenshot of the current window.";
# }; # };
# }; # };
# "Mod+Ctrl+S" = { "Mod+Ctrl+S" = {
# action.screenshot-screen = { action.screenshot-screen = {
# write-to-disk = true; write-to-disk = true;
# show-pointer = false; show-pointer = false;
# }; };
# hotkey-overlay = { hotkey-overlay = {
# title = "Take a screenshot of the current screen."; title = "Take a screenshot of the current screen.";
# }; };
# }; };
# "Mod+Shift+S" = { "Mod+Shift+S" = {
# action.screenshot = { action.screenshot = {
# show-pointer = false; show-pointer = false;
# }; };
# hotkey-overlay = { hotkey-overlay = {
# title = "Take a screenshot of a region."; title = "Take a screenshot of a region.";
# }; };
# }; };
# Niri # Niri
"Mod+Shift+Slash" = { "Mod+Shift+Slash" = {