quickshell/modules/Bar/MPris.qml

51 lines
1.4 KiB
QML
Raw Normal View History

import Quickshell
import Quickshell.Services.Mpris
import QtQuick
2026-03-19 11:32:23 +01:00
import Qt5Compat.GraphicalEffects
import QtQuick.Layouts
import qs
import qs.settings
import qs.widgets
Rectangle {
2026-03-19 11:32:23 +01:00
layer {
enabled: true
effect: DropShadow {
color: Colors.base01
radius: 4
verticalOffset: 2
horizontalOffset: 2
samples: 18
}
}
id: root
2026-03-19 11:32:23 +01:00
color: Colors.base02
implicitWidth: songLayout.implicitWidth + 14
implicitHeight: Settings.config.barHeight / 1.5
radius: Settings.config.rounding
property var spotify: root.getSpotify()
visible: getSpotify() == null ? false : true
function getSpotify() {
for (var i = 0; i < Mpris.players.values.length; i++) {
2026-03-11 14:14:04 +01:00
if (Mpris.players.values[i].identity == "Spotify" || Mpris.players.values[i] == "spotify") {
return Mpris.players.values[i];
2026-03-11 14:14:04 +01:00
} else {
return null;
}
}
return null;
}
2026-03-11 14:14:04 +01:00
RowLayout {
id: songLayout
anchors.centerIn: parent
CText {
id: playingSong
Layout.maximumWidth: 400
text: root.spotify == null ? "" : root.spotify.trackTitle + " - " + root.spotify.trackArtist
elide: Text.ElideRight
}
}
}