forked from Shinonome/dots-hyprland
bar brightness scroll
This commit is contained in:
@@ -9,6 +9,7 @@ Rectangle {
|
||||
required property var bar
|
||||
readonly property HyprlandMonitor monitor: Hyprland.monitorFor(bar.screen)
|
||||
readonly property Toplevel activeWindow: ToplevelManager.activeToplevel
|
||||
property int preferredWidth: 400
|
||||
|
||||
height: parent.height
|
||||
width: colLayout.width
|
||||
@@ -25,13 +26,17 @@ Rectangle {
|
||||
StyledText {
|
||||
font.pointSize: Appearance.font.pointSize.smaller
|
||||
color: Appearance.colors.colSubtext
|
||||
text: activeWindow.activated ? activeWindow?.appId : "Desktop"
|
||||
Layout.preferredWidth: preferredWidth
|
||||
elide: Text.ElideRight
|
||||
text: activeWindow?.activated ? activeWindow?.appId : "Desktop"
|
||||
}
|
||||
|
||||
StyledText {
|
||||
font.pointSize: Appearance.font.pointSize.small
|
||||
color: Appearance.colors.colOnLayer0
|
||||
text: activeWindow.activated ? activeWindow?.title : `Workspace ${monitor.activeWorkspace?.id}`
|
||||
Layout.preferredWidth: preferredWidth
|
||||
elide: Text.ElideRight
|
||||
text: activeWindow?.activated ? activeWindow?.title : `Workspace ${monitor.activeWorkspace?.id}`
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -30,6 +30,17 @@ Scope {
|
||||
ActiveWindow {
|
||||
bar: barRoot
|
||||
}
|
||||
// Scroll to switch workspaces
|
||||
|
||||
WheelHandler {
|
||||
onWheel: (event) => {
|
||||
if (event.angleDelta.y < 0)
|
||||
Brightness.value = -1;
|
||||
else if (event.angleDelta.y > 0)
|
||||
Brightness.value = 1;
|
||||
}
|
||||
acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
pragma Singleton
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
property string brightness
|
||||
property int value: 0
|
||||
|
||||
function refresh() {
|
||||
getBrightness.running = true;
|
||||
}
|
||||
|
||||
onValueChanged: () => {
|
||||
if (value > 0) {
|
||||
increaseBrightness.running = true;
|
||||
root.value = 0;
|
||||
} else if (value < 0) {
|
||||
decreaseBrightness.running = true;
|
||||
root.value = 0;
|
||||
}
|
||||
getBrightness.running = true;
|
||||
}
|
||||
|
||||
Process {
|
||||
id: getBrightness
|
||||
|
||||
command: ["sh", "-c", "brightnessctl -m i | cut -d, -f4"]
|
||||
running: true
|
||||
onExited: {
|
||||
running = false;
|
||||
}
|
||||
|
||||
stdout: SplitParser {
|
||||
onRead: (data) => {
|
||||
root.brightness = data;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Process {
|
||||
id: decreaseBrightness
|
||||
|
||||
command: ["brightnessctl", "set", "5%-"]
|
||||
running: false
|
||||
onExited: {
|
||||
running = false;
|
||||
}
|
||||
}
|
||||
|
||||
Process {
|
||||
id: increaseBrightness
|
||||
|
||||
command: ["brightnessctl", "set", "5%+"]
|
||||
running: false
|
||||
onExited: {
|
||||
running = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user