quickshell and hyprland additions

This commit is contained in:
2026-03-15 13:56:00 +02:00
parent c9c27d1554
commit 1ad06b82a6
509 changed files with 68371 additions and 19 deletions

View File

@@ -0,0 +1,97 @@
import qs.config
import qs.modules.components
import qs.modules.functions
import qs.services
import QtQuick
import Quickshell
import QtQuick.Layouts
import Quickshell.Wayland
import Quickshell.Io
import Quickshell.Hyprland
import QtQuick.Controls
import Quickshell.Services.Pipewire
import Qt5Compat.GraphicalEffects
PanelWindow {
id: sidebarRight
WlrLayershell.namespace: "nucleus:sidebarRight"
WlrLayershell.layer: WlrLayer.Top
visible: Config.initialized && Globals.visiblility.sidebarRight && !Globals.visiblility.sidebarLeft
color: "transparent"
exclusiveZone: 0
WlrLayershell.keyboardFocus: Compositor.require("hyprland") && Globals.visiblility.sidebarRight
property real sidebarRightWidth: 500
implicitWidth: Compositor.screenW
HyprlandFocusGrab {
id: grab
active: Compositor.require("hyprland")
windows: [sidebarRight]
}
anchors {
top: true
right: (Config.runtime.bar.position === "top" || Config.runtime.bar.position === "bottom" || Config.runtime.bar.position === "right")
bottom: true
left: (Config.runtime.bar.position === "left")
}
margins {
top: Config.runtime.bar.margins
bottom: Config.runtime.bar.margins
left: Metrics.margin("small")
right: Metrics.margin("small")
}
PwObjectTracker {
objects: [Pipewire.defaultAudioSink]
}
property var sink: Pipewire.defaultAudioSink?.audio
MouseArea {
anchors.fill: parent
z: 0
onPressed: Globals.visiblility.sidebarRight = false
}
StyledRect {
id: container
z: 1
color: Appearance.m3colors.m3background
radius: Metrics.radius("large")
width: sidebarRight.sidebarRightWidth
anchors {
top: parent.top
bottom: parent.bottom
right: parent.right
}
FocusScope {
focus: true
anchors.fill: parent
Keys.onPressed: {
if (event.key === Qt.Key_Escape) {
Globals.visiblility.sidebarRight = false;
}
}
SidebarRightContent {}
}
}
function togglesidebarRight() {
Globals.visiblility.sidebarRight = !Globals.visiblility.sidebarRight;
}
IpcHandler {
target: "sidebarRight"
function toggle() {
togglesidebarRight();
}
}
}