50 lines
986 B
QML
50 lines
986 B
QML
|
import QtQuick
|
||
|
import QtQuick.Controls
|
||
|
import QtQuick.Layouts
|
||
|
import Quickshell
|
||
|
import Quickshell.Services.Pipewire
|
||
|
|
||
|
ShellRoot {
|
||
|
FloatingWindow {
|
||
|
// match the system theme background color
|
||
|
color: contentItem.palette.active.window
|
||
|
|
||
|
ScrollView {
|
||
|
anchors.fill: parent
|
||
|
contentWidth: availableWidth
|
||
|
|
||
|
ColumnLayout {
|
||
|
anchors.fill: parent
|
||
|
anchors.margins: 10
|
||
|
|
||
|
// get a list of nodes that output to the default sink
|
||
|
PwNodeLinkTracker {
|
||
|
id: linkTracker
|
||
|
node: Pipewire.defaultAudioSink
|
||
|
}
|
||
|
|
||
|
MixerEntry {
|
||
|
node: Pipewire.defaultAudioSink
|
||
|
}
|
||
|
|
||
|
Rectangle {
|
||
|
Layout.fillWidth: true
|
||
|
color: palette.active.text
|
||
|
implicitHeight: 1
|
||
|
}
|
||
|
|
||
|
Repeater {
|
||
|
model: linkTracker.linkGroups
|
||
|
|
||
|
MixerEntry {
|
||
|
required property PwLinkGroup modelData
|
||
|
// Each link group contains a source and a target.
|
||
|
// Since the target is the default sink, we want the source.
|
||
|
node: modelData.source
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|