diff options
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | docs/superpowers/specs/2026-09-17-sddm-theme-udt-panel-design.md | 2 | ||||
| -rw-r--r-- | theme/Main.qml | 2 | ||||
| -rw-r--r-- | theme/components/Backdrop.qml | 3 | ||||
| -rw-r--r-- | theme/components/Credentials.qml | 48 | ||||
| -rw-r--r-- | theme/components/Panel.qml | 10 | ||||
| -rw-r--r-- | theme/icons/chevron-left.svg | 3 | ||||
| -rw-r--r-- | theme/icons/chevron-right.svg | 3 | ||||
| -rw-r--r-- | theme/theme.conf | 6 |
9 files changed, 56 insertions, 23 deletions
@@ -19,7 +19,7 @@ generated `theme.conf.user`, which is overwritten on every wallpaper change. ## Panel The greeter draws a full-height panel on the left edge, `panelWidth` of the -screen wide (0.30 by default), frosted over the wallpaper with square corners. +screen wide (0.20 by default), frosted over the wallpaper with square corners. From top to bottom it shows the clock (`timeFormat`) and date (`dateFormat`), the `greeting`, the avatar, one credential slot, the power row, and the session selector at the bottom. 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 0ed7c2c..685b6be 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 @@ -173,6 +173,8 @@ 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. +Further revised: `panelWidth` defaults to 0.20, the clock and avatar are larger, +the confirm and back controls use chevron icons, and the panel blur is stronger. ## Files touched diff --git a/theme/Main.qml b/theme/Main.qml index 0a7ce3d..05f0aec 100644 --- a/theme/Main.qml +++ b/theme/Main.qml @@ -107,7 +107,7 @@ Item { // key is missing or malformed. readonly property real panelWidth: { var v = parseFloat(config.stringValue("panelWidth")) - return v > 0 ? Math.min(v, 1) : 0.30 + return v > 0 ? Math.min(v, 1) : 0.20 } Panel { diff --git a/theme/components/Backdrop.qml b/theme/components/Backdrop.qml index de39bc2..f21443b 100644 --- a/theme/components/Backdrop.qml +++ b/theme/components/Backdrop.qml @@ -39,7 +39,8 @@ Item { source: snapshot visible: backdrop.sourceItem !== null && backdrop.blurEnabled blurEnabled: true - blur: 0.8 + blur: 1.0 + blurMax: 72 maskEnabled: true maskSource: mask } diff --git a/theme/components/Credentials.qml b/theme/components/Credentials.qml index ba5323c..f565474 100644 --- a/theme/components/Credentials.qml +++ b/theme/components/Credentials.qml @@ -7,6 +7,7 @@ import QtQuick import QtQuick.Controls.Basic +import QtQuick.Effects Item { id: creds @@ -65,12 +66,24 @@ Item { opacity: backMouse.containsMouse ? 1 : 0 } - Text { + Image { + id: backIcon anchors.centerIn: parent - text: "\u2190" - color: config.stringValue("subtext0") - font.family: "Noto Sans" - font.pixelSize: 22 + width: 22 + height: 22 + source: "../icons/chevron-left.svg" + sourceSize.width: width + sourceSize.height: height + visible: false + } + + MultiEffect { + anchors.fill: backIcon + source: backIcon + colorization: 1.0 + colorizationColor: backMouse.containsMouse + ? config.stringValue("accent") + : config.stringValue("subtext0") } MouseArea { @@ -95,13 +108,24 @@ Item { radius: 6 color: config.stringValue("accent") } - contentItem: Text { - text: "\u2192" - color: config.stringValue("base") - font.family: "Noto Sans" - font.pixelSize: 22 - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter + contentItem: Item { + Image { + id: confirmIcon + anchors.centerIn: parent + width: 22 + height: 22 + source: "../icons/chevron-right.svg" + sourceSize.width: width + sourceSize.height: height + visible: false + } + + MultiEffect { + anchors.fill: confirmIcon + source: confirmIcon + colorization: 1.0 + colorizationColor: config.stringValue("base") + } } onClicked: creds.confirm() } diff --git a/theme/components/Panel.qml b/theme/components/Panel.qml index 5cefd35..7f1880e 100644 --- a/theme/components/Panel.qml +++ b/theme/components/Panel.qml @@ -104,7 +104,7 @@ Item { text: Qt.formatDateTime(panel.now, panel.timeFormat) color: panel.textColor font.family: "Noto Sans" - font.pixelSize: 56 + font.pixelSize: 76 font.weight: Font.Light } @@ -114,7 +114,7 @@ Item { text: Qt.formatDateTime(panel.now, panel.dateFormat) color: panel.subtextColor font.family: "Noto Sans" - font.pixelSize: 18 + font.pixelSize: 20 } Text { @@ -128,8 +128,8 @@ Item { } Item { - width: 96 - height: 96 + width: 128 + height: 128 anchors.horizontalCenter: parent.horizontalCenter Rectangle { @@ -142,7 +142,7 @@ Item { text: panel.initials color: panel.textColor font.family: "Noto Sans" - font.pixelSize: 34 + font.pixelSize: 46 } } diff --git a/theme/icons/chevron-left.svg b/theme/icons/chevron-left.svg new file mode 100644 index 0000000..b9d42db --- /dev/null +++ b/theme/icons/chevron-left.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> + <path d="M15 5l-7 7 7 7"/> +</svg> diff --git a/theme/icons/chevron-right.svg b/theme/icons/chevron-right.svg new file mode 100644 index 0000000..0634602 --- /dev/null +++ b/theme/icons/chevron-right.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> + <path d="M9 5l7 7-7 7"/> +</svg> diff --git a/theme/theme.conf b/theme/theme.conf index 33e6bd3..0388c34 100644 --- a/theme/theme.conf +++ b/theme/theme.conf @@ -34,9 +34,9 @@ uiScreen= fadeoutMs=60000 blur=true -# Left panel width, as a fraction of the greeter window. 0.30 is roughly a -# third of the screen. -panelWidth=0.30 +# Left panel width, as a fraction of the greeter window. 0.20 is roughly a +# fifth of the screen. +panelWidth=0.20 # Clock and greeting. Qt date/time format strings. The date follows the # greeter's locale, which may be C. |
