mirror of
https://github.com/end-4/dots-hyprland.git
synced 2026-06-05 23:09:26 -05:00
bar: fixed kb layout+variant display in top right (#2016)
This commit is contained in:
@@ -293,11 +293,17 @@ Item { // Bar content region
|
||||
active: HyprlandXkb.layoutCodes.length > 1
|
||||
visible: active
|
||||
Layout.rightMargin: indicatorsRowLayout.realSpacing
|
||||
sourceComponent: StyledText {
|
||||
text: HyprlandXkb.currentLayoutCode
|
||||
font.pixelSize: Appearance.font.pixelSize.small
|
||||
color: rightSidebarButton.colText
|
||||
animateChange: true
|
||||
sourceComponent: Item {
|
||||
implicitWidth: layoutCodeText.implicitWidth
|
||||
StyledText {
|
||||
id: layoutCodeText
|
||||
anchors.centerIn: parent
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
text: HyprlandXkb.currentLayoutCode.split(":").join("\n")
|
||||
font.pixelSize: text.includes("\n") ? Appearance.font.pixelSize.smaller : Appearance.font.pixelSize.small
|
||||
color: rightSidebarButton.colText
|
||||
animateChange: true
|
||||
}
|
||||
}
|
||||
}
|
||||
MaterialSymbol {
|
||||
|
||||
@@ -273,11 +273,18 @@ Item { // Bar content region
|
||||
active: HyprlandXkb.layoutCodes.length > 1
|
||||
visible: active
|
||||
Layout.bottomMargin: indicatorsColumnLayout.realSpacing
|
||||
sourceComponent: StyledText {
|
||||
text: HyprlandXkb.currentLayoutCode
|
||||
font.pixelSize: Appearance.font.pixelSize.small
|
||||
color: rightSidebarButton.colText
|
||||
animateChange: true
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
sourceComponent: Item {
|
||||
implicitHeight: layoutCodeText.implicitHeight
|
||||
StyledText {
|
||||
id: layoutCodeText
|
||||
anchors.centerIn: parent
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
text: HyprlandXkb.currentLayoutCode.split(":").join("\n")
|
||||
font.pixelSize: text.includes("\n") ? Appearance.font.pixelSize.smaller : Appearance.font.pixelSize.small
|
||||
color: rightSidebarButton.colText
|
||||
animateChange: true
|
||||
}
|
||||
}
|
||||
}
|
||||
MaterialSymbol {
|
||||
|
||||
@@ -46,13 +46,24 @@ Singleton {
|
||||
if (!line.trim() || line.trim().startsWith('!'))
|
||||
return false;
|
||||
|
||||
// Match: key + whitespace + description
|
||||
const match = line.match(/^\s*(\S+)\s+(.+)$/);
|
||||
if (match && match[2] === targetDescription) {
|
||||
root.cachedLayoutCodes[match[2]] = match[1];
|
||||
root.currentLayoutCode = match[1];
|
||||
// Match layout: (whitespace + ) key + whitespace + description
|
||||
const matchLayout = line.match(/^\s*(\S+)\s+(.+)$/);
|
||||
if (matchLayout && matchLayout[2] === targetDescription) {
|
||||
root.cachedLayoutCodes[matchLayout[2]] = matchLayout[1];
|
||||
root.currentLayoutCode = matchLayout[1];
|
||||
return true;
|
||||
}
|
||||
|
||||
// Match variant: (whitespace + ) variant + whitespace + key + whitespace + description
|
||||
const matchVariant = line.match(/^\s*(\S+)\s+(\S+)\s+(.+)$/);
|
||||
if (matchVariant && matchVariant[3] === targetDescription) {
|
||||
const complexLayout = matchVariant[2] + matchVariant[1];
|
||||
root.cachedLayoutCodes[matchVariant[3]] = complexLayout;
|
||||
root.currentLayoutCode = complexLayout;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
// console.log("[HyprlandXkb] Found line:", foundLine);
|
||||
// console.log("[HyprlandXkb] Layout:", root.currentLayoutName, "| Code:", root.currentLayoutCode);
|
||||
|
||||
Reference in New Issue
Block a user