diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-08-28 15:27:20 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-08-28 15:27:20 +1000 |
| commit | 1191af68fb5037ac17ee847a07e2b622bbb198c4 (patch) | |
| tree | 258cdf97605364fb74fb85308ced388f5baa4996 | |
| parent | lock: add caps/num lock indicator (diff) | |
| download | caelestia-shell-1191af68fb5037ac17ee847a07e2b622bbb198c4.tar.gz caelestia-shell-1191af68fb5037ac17ee847a07e2b622bbb198c4.tar.bz2 caelestia-shell-1191af68fb5037ac17ee847a07e2b622bbb198c4.zip | |
lock: show keyboard layout
Closes #450
| -rw-r--r-- | modules/lock/Center.qml | 18 | ||||
| -rw-r--r-- | services/Hypr.qml | 3 |
2 files changed, 19 insertions, 2 deletions
diff --git a/modules/lock/Center.qml b/modules/lock/Center.qml index 26ba321..b76b7f4 100644 --- a/modules/lock/Center.qml +++ b/modules/lock/Center.qml @@ -217,18 +217,33 @@ ColumnLayout { Layout.fillWidth: true Layout.topMargin: -Appearance.spacing.large - implicitHeight: stateMessage.implicitHeight + implicitHeight: Math.max(message.implicitHeight, stateMessage.implicitHeight) + + Behavior on implicitHeight { + Anim {} + } StyledText { id: stateMessage readonly property string msg: { + if (Hypr.kbLayout !== Hypr.defaultKbLayout) { + if (Hypr.capsLock && Hypr.numLock) + return qsTr("Caps lock and Num lock are ON.\nKeyboard layout: %1").arg(Hypr.kbLayoutFull); + if (Hypr.capsLock) + return qsTr("Caps lock is ON. Kb layout: %1").arg(Hypr.kbLayoutFull); + if (Hypr.numLock) + return qsTr("Num lock is ON. Kb layout: %1").arg(Hypr.kbLayoutFull); + return qsTr("Keyboard layout: %1").arg(Hypr.kbLayoutFull); + } + if (Hypr.capsLock && Hypr.numLock) return qsTr("Caps lock and Num lock are ON."); if (Hypr.capsLock) return qsTr("Caps lock is ON."); if (Hypr.numLock) return qsTr("Num lock is ON."); + return ""; } @@ -260,6 +275,7 @@ ColumnLayout { font.family: Appearance.font.family.mono horizontalAlignment: Qt.AlignHCenter wrapMode: Text.WrapAtWordBoundaryOrAnywhere + lineHeight: 1.2 Behavior on scale { Anim {} diff --git a/services/Hypr.qml b/services/Hypr.qml index c90ccf03..011e8b1 100644 --- a/services/Hypr.qml +++ b/services/Hypr.qml @@ -21,7 +21,8 @@ Singleton { property var keyboard readonly property bool capsLock: keyboard?.capsLock ?? false readonly property bool numLock: keyboard?.numLock ?? false - readonly property string kbLayoutFull: keyboard?.active_keymap ?? "?" + readonly property string defaultKbLayout: keyboard?.layout.split(",")[0] ?? "??" + readonly property string kbLayoutFull: keyboard?.active_keymap ?? "Unknown" readonly property string kbLayout: kbMap.get(kbLayoutFull) ?? "??" readonly property var kbMap: new Map() |