AvengeMedia / AvengeMedia/DankMaterialShell
Labwc themeing
- Dominant language
- QML
- Stars
- 8.1k
- Forks
- 515
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 102
Description
### Feature Description
I would like labwc to change window titlebar, border and font colors on color change. I implemented this via https://github.com/noctalia-dev/noctalia-shell/pull/1874 on noctalia but their strange decision to deviate from standard quickshell is not for me, so Dank it is!
I did attempt to add the files and edit `core/internal/matugen/matugen.go` with a labwc entry.
Here's my patch
```diff
diff -Nur DankMaterialShell-1.4.3.orig/core/internal/matugen/matugen.go DankMaterialShell-1.4.3/core/internal/matugen/matugen.go
--- DankMaterialShell-1.4.3.orig/core/internal/matugen/matugen.go 2026-03-07 11:58:14.268839576 +1000
+++ DankMaterialShell-1.4.3/core/internal/matugen/matugen.go 2026-03-07 11:32:19.309894482 +1000
@@ -54,6 +54,7 @@
{ID: "niri", Commands: []string{"niri"}, ConfigFile: "niri.toml"},
{ID: "hyprland", Commands: []string{"Hyprland"}, ConfigFile: "hyprland.toml"},
{ID: "mangowc", Commands: []string{"mango"}, ConfigFile: "mangowc.toml"},
+ {ID: "labwc", Commands: []string{"labwc"}, ConfigFile: "labwc.toml"},
{ID: "qt5ct", Commands: []string{"qt5ct"}, ConfigFile: "qt5ct.toml"},
{ID: "qt6ct", Commands: []string{"qt6ct"}, ConfigFile: "qt6ct.toml"},
{ID: "firefox", Commands: []string{"firefox"}, ConfigFile: "firefox.toml"},
diff -Nur DankMaterialShell-1.4.3.orig/quickshell/matugen/configs/labwc.toml DankMaterialShell-1.4.3/quickshell/matugen/configs/labwc.toml
--- DankMaterialShell-1.4.3.orig/quickshell/matugen/configs/labwc.toml 1970-01-01 10:00:00.000000000 +1000
+++ DankMaterialShell-1.4.3/quickshell/matugen/configs/labwc.toml 2026-03-07 10:58:28.204966200 +1000
@@ -0,0 +1,3 @@
+[templates.dmslabwc]
+input_path = 'SHELL_DIR/matugen/templates/labwcthemerc'
+output_path = 'CONFIG_DIR/labwc/themerc-override'
diff -Nur DankMaterialShell-1.4.3.orig/quickshell/matugen/templates/labwcthemerc DankMaterialShell-1.4.3/quickshell/matugen/templates/labwcthemerc
--- DankMaterialShell-1.4.3.orig/quickshell/matugen/templates/labwcthemerc 1970-01-01 10:00:00.000000000 +1000
+++ DankMaterialShell-1.4.3/quickshell/matugen/templates/labwcthemerc 2026-02-20 10:21:06.725168645 +1000
@@ -0,0 +1,37 @@
+# window border
+window.active.border.color: {{colors.primary.default.hex}}
+window.inactive.border.color: {{colors.secondary.default.hex}}
+
+# ToggleKeybinds status indicator
+window.active.indicator.toggled-keybind.color: {{colors.error.default.hex}}
+
+# window titlebar background
+window.active.title.bg.color: {{colors.primary.default.hex}}
+window.inactive.title.bg.color: {{colors.secondary.default.hex}}
+
+window.active.label.text.color: {{colors.on_primary.default.hex}}
+window.inactive.label.text.color: {{colors.on_secondary.default.hex}}
+window.label.text.justify: center
+
+# window button hover overlay
+window.button.hover.bg.color: {{colors.hover.default.hex}}
+
+# window buttons
+window.active.button.unpressed.image.color: {{colors.on_primary.default.hex}}
+window.inactive.button.unpressed.image.color: {{colors.on_primary.default.hex}}
+
+# menu
+menu.border.color: {{colors.on_primary.default.hex}}
+menu.items.bg.color: {{colors.primary.default.hex}}
+menu.items.text.color: {{colors.on_primary.default.hex}}
+menu.items.active.bg.color: {{colors.secondary.default.hex}}
+menu.items.active.text.color: {{colors.on_secondary.default.hex}}
+menu.separator.color: {{colors.on_primary.default.hex}}
+menu.title.bg.color: {{colors.primary.default.hex}}
+menu.title.text.color: {{colors.on_primary.default.hex}}
+
+# on screen display (window-cycle dialog)
+osd.bg.color: {{colors.on_surface.default.hex}}
+osd.border.color: {{colors.on_primary.default.hex}}
+osd.label.text.color: {{colors.on_primary.default.hex}}
+osd.window-switcher.preview.border.color: {{colors.outline.default.hex}}
```
I'm probably missing something basic.
### Use Case
Labwc rocks! May not be as shiny as niri, hypr et al but that's where these quickshell implementations add the gloss.
### Compositor(s)
Other (specify below)
### If Other, please specify
labwc
### Proposed Solution
Add a template :-)
### Alternatives/Existing Solutions
Similar to as mentioned for noctalia above.
Contributor guide
Research direction
Start with core/internal/matugen/matugen.go and compare the existing compositor entries, then inspect quickshell/matugen/configs and quickshell/matugen/templates for the proposed labwc files. Confirm that a labwc template is registered and that its generated themerc-override changes titlebar, border, and font colors on a color change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, linux
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- Half a day
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 58/100