mpris popup working

This commit is contained in:
2026-08-09 17:02:40 +01:00
parent 0203236575
commit 6cce500670
2 changed files with 191 additions and 2 deletions

View File

@@ -6,8 +6,7 @@ import Quickshell.Services.Mpris
Singleton {
id: root
property MprisPlayer defaultPlayer: Mpris.players.values[0]
property real pos: defaultPlayer.position / defaultPlayer.length
property MprisPlayer defaultPlayer: Mpris.players.values[0] || null
function getPlaying() {
if (!defaultPlayer) {
@@ -17,6 +16,55 @@ Singleton {
}
}
function getTimeString() {
let trackInfo = getTrackInfo();
let position = trackInfo["position"];
let length = trackInfo["length"];
if (length.hours > 0) {
return position.hours + ":" + position.minutes + ":" + position.seconds + "/" + length.hours
+ ":" + length.minutes + ":" + length.seconds;
} else {
return position.minutes + ":" + position.seconds + "/" + length.minutes + ":" + length.seconds;
}
}
function getTrackInfo() {
let trackName = root.defaultPlayer.trackTitle;
let trackArtist = root.defaultPlayer.trackArtist;
let trackAlbum = root.defaultPlayer.trackAlbum;
let trackPosition = root.defaultPlayer.position;
let trackLength = root.defaultPlayer.length;
let trackArt = root.defaultPlayer.trackArtUrl;
return {
"name": trackName,
"artist": trackArtist,
"album": trackAlbum,
"position": msToArray(trackPosition),
"length": msToArray(trackLength),
"lengthRemaining": msToArray(trackLength - trackPosition),
"lengthPercent": trackPosition / trackLength,
"albumArt": trackArt
};
}
function msToArray(time) {
time = Math.max(0, Number(time));
const inthours = Math.floor(time / 3600000);
const intminutes = Math.floor((time % 60000) / 60);
const intseconds = Math.floor((time % 1000) % 60);
const hours = String(inthours).padStart(2, "0");
const minutes = String(intminutes).padStart(2, "0");
const seconds = String(intseconds).padStart(2, "0");
return {
hours,
minutes,
seconds
};
}
function prev() {
defaultPlayer.previous();
}