quickshell/modules/bar/Pw.qml
2026-08-25 20:11:19 +02:00

52 lines
1.4 KiB
QML

pragma ComponentBehavior: Bound
import Quickshell.Services.Pipewire
import Quickshell.Io
import Quickshell.Widgets
import Quickshell
import QtQuick
import QtQuick.Layouts
import QtQuick.Effects
import qs
import qs.widgets
import qs.settings
import qs.modules.Services
BarComponent {
id: root
color: clickHandler.containsMouse ? Colors.activeModuleBg : Colors.moduleBg
property PwNode defaultAudio: Pipewire.ready ? Pipewire.defaultAudioSink : null
property bool mute: Pipewire.ready ? defaultAudio?.audio.muted : null
implicitHeight: Config.moduleHeight
implicitWidth: pwLayout.implicitWidth + 16
RowLayout {
id: pwLayout
anchors.centerIn: root
spacing: 4
IconImage {
source: Quickshell.iconPath(Audio.getVolumeIcon(Audio.defaultAudio))
implicitSize: 14
layer.enabled: true
layer.effect: MultiEffect {
colorization: 1.0
colorizationColor: Colors.text
brightness: 0.5
}
}
StyledText {
text: Audio.percentage + "%"
opacity: Audio.muted ? 0.6 : 1.0
}
}
MouseArea {
id: clickHandler
hoverEnabled: true
acceptedButtons: Qt.LeftButton
cursorShape: Qt.PointingHandCursor
anchors.fill: root
onClicked: volPopup.visible = !volPopup.visible
}
VolPopup {
id: volPopup
anchor.item: root
}
}