Compare commits

...

3 commits

3 changed files with 41 additions and 16 deletions

View file

@ -12,7 +12,7 @@ M.BarSection {
tooltip: "" tooltip: ""
property int _playerIdx: 0 property int _playerIdx: 0
readonly property var _players: Mpris.players.values ?? [] readonly property var _players: (Mpris.players.values ?? []).filter(p => p.trackTitle || p.playbackState === MprisPlaybackState.Playing || p.playbackState === MprisPlaybackState.Paused)
readonly property MprisPlayer player: _players[_playerIdx] ?? _players[0] ?? null readonly property MprisPlayer player: _players[_playerIdx] ?? _players[0] ?? null
readonly property bool playing: player?.playbackState === MprisPlaybackState.Playing readonly property bool playing: player?.playbackState === MprisPlaybackState.Playing

View file

@ -69,7 +69,7 @@ M.BarSection {
Timer { Timer {
id: _collapseTimer id: _collapseTimer
interval: 500 interval: 1500
onTriggered: root._expanded = false onTriggered: root._expanded = false
} }
@ -81,7 +81,8 @@ M.BarSection {
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: root._expanded = !root._expanded onClicked: if (root.sink?.audio)
root.sink.audio.muted = !root.sink.audio.muted
} }
} }
M.BarLabel { M.BarLabel {
@ -92,7 +93,8 @@ M.BarSection {
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: root._expanded = !root._expanded onClicked: if (root.sink?.audio)
root.sink.audio.muted = !root.sink.audio.muted
} }
} }
@ -197,18 +199,40 @@ M.BarSection {
} }
} }
// Sink name // Sink name click to expand/collapse device list
Text { Item {
width: parent.width width: parent.width
height: 18 height: 22
horizontalAlignment: Text.AlignHCenter
Text {
anchors.left: parent.left
anchors.right: chevron.left
anchors.leftMargin: 12
anchors.rightMargin: 4
anchors.verticalCenter: parent.verticalCenter
text: root.sink?.description ?? root.sink?.name ?? "" text: root.sink?.description ?? root.sink?.name ?? ""
color: M.Theme.base04 color: M.Theme.base04
font.pixelSize: M.Theme.fontSize - 2 font.pixelSize: M.Theme.fontSize - 2
font.family: M.Theme.fontFamily font.family: M.Theme.fontFamily
elide: Text.ElideRight elide: Text.ElideRight
leftPadding: 12 }
rightPadding: 12
Text {
id: chevron
anchors.right: parent.right
anchors.rightMargin: 12
anchors.verticalCenter: parent.verticalCenter
text: root._expanded ? "\uF077" : "\uF078"
color: M.Theme.base04
font.pixelSize: M.Theme.fontSize - 3
font.family: M.Theme.iconFontFamily
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: root._expanded = !root._expanded
}
} }
// Expanded: output device list // Expanded: output device list

View file

@ -77,7 +77,8 @@ void main() {
if (wf > 0.01 && edgeFactor > 0.0) { if (wf > 0.01 && edgeFactor > 0.0) {
// Vary shimmer color across theme gradient using angle + position // Vary shimmer color across theme gradient using angle + position
float angle = atan(p.y, p.x); float angle = atan(p.y, p.x);
float t = fract((angle + 3.14159) / 6.28318 + center.x * 0.003 + center.y * 0.005); float rawT = fract((angle + 3.14159) / 6.28318 + center.x * 0.003 + center.y * 0.005);
float t = abs(rawT * 2.0 - 1.0); // triangle wave → uC0→uC1→uC2→uC1→uC0, no hard jump
vec3 shimmerColor = themeGradient(t); vec3 shimmerColor = themeGradient(t);
float shimmer = edgeFactor * wf; float shimmer = edgeFactor * wf;