diff --git a/.config/quickshell/ii/modules/overview/Overview.qml b/.config/quickshell/ii/modules/overview/Overview.qml index 9061b5b6..1af8cb9c 100644 --- a/.config/quickshell/ii/modules/overview/Overview.qml +++ b/.config/quickshell/ii/modules/overview/Overview.qml @@ -44,11 +44,12 @@ Scope { HyprlandFocusGrab { id: grab - windows: [ root ] + windows: [root] property bool canBeActive: root.monitorIsFocused active: false onCleared: () => { - if (!active) GlobalStates.overviewOpen = false + if (!active) + GlobalStates.overviewOpen = false; } } @@ -56,13 +57,13 @@ Scope { target: GlobalStates function onOverviewOpenChanged() { if (!GlobalStates.overviewOpen) { - searchWidget.disableExpandAnimation() + searchWidget.disableExpandAnimation(); overviewScope.dontAutoCancelSearch = false; } else { if (!overviewScope.dontAutoCancelSearch) { - searchWidget.cancelSearch() + searchWidget.cancelSearch(); } - delayedGrabTimer.start() + delayedGrabTimer.start(); } } } @@ -72,8 +73,9 @@ Scope { interval: Config.options.hacks.arbitraryRaceConditionDelay repeat: false onTriggered: { - if (!grab.canBeActive) return - grab.active = GlobalStates.overviewOpen + if (!grab.canBeActive) + return; + grab.active = GlobalStates.overviewOpen; } } @@ -93,13 +95,15 @@ Scope { top: parent.top } - Keys.onPressed: (event) => { + Keys.onPressed: event => { if (event.key === Qt.Key_Escape) { GlobalStates.overviewOpen = false; } else if (event.key === Qt.Key_Left) { - if (!root.searchingText) Hyprland.dispatch("workspace r-1"); + if (!root.searchingText) + Hyprland.dispatch("workspace r-1"); } else if (event.key === Qt.Key_Right) { - if (!root.searchingText) Hyprland.dispatch("workspace r+1"); + if (!root.searchingText) + Hyprland.dispatch("workspace r+1"); } } @@ -111,8 +115,8 @@ Scope { SearchWidget { id: searchWidget Layout.alignment: Qt.AlignHCenter - onSearchingTextChanged: (text) => { - root.searchingText = searchingText + onSearchingTextChanged: text => { + root.searchingText = searchingText; } } @@ -125,33 +129,67 @@ Scope { } } } + } + } + function toggleClipboard() { + if (GlobalStates.overviewOpen && overviewScope.dontAutoCancelSearch) { + GlobalStates.overviewOpen = false; + return; + } + for (let i = 0; i < overviewVariants.instances.length; i++) { + let panelWindow = overviewVariants.instances[i]; + if (panelWindow.modelData.name == Hyprland.focusedMonitor.name) { + overviewScope.dontAutoCancelSearch = true; + panelWindow.setSearchingText(Config.options.search.prefix.clipboard); + GlobalStates.overviewOpen = true; + return; + } + } + } + + function toggleEmojis() { + if (GlobalStates.overviewOpen && overviewScope.dontAutoCancelSearch) { + GlobalStates.overviewOpen = false; + return; + } + for (let i = 0; i < overviewVariants.instances.length; i++) { + let panelWindow = overviewVariants.instances[i]; + if (panelWindow.modelData.name == Hyprland.focusedMonitor.name) { + overviewScope.dontAutoCancelSearch = true; + panelWindow.setSearchingText(Config.options.search.prefix.emojis); + GlobalStates.overviewOpen = true; + return; + } } } IpcHandler { - target: "overview" + target: "overview" function toggle() { - GlobalStates.overviewOpen = !GlobalStates.overviewOpen + GlobalStates.overviewOpen = !GlobalStates.overviewOpen; } function close() { - GlobalStates.overviewOpen = false + GlobalStates.overviewOpen = false; } function open() { - GlobalStates.overviewOpen = true + GlobalStates.overviewOpen = true; } function toggleReleaseInterrupt() { - GlobalStates.superReleaseMightTrigger = false + GlobalStates.superReleaseMightTrigger = false; } - } + function clipboardToggle() { + overviewScope.toggleClipboard(); + } + } GlobalShortcut { name: "overviewToggle" description: "Toggles overview on press" onPressed: { - GlobalStates.overviewOpen = !GlobalStates.overviewOpen + GlobalStates.overviewOpen = !GlobalStates.overviewOpen; } } GlobalShortcut { @@ -159,7 +197,7 @@ Scope { description: "Closes overview" onPressed: { - GlobalStates.overviewOpen = false + GlobalStates.overviewOpen = false; } } GlobalShortcut { @@ -167,25 +205,23 @@ Scope { description: "Toggles overview on release" onPressed: { - GlobalStates.superReleaseMightTrigger = true + GlobalStates.superReleaseMightTrigger = true; } onReleased: { if (!GlobalStates.superReleaseMightTrigger) { - GlobalStates.superReleaseMightTrigger = true - return + GlobalStates.superReleaseMightTrigger = true; + return; } - GlobalStates.overviewOpen = !GlobalStates.overviewOpen + GlobalStates.overviewOpen = !GlobalStates.overviewOpen; } } GlobalShortcut { name: "overviewToggleReleaseInterrupt" - description: "Interrupts possibility of overview being toggled on release. " + - "This is necessary because GlobalShortcut.onReleased in quickshell triggers whether or not you press something else while holding the key. " + - "To make sure this works consistently, use binditn = MODKEYS, catchall in an automatically triggered submap that includes everything." + description: "Interrupts possibility of overview being toggled on release. " + "This is necessary because GlobalShortcut.onReleased in quickshell triggers whether or not you press something else while holding the key. " + "To make sure this works consistently, use binditn = MODKEYS, catchall in an automatically triggered submap that includes everything." onPressed: { - GlobalStates.superReleaseMightTrigger = false + GlobalStates.superReleaseMightTrigger = false; } } GlobalShortcut { @@ -193,21 +229,7 @@ Scope { description: "Toggle clipboard query on overview widget" onPressed: { - if (GlobalStates.overviewOpen && overviewScope.dontAutoCancelSearch) { - GlobalStates.overviewOpen = false; - return; - } - for (let i = 0; i < overviewVariants.instances.length; i++) { - let panelWindow = overviewVariants.instances[i]; - if (panelWindow.modelData.name == Hyprland.focusedMonitor.name) { - overviewScope.dontAutoCancelSearch = true; - panelWindow.setSearchingText( - Config.options.search.prefix.clipboard - ); - GlobalStates.overviewOpen = true; - return - } - } + overviewScope.toggleClipboard(); } } @@ -216,22 +238,7 @@ Scope { description: "Toggle emoji query on overview widget" onPressed: { - if (GlobalStates.overviewOpen && overviewScope.dontAutoCancelSearch) { - GlobalStates.overviewOpen = false; - return; - } - for (let i = 0; i < overviewVariants.instances.length; i++) { - let panelWindow = overviewVariants.instances[i]; - if (panelWindow.modelData.name == Hyprland.focusedMonitor.name) { - overviewScope.dontAutoCancelSearch = true; - panelWindow.setSearchingText( - Config.options.search.prefix.emojis - ); - GlobalStates.overviewOpen = true; - return - } - } + overviewScope.toggleEmojis(); } } - }