diff options
| author | Gregor Kleen <gkleen@yggdrasil.li> | 2025-08-31 21:57:00 +0200 |
|---|---|---|
| committer | Gregor Kleen <gkleen@yggdrasil.li> | 2025-08-31 21:57:00 +0200 |
| commit | 466ce70f96f8bdde32260f6951c5cbb62cfc02a7 (patch) | |
| tree | 3d3120f6a1ace487d2db5a024411a467d55b9632 /accounts/gkleen@sif/shell/quickshell/KeyboardLayout.qml | |
| parent | 828893e930886872fcf612bc8958d33fee73b5df (diff) | |
| download | nixos-466ce70f96f8bdde32260f6951c5cbb62cfc02a7.tar nixos-466ce70f96f8bdde32260f6951c5cbb62cfc02a7.tar.gz nixos-466ce70f96f8bdde32260f6951c5cbb62cfc02a7.tar.bz2 nixos-466ce70f96f8bdde32260f6951c5cbb62cfc02a7.tar.xz nixos-466ce70f96f8bdde32260f6951c5cbb62cfc02a7.zip | |
...
Diffstat (limited to 'accounts/gkleen@sif/shell/quickshell/KeyboardLayout.qml')
| -rw-r--r-- | accounts/gkleen@sif/shell/quickshell/KeyboardLayout.qml | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/accounts/gkleen@sif/shell/quickshell/KeyboardLayout.qml b/accounts/gkleen@sif/shell/quickshell/KeyboardLayout.qml index 710ea10c..b9f91580 100644 --- a/accounts/gkleen@sif/shell/quickshell/KeyboardLayout.qml +++ b/accounts/gkleen@sif/shell/quickshell/KeyboardLayout.qml | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | import Quickshell | 1 | import Quickshell |
| 2 | import QtQuick | 2 | import QtQuick |
| 3 | import qs.Services | 3 | import qs.Services |
| 4 | import Quickshell.Widgets | ||
| 4 | 5 | ||
| 5 | Rectangle { | 6 | Rectangle { |
| 6 | id: kbdWidget | 7 | id: kbdWidget |
| @@ -27,6 +28,9 @@ Rectangle { | |||
| 27 | onClicked: { | 28 | onClicked: { |
| 28 | NiriService.sendCommand({ "Action": { "SwitchLayout": { "layout": "Next" } } }, _ => {}) | 29 | NiriService.sendCommand({ "Action": { "SwitchLayout": { "layout": "Next" } } }, _ => {}) |
| 29 | } | 30 | } |
| 31 | onWheel: event => { | ||
| 32 | NiriService.sendCommand({ "Action": { "SwitchLayout": { "layout": event.angleDelta > 0 ? "Next" : "Prev" } } }, _ => {}) | ||
| 33 | } | ||
| 30 | } | 34 | } |
| 31 | 35 | ||
| 32 | Text { | 36 | Text { |
| @@ -50,28 +54,47 @@ Rectangle { | |||
| 50 | } | 54 | } |
| 51 | 55 | ||
| 52 | PopupWindow { | 56 | PopupWindow { |
| 57 | id: tooltip | ||
| 58 | |||
| 59 | property bool nextVisible: kbdMouseArea.containsMouse || tooltipMouseArea.containsMouse | ||
| 60 | |||
| 53 | anchor { | 61 | anchor { |
| 54 | item: kbdMouseArea | 62 | item: kbdMouseArea |
| 55 | edges: Edges.Bottom | 63 | edges: Edges.Bottom | Edges.Left |
| 64 | } | ||
| 65 | visible: false | ||
| 66 | |||
| 67 | onNextVisibleChanged: hangTimer.restart() | ||
| 68 | |||
| 69 | Timer { | ||
| 70 | id: hangTimer | ||
| 71 | interval: 100 | ||
| 72 | onTriggered: tooltip.visible = tooltip.nextVisible | ||
| 56 | } | 73 | } |
| 57 | visible: kbdMouseArea.containsMouse | ||
| 58 | 74 | ||
| 59 | implicitWidth: kbdTooltipText.contentWidth + 16 | 75 | implicitWidth: kbdTooltipText.contentWidth + 16 |
| 60 | implicitHeight: kbdTooltipText.contentHeight + 16 | 76 | implicitHeight: kbdTooltipText.contentHeight + 16 |
| 61 | color: "black" | 77 | color: "black" |
| 62 | 78 | ||
| 63 | Text { | 79 | WrapperMouseArea { |
| 64 | id: kbdTooltipText | 80 | id: tooltipMouseArea |
| 81 | |||
| 82 | hoverEnabled: true | ||
| 83 | enabled: true | ||
| 65 | 84 | ||
| 66 | anchors.centerIn: parent | 85 | anchors.centerIn: parent |
| 67 | 86 | ||
| 68 | font.pointSize: 10 | 87 | Text { |
| 69 | font.family: "Fira Sans" | 88 | id: kbdTooltipText |
| 70 | color: "white" | 89 | |
| 90 | font.pointSize: 10 | ||
| 91 | font.family: "Fira Sans" | ||
| 92 | color: "white" | ||
| 71 | 93 | ||
| 72 | text: { | 94 | text: { |
| 73 | const currentLayout = NiriService.keyboardLayouts?.names?.[NiriService.keyboardLayouts.current_idx]; | 95 | const currentLayout = NiriService.keyboardLayouts?.names?.[NiriService.keyboardLayouts.current_idx]; |
| 74 | return currentLayout || ""; | 96 | return currentLayout || ""; |
| 97 | } | ||
| 75 | } | 98 | } |
| 76 | } | 99 | } |
| 77 | } | 100 | } |
