AvengeMedia / AvengeMedia/DankMaterialShell

Labwc themeing

Open
#1,929 1 comment 0 reactions 0 assignees View on GitHub
feature request
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.