summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-08-28 15:27:20 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-08-28 15:27:20 +1000
commit1191af68fb5037ac17ee847a07e2b622bbb198c4 (patch)
tree258cdf97605364fb74fb85308ced388f5baa4996
parentlock: add caps/num lock indicator (diff)
downloadcaelestia-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.qml18
-rw-r--r--services/Hypr.qml3
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()