summaryrefslogtreecommitdiff
path: root/.config/quickshell/Services/Song.qml
diff options
context:
space:
mode:
authorSam Nystrom <sam@samnystrom.dev>2026-01-15 16:53:43 -0500
committerSam Nystrom <sam@samnystrom.dev>2026-01-15 16:53:43 -0500
commit53008538e5bef961e9ceb5abc5c5ee05a559e97d (patch)
tree3ad2f4fa7fbc88ff4bb67c75395cc4acdb9c09fb /.config/quickshell/Services/Song.qml
parent3ac17574dbcfe68b2fba11aeeb445f04d1170c2a (diff)
update qs config
Diffstat (limited to '.config/quickshell/Services/Song.qml')
-rw-r--r--.config/quickshell/Services/Song.qml45
1 files changed, 45 insertions, 0 deletions
diff --git a/.config/quickshell/Services/Song.qml b/.config/quickshell/Services/Song.qml
new file mode 100644
index 0000000..a4dc969
--- /dev/null
+++ b/.config/quickshell/Services/Song.qml
@@ -0,0 +1,45 @@
+pragma Singleton
+
+import Quickshell
+import Quickshell.Io
+import QtQuick
+
+Singleton {
+ id: root
+ property string file
+ property string artist
+ property string title
+ property string coverPath: "/home/samn/Music/cover.jpg"
+
+ Process {
+ id: songProc
+ command: ["rmpc", "song"]
+ running: true
+ stdout: StdioCollector {
+ onStreamFinished: {
+ var oldFile = root.file
+ var obj = JSON.parse(this.text);
+
+ root.file = obj.file
+ root.artist = obj.metadata.artist
+ root.title = obj.metadata.title
+
+ if (obj.file !== oldFile) {
+ coverProc.exec(["ffmpeg", "-y", "-i", "/home/samn/Music/" + obj.file, "-an", "-c:v", "copy", "/home/samn/Music/cover.jpg"])
+ }
+ }
+ }
+ }
+
+ Process {
+ id: coverProc
+ running: false
+ }
+
+ Timer {
+ interval: 5000
+ running: true
+ repeat: true
+ onTriggered: songProc.running = true
+ }
+}