#!/usr/bin/env bash # fix-gtk4-dark.sh — point ~/.config/gtk-4.0/gtk.css at the dark Breeze # GTK4 stylesheet so GTK4/libadwaita apps follow the dark desktop theme. # # Background: KDE's GTK sync (kde-gtk-config) symlinks gtk.css to the # LIGHT Breeze stylesheet. GTK loads that file at user priority, which # overrides libadwaita's dark mode, so GTK4 apps render light no matter # what. KDE may rewrite the symlink whenever "Apply" is hit on the # GNOME/GTK Application Style settings page — re-run this script if # GTK4 apps go light again. Restart affected apps to pick up the change. set -euo pipefail dark=/usr/share/themes/Breeze/gtk-4.0/gtk-dark.css target="$HOME/.config/gtk-4.0/gtk.css" if [ ! -f "$dark" ]; then echo "error: $dark not found (is breeze-gtk installed?)" >&2 exit 1 fi if [ "$(readlink -f "$target" 2>/dev/null)" = "$dark" ]; then echo "already fixed: $target -> $dark" exit 0 fi mkdir -p "${target%/*}" ln -sfn "$dark" "$target" echo "fixed: $target -> $dark" echo "restart GTK4 apps to pick up the dark stylesheet"