Files
illogical-impulse/dots/.config/quickshell/ii/modules/waffle/notificationCenter/WaffleNotificationCenter.qml
T

86 lines
2.0 KiB
QML

import QtQuick
import Quickshell
import Quickshell.Io
import Quickshell.Wayland
import Quickshell.Hyprland
import qs
import qs.services
import qs.modules.common
import qs.modules.common.widgets
Scope {
id: root
Connections {
target: GlobalStates
function onSidebarRightOpenChanged() {
if (GlobalStates.sidebarRightOpen) panelLoader.active = true;
}
}
Loader {
id: panelLoader
active: GlobalStates.sidebarRightOpen
sourceComponent: PanelWindow {
id: panelWindow
exclusiveZone: 0
WlrLayershell.namespace: "quickshell:wNotificationCenter"
WlrLayershell.keyboardFocus: WlrKeyboardFocus.OnDemand
color: "transparent"
anchors {
bottom: true
top: true
right: true
}
implicitWidth: content.implicitWidth
implicitHeight: content.implicitHeight
HyprlandFocusGrab {
id: focusGrab
active: true
windows: [panelWindow]
onCleared: content.close();
}
Connections {
target: GlobalStates
function onSidebarRightOpenChanged() {
if (!GlobalStates.sidebarRightOpen) content.close();
}
}
NotificationCenterContent {
id: content
anchors.fill: parent
onClosed: {
GlobalStates.sidebarRightOpen = false;
panelLoader.active = false;
}
}
}
}
function toggleOpen() {
GlobalStates.sidebarRightOpen = !GlobalStates.sidebarRightOpen;
}
IpcHandler {
target: "sidebarRight"
function toggle() {
root.toggleOpen();
}
}
GlobalShortcut {
name: "sidebarRightToggle"
description: "Toggles notification center on press"
onPressed: root.toggleOpen();
}
}