mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-08-02 03:28:28 -04:00
matugen: make GTK4 live-refresh opt-in, off by default. Bump the settle
timeout fixes #2552
This commit is contained in:
@@ -928,7 +928,14 @@ func expectColorSchemeEcho(scheme string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The color-scheme round trip is the only mechanism that makes running GTK4
|
||||||
|
// apps reload ~/.config/gtk-4.0 CSS (a gtk-theme flip does not). But apps
|
||||||
|
// following the portal color-scheme (Chromium) can drop the restore signal
|
||||||
|
// mid-repaint and latch the wrong mode, so this is opt-in.
|
||||||
func refreshGTK4() {
|
func refreshGTK4() {
|
||||||
|
if os.Getenv("DMS_ENABLE_GTK4_REFRESH") != "1" {
|
||||||
|
return
|
||||||
|
}
|
||||||
output, err := utils.GsettingsGet("org.gnome.desktop.interface", "color-scheme")
|
output, err := utils.GsettingsGet("org.gnome.desktop.interface", "color-scheme")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
@@ -947,7 +954,7 @@ func refreshGTK4() {
|
|||||||
log.Warnf("Failed to toggle color-scheme for GTK4 refresh: %v", err)
|
log.Warnf("Failed to toggle color-scheme for GTK4 refresh: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
time.Sleep(50 * time.Millisecond)
|
time.Sleep(400 * time.Millisecond)
|
||||||
expectColorSchemeEcho(current)
|
expectColorSchemeEcho(current)
|
||||||
if err := utils.GsettingsSet("org.gnome.desktop.interface", "color-scheme", current); err != nil {
|
if err := utils.GsettingsSet("org.gnome.desktop.interface", "color-scheme", current); err != nil {
|
||||||
log.Warnf("Failed to restore color-scheme for GTK4 refresh: %v", err)
|
log.Warnf("Failed to restore color-scheme for GTK4 refresh: %v", err)
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ Singleton {
|
|||||||
return typeof Theme !== "undefined";
|
return typeof Theme !== "undefined";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only follow values stable for the settle window — the GTK4-refresh toggle reverts within ~50ms and following it would loop.
|
// Only follow values stable for the settle window — the opt-in GTK4-refresh toggle reverts within ~400ms and following it would loop.
|
||||||
function evaluateColorScheme() {
|
function evaluateColorScheme() {
|
||||||
if (!canSyncColorScheme())
|
if (!canSyncColorScheme())
|
||||||
return;
|
return;
|
||||||
@@ -111,7 +111,7 @@ Singleton {
|
|||||||
|
|
||||||
Timer {
|
Timer {
|
||||||
id: colorSchemeSettleTimer
|
id: colorSchemeSettleTimer
|
||||||
interval: 750
|
interval: 1000
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
if (!root.canSyncColorScheme())
|
if (!root.canSyncColorScheme())
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# adw-gtk3 assets
|
||||||
|
|
||||||
|
Image assets vendored from [adw-gtk3](https://github.com/lassekongo83/adw-gtk3)
|
||||||
|
(`src/assets/`), used by the generated GTK3 light theme
|
||||||
|
(`quickshell/matugen/templates/gtk-light-colors.css`, itself derived from
|
||||||
|
adw-gtk3's `gtk.css`).
|
||||||
|
|
||||||
|
adw-gtk3 is licensed under the GNU Lesser General Public License v2.1 — see
|
||||||
|
`LICENSE.adw-gtk3`. These files are covered by that license; the rest of this
|
||||||
|
repository remains under its own license.
|
||||||
Reference in New Issue
Block a user