Add KeyboardLayoutService, add KeyboardLayout Widget, add KeyboardLayout to LockScreen

This commit is contained in:
Ly-sec 2025-08-23 13:02:37 +02:00
parent 2029b5e1eb
commit ca7e0cc105
4 changed files with 173 additions and 1 deletions

View file

@ -0,0 +1,34 @@
import QtQuick
import Quickshell
import Quickshell.Wayland
import Quickshell.Io
import qs.Commons
import qs.Services
import qs.Widgets
Item {
id: root
width: pill.width
height: pill.height
// Use the shared service for keyboard layout
property string currentLayout: KeyboardLayoutService.currentLayout
NPill {
id: pill
icon: "keyboard_alt"
iconCircleColor: Color.mPrimary
collapsedIconColor: Color.mOnSurface
autoHide: false // Important to be false so we can hover as long as we want
text: currentLayout
tooltipText: "Keyboard Layout: " + currentLayout
onClicked: {
// You could open keyboard settings here if needed
// For now, just show the current layout
}
}
}

View file

@ -163,6 +163,13 @@ Loader {
}
}
// Keyboard layout indicator component
Item {
id: keyboardLayout
property string currentLayout: (typeof KeyboardLayoutService !== 'undefined' && KeyboardLayoutService.currentLayout) ? KeyboardLayoutService.currentLayout : "Unknown"
}
// Wallpaper image
Image {
id: lockBgImage
@ -580,6 +587,25 @@ Loader {
font.weight: Style.fontWeightBold
}
}
// Keyboard layout indicator
Row {
spacing: Style.marginS * scaling
NText {
text: keyboardLayout.currentLayout
color: Color.mOnSurface
font.family: Settings.data.ui.fontFixed
font.pointSize: Style.fontSizeM * scaling
font.weight: Style.fontWeightBold
}
NIcon {
text: "keyboard_alt"
font.pointSize: Style.fontSizeM * scaling
color: Color.mOnSurface
}
}
}
}