Something went wrong. Try again.
dope ass quickshell bar
Something went wrong. Try again.
quickshell AudioPopup.qml
2.3 kB · 82 lines
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283import QtQuick 2.15import Quickshellimport Quickshell.Services.Pipewire
PopupWindow { id: audioPopup
required property var bar
anchor.window: bar anchor.rect.x: bar.width - 300 anchor.rect.y: bar.implicitHeight implicitWidth: 300 implicitHeight: audioSinks.length > 0 ? Math.min(audioSinks.length * 48 + 8, 400) : 52 grabFocus: true color: Config.color("background")
property var audioSinks: Pipewire.nodes.values.filter(n => !n.isStream && n.isSink && n.audio !== null)
PwObjectTracker { objects: Pipewire.defaultAudioSink ? [Pipewire.defaultAudioSink] : [] }
Text { anchors.centerIn: parent visible: audioPopup.audioSinks.length === 0 text: "No audio devices" color: Config.color("foreground") font.family: "Inter" font.pixelSize: 16 font.weight: 700 }
ListView { anchors { fill: parent margins: 4 } visible: audioPopup.audioSinks.length > 0 model: audioPopup.audioSinks clip: true
delegate: Item { id: sinkItem required property var modelData width: ListView.view.width height: 48
Rectangle { anchors.fill: parent radius: 4 color: sinkMouseArea.containsMouse ? Config.color("surface") : Config.color("transparent") }
Text { anchors { left: parent.left leftMargin: 10 right: parent.right rightMargin: 10 verticalCenter: parent.verticalCenter } text: sinkItem.modelData.description || sinkItem.modelData.name color: Config.color("foreground") font.family: "Inter" font.pixelSize: 16 font.weight: 700 elide: Text.ElideRight }
MouseArea { id: sinkMouseArea anchors.fill: parent hoverEnabled: true onClicked: { Pipewire.preferredDefaultAudioSink = sinkItem.modelData audioPopup.visible = false } } } }}