From a238c33fd06358af414c0f7a35a4d682242f79c1 Mon Sep 17 00:00:00 2001 From: dodaars Date: Sun, 21 Sep 2025 23:54:12 +0200 Subject: [PATCH] A simple function to slice keyboard variants to avoid overflow of text when using vertical bars I added a function that slices keyboard variants to be at most 4 characters long to avoid text overflow, especially when you set the bar to be vertical. --- .../quickshell/ii/modules/bar/HyprlandXkbIndicator.qml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.config/quickshell/ii/modules/bar/HyprlandXkbIndicator.qml b/.config/quickshell/ii/modules/bar/HyprlandXkbIndicator.qml index 3e85b829b..ed00cd532 100644 --- a/.config/quickshell/ii/modules/bar/HyprlandXkbIndicator.qml +++ b/.config/quickshell/ii/modules/bar/HyprlandXkbIndicator.qml @@ -6,10 +6,16 @@ import qs.modules.common.widgets Loader { id: root property bool vertical: false - active: HyprlandXkb.layoutCodes.length > 1 visible: active + function abbreviateLayoutCode(fullCode) { + return fullCode.split(':').map(layout => { + const baseLayout = layout.split('-')[0]; + return baseLayout.length > 4 ? baseLayout.slice(0, 4) : baseLayout; + }).join('\n'); + } + sourceComponent: Item { implicitWidth: root.vertical ? null : layoutCodeText.implicitWidth implicitHeight: root.vertical ? layoutCodeText.implicitHeight : null @@ -18,7 +24,7 @@ Loader { id: layoutCodeText anchors.centerIn: parent horizontalAlignment: Text.AlignHCenter - text: HyprlandXkb.currentLayoutCode.split(":").join("\n") + text: abbreviateLayoutCode(HyprlandXkb.currentLayoutCode) font.pixelSize: text.includes("\n") ? Appearance.font.pixelSize.smallie : Appearance.font.pixelSize.small color: rightSidebarButton.colText animateChange: true