mirror of
https://github.com/kossLAN/dots.git
synced 2025-11-04 22:49:50 -05:00
65 lines
1.5 KiB
QML
65 lines
1.5 KiB
QML
pragma ComponentBehavior: Bound
|
|
|
|
import QtQuick
|
|
import QtQuick.Layouts
|
|
import Quickshell.Services.Pipewire
|
|
import Quickshell.Widgets
|
|
import qs
|
|
import qs.widgets
|
|
|
|
ColumnLayout {
|
|
id: root
|
|
|
|
// headphones
|
|
// don't load until the node is not null
|
|
Loader {
|
|
id: sinkLoader
|
|
active: sink !== null
|
|
Layout.preferredWidth: 350
|
|
Layout.preferredHeight: 45
|
|
|
|
property PwNode sink: Pipewire.defaultAudioSink
|
|
|
|
sourceComponent: VolumeCard {
|
|
id: sinkCard
|
|
node: sinkLoader.sink
|
|
button: StyledMouseArea {
|
|
property bool checked: !sinkCard.node.audio.muted
|
|
|
|
// IconImage {}
|
|
|
|
onClicked: {
|
|
sinkCard.node.audio.muted = !sinkCard.node.audio.muted;
|
|
}
|
|
}
|
|
|
|
anchors.fill: parent
|
|
}
|
|
}
|
|
|
|
// microphone, same as above
|
|
Loader {
|
|
id: sourceLoader
|
|
active: source !== null
|
|
Layout.preferredWidth: 350
|
|
Layout.preferredHeight: 45
|
|
|
|
property PwNode source: Pipewire.defaultAudioSource
|
|
|
|
sourceComponent: VolumeCard {
|
|
id: sourceCard
|
|
node: sourceLoader.source
|
|
button: StyledMouseArea {
|
|
property bool checked: !sourceCard.node.audio.muted
|
|
|
|
// IconImage {}
|
|
|
|
onClicked: {
|
|
sourceCard.node.audio.muted = !sourceCard.node.audio.muted;
|
|
}
|
|
}
|
|
|
|
anchors.fill: parent
|
|
}
|
|
}
|
|
}
|