143 lines
2.4 KiB
QML
143 lines
2.4 KiB
QML
import Quickshell
|
|
import Quickshell.Io // for Process
|
|
import QtQuick
|
|
import Quickshell.Hyprland
|
|
import Quickshell.Services.SystemTray
|
|
|
|
Variants {
|
|
model: Quickshell.screens;
|
|
|
|
delegate: Component {
|
|
PanelWindow {
|
|
// the screen from the screens list will be injected into this
|
|
// property
|
|
required property var modelData
|
|
|
|
// we can then set the window's screen to the injected property
|
|
screen: modelData
|
|
|
|
anchors {
|
|
top: true
|
|
left: true
|
|
right: true
|
|
}
|
|
|
|
implicitHeight: 30
|
|
color: "transparent"
|
|
|
|
Singleton {
|
|
id: root
|
|
property string time
|
|
|
|
Timer {
|
|
id: timer
|
|
interval: 1000
|
|
running: true
|
|
repeat: true
|
|
onTriggered: dateProc.running = true
|
|
}
|
|
}
|
|
|
|
Text {
|
|
// give the text an ID we can refer to elsewhere in the file
|
|
id: clock
|
|
|
|
anchors.centerIn: parent
|
|
color: "white"
|
|
|
|
// create a process management object
|
|
Process {
|
|
id: dateProc
|
|
command: ["date", "+%a, %d %b %I:%M %P"]
|
|
running: true
|
|
|
|
stdout: StdioCollector {
|
|
onStreamFinished: clock.text = this.text
|
|
}
|
|
}
|
|
|
|
Timer {
|
|
interval: 1000
|
|
|
|
running: true
|
|
|
|
repeat: true
|
|
|
|
onTriggered: dateProc.running = true
|
|
}
|
|
}
|
|
|
|
Text {
|
|
id: playbackTitle
|
|
x: 218
|
|
color: "white"
|
|
|
|
Process {
|
|
id: playbackProc
|
|
command: ["/home/user/.scripts/now-playing"]
|
|
|
|
running: true
|
|
|
|
stdout: StdioCollector {
|
|
onStreamFinished: playbackTitle.text = this.text
|
|
}
|
|
}
|
|
|
|
Timer {
|
|
interval: 300
|
|
running: true
|
|
repeat: true
|
|
onTriggered: playbackProc.running = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ListView {
|
|
width: 200; height: 400
|
|
x: 120
|
|
model: Hyprland.focusedWorkspace
|
|
|
|
delegate: Text {
|
|
color: "white"
|
|
required property HyprlandWorkspace modelData
|
|
text: modelData.name
|
|
}
|
|
}
|
|
|
|
Row {
|
|
x: 2035
|
|
spacing: 8
|
|
|
|
Repeater {
|
|
model: SystemTray.items
|
|
|
|
Image {
|
|
required property SystemTrayItem modelData
|
|
source: modelData.icon
|
|
width: 20; height: 20
|
|
}
|
|
}
|
|
}
|
|
|
|
Text {
|
|
id: updateCount
|
|
x: 2270
|
|
color: "white"
|
|
|
|
Process {
|
|
id: updateProc
|
|
command: ["/home/user/.scripts/check-update"]
|
|
|
|
running: true
|
|
|
|
stdout: StdioCollector {
|
|
onStreamFinished: updateCount.text = this.text
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|