very broken keybinds lol
This commit is contained in:
34
Bar.qml
34
Bar.qml
@@ -1,8 +1,9 @@
|
||||
import QtQuick
|
||||
import QtQuick.Effects
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import Quickshell.Hyprland
|
||||
import Quickshell.Io
|
||||
import Quickshell.Wayland
|
||||
import "./Services/"
|
||||
import "Bar"
|
||||
import "Color.js" as Colors
|
||||
|
||||
@@ -19,6 +20,15 @@ Scope {
|
||||
required property var modelData
|
||||
property HyprlandMonitor monitor: Hyprland.monitorFor(modelData)
|
||||
|
||||
function refocus() {
|
||||
if (WlrLayershell == null)
|
||||
return;
|
||||
WlrLayershell.keyboardFocus = WlrKeyboardFocus.None;
|
||||
Qt.callLater(() => {
|
||||
WlrLayershell.keyboardFocus = WlrKeyboardFocus.Exclusive;
|
||||
});
|
||||
}
|
||||
|
||||
color: "transparent"
|
||||
exclusionMode: ExclusionMode.Normal
|
||||
exclusiveZone: barExclusionZone
|
||||
@@ -39,6 +49,26 @@ Scope {
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
if (this.WlrLayershell != null) {
|
||||
this.WlrLayershell.keyboardFocus = WlrKeyboardFocus.OnDemand;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Connections {
|
||||
function onRaiseCancelled() {
|
||||
win.WlrLayershell.keyboardFocus = WlrKeyboardFocus.OnDemand;
|
||||
}
|
||||
|
||||
function onRaiseRequested() {
|
||||
// win.WlrLayershell.keyboardFocus = WlrKeyboardFocus.Exclusive;
|
||||
win.refocus();
|
||||
}
|
||||
|
||||
target: FocusManager
|
||||
}
|
||||
|
||||
anchors {
|
||||
left: true
|
||||
right: true
|
||||
|
||||
@@ -3,6 +3,7 @@ import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import Quickshell.Hyprland
|
||||
import Quickshell.Io
|
||||
import Quickshell.Services.Mpris
|
||||
import Quickshell.Services.Notifications
|
||||
import "../Color.js" as Colors
|
||||
@@ -119,6 +120,23 @@ Container {
|
||||
root.previousState = "notified";
|
||||
}
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "logout"
|
||||
|
||||
PropertyChanges {
|
||||
root.boxHeight: 90
|
||||
root.boxRadius: 30
|
||||
root.boxWidth: 330
|
||||
root.visibleTopMargin: 20
|
||||
}
|
||||
|
||||
StateChangeScript {
|
||||
script: {
|
||||
root.stack.replace(logout);
|
||||
root.previousState = "logout";
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -127,6 +145,8 @@ Container {
|
||||
if (root.state == "notified") {
|
||||
root.state = "notified";
|
||||
notificationViewTimer.stop();
|
||||
} else if (root.state == "logout") {
|
||||
root.state = "logout";
|
||||
} else if (MprisManager.getPlaying() == true) {
|
||||
root.state = "mprisToast";
|
||||
} else {
|
||||
@@ -134,6 +154,7 @@ Container {
|
||||
}
|
||||
} else {
|
||||
root.state = "";
|
||||
FocusManager.exitRaise();
|
||||
}
|
||||
}
|
||||
onLatestNotificationChanged: {
|
||||
@@ -148,6 +169,32 @@ Container {
|
||||
root.state == "hovered" ? root.state = "expanded" : undefined;
|
||||
}
|
||||
|
||||
Connections {
|
||||
function onactivated() {
|
||||
console.log("some", root.state);
|
||||
}
|
||||
|
||||
target: root.stack
|
||||
}
|
||||
|
||||
Connections {
|
||||
function onLogoutTriggered() {
|
||||
if (Hyprland.focusedMonitor == root.exclusiveMonitor) {
|
||||
root.state = "logout";
|
||||
}
|
||||
}
|
||||
|
||||
target: IpcManager
|
||||
}
|
||||
|
||||
Connections {
|
||||
function onRaiseCancelled() {
|
||||
root.state = "";
|
||||
}
|
||||
|
||||
target: FocusManager
|
||||
}
|
||||
|
||||
Connections {
|
||||
function onTrackChanged() {
|
||||
if (Hyprland.focusedMonitor == root.monitor) {
|
||||
@@ -260,4 +307,10 @@ Container {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: logout
|
||||
|
||||
Logout {}
|
||||
}
|
||||
}
|
||||
|
||||
18
Bar/Center/Logout.qml
Normal file
18
Bar/Center/Logout.qml
Normal file
@@ -0,0 +1,18 @@
|
||||
import QtQuick
|
||||
import "../../Components/"
|
||||
import "../../Services/"
|
||||
|
||||
Item {
|
||||
CenteredText {
|
||||
text: "some"
|
||||
}
|
||||
|
||||
Shortcut {
|
||||
sequence: "Escape"
|
||||
|
||||
onActivated: {
|
||||
console.log("shortcut triggered");
|
||||
FocusManager.exitRaise();
|
||||
}
|
||||
}
|
||||
}
|
||||
19
Services/FocusManager.qml
Normal file
19
Services/FocusManager.qml
Normal file
@@ -0,0 +1,19 @@
|
||||
pragma Singleton
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
signal raiseCancelled
|
||||
signal raiseRequested
|
||||
|
||||
function exitRaise() {
|
||||
console.log("exiting raise");
|
||||
root.raiseCancelled();
|
||||
}
|
||||
|
||||
function requestRaise() {
|
||||
root.raiseRequested();
|
||||
}
|
||||
}
|
||||
18
Services/IpcManager.qml
Normal file
18
Services/IpcManager.qml
Normal file
@@ -0,0 +1,18 @@
|
||||
pragma Singleton
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
signal logoutTriggered()
|
||||
|
||||
IpcHandler {
|
||||
function logout() {
|
||||
root.logoutTriggered();
|
||||
}
|
||||
|
||||
target: "main"
|
||||
}
|
||||
}
|
||||
@@ -4,3 +4,5 @@ singleton NotificationManager 1.0 NotificationManager.qml
|
||||
singleton WorkspaceManager 1.0 WorkspaceManager.qml
|
||||
singleton BluetoothManager 1.0 BluetoothManager.qml
|
||||
singleton MprisManager 1.0 MprisManager.qml
|
||||
singleton IpcManager 1.0 IpcManager.qml
|
||||
singleton FocusManager 1.0 FocusManager.qml
|
||||
|
||||
Reference in New Issue
Block a user