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,99 @@
import qs.config
import qs.modules.components
import qs.services
import QtQuick
import QtQuick.Layouts
import Quickshell.Wayland
import Quickshell
import Quickshell.Widgets
Scope {
id: root
Connections {
target: Brightness
function onBrightnessChanged() {
root.shouldShowOsd = true;
hideTimer.restart();
}
}
property var monitor: Brightness.monitors.length > 0 ? Brightness.monitors[0] : null
property bool shouldShowOsd: false
Timer {
id: hideTimer
interval: 3000
onTriggered: root.shouldShowOsd = false
}
LazyLoader {
active: root.shouldShowOsd
PanelWindow {
visible: Config.runtime.overlays.brightnessOverlayEnabled && Config.runtime.overlays.enabled
WlrLayershell.namespace: "nucleus:brightnessOsd"
exclusiveZone: 0
anchors.top: Config.runtime.overlays.brightnessOverlayPosition.startsWith("top")
anchors.bottom: Config.runtime.overlays.brightnessOverlayPosition.startsWith("bottom")
anchors.right: Config.runtime.overlays.brightnessOverlayPosition.endsWith("right")
anchors.left: Config.runtime.overlays.brightnessOverlayPosition.endsWith("left")
margins {
top: Metrics.margin(10)
bottom: Metrics.margin(10)
left: Metrics.margin(10)
right: Metrics.margin(10)
}
implicitWidth: 460
implicitHeight: 105
color: "transparent"
mask: Region {}
Rectangle {
anchors.fill: parent
radius: Appearance.rounding.childish
color: Appearance.m3colors.m3background
RowLayout {
spacing: Metrics.spacing(10)
anchors {
fill: parent
leftMargin: Metrics.margin(15)
rightMargin: Metrics.margin(25)
}
MaterialSymbol {
property real brightnessLevel: Math.floor(Brightness.getMonitorForScreen(Hyprland.focusedMonitor)?.multipliedBrightness*100)
icon: {
if (brightnessLevel > 66) return "brightness_high"
else if (brightnessLevel > 33) return "brightness_medium"
else return "brightness_low"
}
iconSize: Metrics.iconSize(30)
}
ColumnLayout {
implicitHeight: 40
spacing: Metrics.spacing(5)
StyledText {
animate: false
text: "Brightness - " + Math.round(monitor.brightness * 100) + '%'
font.pixelSize: Metrics.fontSize(18)
}
StyledSlider {
implicitHeight: 35
from: 0
to: 100
value: Math.round(monitor.brightness * 100)
}
}
}
}
}
}
}