Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions modules/theme/GtkGenerator.qml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ QtObject {
const surfaceContainer = fmt(Colors.surfaceContainer)

let css = "/* GTK Colors generated by Ambxst */\n\n"

css += `@define-color accent_color ${primary};\n`
css += `@define-color accent_fg_color ${onPrimary};\n`
css += `@define-color accent_bg_color ${primary};\n`
Expand All @@ -35,8 +35,8 @@ QtObject {
css += `@define-color view_fg_color ${onBackground};\n`
css += `@define-color card_bg_color ${surfaceContainer};\n`
css += `@define-color card_fg_color ${onSurface};\n`
// Sidebar typically matches window or has slight contrast.

// Sidebar typically matches window or has slight contrast.
// Using window variables as reference.
css += `@define-color sidebar_bg_color @window_bg_color;\n`
css += `@define-color sidebar_fg_color @window_fg_color;\n`
Expand All @@ -46,17 +46,23 @@ QtObject {
const home = Quickshell.env("HOME")
const gtk3Dir = home + "/.config/gtk-3.0"
const gtk4Dir = home + "/.config/gtk-4.0"
const isLight = Config.lightMode
const gtkTheme = isLight ? "adw-gtk3" : "adw-gtk3-dark"
const colorScheme = isLight ? "prefer-light" : "prefer-dark"

writer.text = css

// Write to GTK 3/4 and reload theme
const cmd = `
mkdir -p "${gtk3Dir}" "${gtk4Dir}" && \\
echo "${css}" | tee "${gtk3Dir}/gtk.css" "${gtk4Dir}/gtk.css" > /dev/null && \\
gsettings set org.gnome.desktop.interface gtk-theme "" && \\
gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3
if command -v gsettings >/dev/null 2>&1; then \\
gsettings set org.gnome.desktop.interface color-scheme '${colorScheme}' >/dev/null 2>&1 || true; \\
gsettings set org.gnome.desktop.interface gtk-theme "" >/dev/null 2>&1 || true; \\
gsettings set org.gnome.desktop.interface gtk-theme '${gtkTheme}' >/dev/null 2>&1 || true; \\
fi
`

writerProcess.command = ["sh", "-c", cmd]
writerProcess.running = true
}
Expand Down