diff options
| -rw-r--r-- | README.md | 5 | ||||
| -rw-r--r-- | docs/superpowers/specs/2026-09-17-sddm-theme-udt-panel-design.md | 3 | ||||
| -rw-r--r-- | theme/components/Credentials.qml | 2 | ||||
| -rw-r--r-- | theme/components/Panel.qml | 6 | ||||
| -rw-r--r-- | theme/components/PowerBar.qml | 7 |
5 files changed, 20 insertions, 3 deletions
@@ -33,8 +33,9 @@ reveal the password; confirm again to log in. Esc or the back chevron returns to the username. Power icons come from the icon theme the appearance drawer selected. `udt-accent` -resolves them and writes absolute paths into the generated `theme.conf.user`; -when a theme has no match, the bundled `theme/icons/*.svg` draw instead. +resolves them and writes absolute paths into the generated `theme.conf.user`, and +they keep the colours the theme ships; when a theme has no match, the bundled +`theme/icons/*.svg` draw, tinted to the palette. ## Install diff --git a/docs/superpowers/specs/2026-09-17-sddm-theme-udt-panel-design.md b/docs/superpowers/specs/2026-09-17-sddm-theme-udt-panel-design.md index 3a87677..0ed7c2c 100644 --- a/docs/superpowers/specs/2026-09-17-sddm-theme-udt-panel-design.md +++ b/docs/superpowers/specs/2026-09-17-sddm-theme-udt-panel-design.md @@ -171,6 +171,9 @@ Icons are drawn as a flat silhouette through the existing `MultiEffect` colorization (`subtext0`, `accent` on hover), so the theme icon contributes its shape; the UDT palette still supplies the colour. +Revised after implementation: a resolved theme icon is drawn in the colours the +theme ships, and only the bundled fallback line art is tinted to the palette. + ## Files touched This repository: diff --git a/theme/components/Credentials.qml b/theme/components/Credentials.qml index 2bfbaf5..ba5323c 100644 --- a/theme/components/Credentials.qml +++ b/theme/components/Credentials.qml @@ -128,6 +128,7 @@ Item { color: config.stringValue("text") palette.base: config.stringValue("surface0") palette.text: config.stringValue("text") + palette.placeholderText: config.stringValue("overlay0") palette.highlight: config.stringValue("accent") palette.highlightedText: config.stringValue("base") background: Rectangle { @@ -157,6 +158,7 @@ Item { color: config.stringValue("text") palette.base: config.stringValue("surface0") palette.text: config.stringValue("text") + palette.placeholderText: config.stringValue("overlay0") palette.highlight: config.stringValue("accent") palette.highlightedText: config.stringValue("base") background: Rectangle { diff --git a/theme/components/Panel.qml b/theme/components/Panel.qml index eac2c58..5cefd35 100644 --- a/theme/components/Panel.qml +++ b/theme/components/Panel.qml @@ -218,6 +218,12 @@ Item { font.family: "Noto Sans" palette.base: config.stringValue("surface0") palette.text: config.stringValue("text") + palette.button: config.stringValue("surface0") + palette.buttonText: config.stringValue("text") + palette.window: config.stringValue("surface0") + palette.placeholderText: config.stringValue("overlay0") + palette.mid: config.stringValue("overlay1") + palette.dark: config.stringValue("subtext0") palette.highlight: config.stringValue("accent") palette.highlightedText: config.stringValue("base") background: Rectangle { diff --git a/theme/components/PowerBar.qml b/theme/components/PowerBar.qml index 3d6b2c5..88bdee6 100644 --- a/theme/components/PowerBar.qml +++ b/theme/components/PowerBar.qml @@ -32,6 +32,11 @@ Row { height: 56 opacity: modelData.enabled ? 1 : 0.35 + // A resolved icon-theme path is drawn exactly as the theme ships + // it. Only the bundled line art is tinted to the palette. + readonly property bool themed: + modelData.icon !== "" && String(icon.source) === modelData.icon + Rectangle { anchors.fill: parent radius: 10 @@ -57,7 +62,7 @@ Row { MultiEffect { anchors.fill: icon source: icon - colorization: 1.0 + colorization: themed ? 0.0 : 1.0 colorizationColor: mouse.containsMouse && modelData.enabled ? config.stringValue("accent") : config.stringValue("subtext0") |
