Something went wrong. Try again.
dope ass quickshell bar
Something went wrong. Try again.
quickshell TrayMenuPopup.qml
3.6 kB · 99 lines
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100import QtQuick 2.15import Quickshellimport Quickshell.Services.SystemTray
PopupWindow { id: trayMenuPopup
required property var bar
anchor.window: bar anchor.rect.x: bar.trayMenuAnchorX anchor.rect.y: bar.implicitHeight implicitWidth: 220 implicitHeight: trayMenuCol.implicitHeight + 8 grabFocus: true color: Config.color("background") onVisibleChanged: if (!visible) { bar.activeTrayMenu = null; bar.activeSubmenuEntry = null }
QsMenuOpener { id: trayMenuOpener menu: bar.activeTrayMenu }
Column { id: trayMenuCol x: 4; y: 4 width: parent.width - 8
Repeater { model: trayMenuOpener.children
delegate: Item { id: menuEntry required property var modelData width: trayMenuCol.width height: menuEntry.modelData.isSeparator ? 9 : 36
Rectangle { visible: menuEntry.modelData.isSeparator anchors.centerIn: parent width: parent.width height: 1 color: Config.color("separator") }
Rectangle { visible: !menuEntry.modelData.isSeparator anchors.fill: parent radius: 3 color: menuItemArea.containsMouse && menuEntry.modelData.enabled ? Config.color("surface") : Config.color("transparent")
Text { anchors { left: parent.left leftMargin: 10 right: parent.right rightMargin: menuEntry.modelData.hasChildren ? 24 : 10 verticalCenter: parent.verticalCenter } text: menuEntry.modelData.text color: menuEntry.modelData.enabled ? Config.color("foreground") : Config.color("disabled") font.family: "Inter" font.pixelSize: 14 font.weight: 700 elide: Text.ElideRight }
Text { visible: menuEntry.modelData.hasChildren anchors { right: parent.right; rightMargin: 8; verticalCenter: parent.verticalCenter } text: "›" color: Config.color("foreground") font.family: "Inter" font.pixelSize: 16 }
MouseArea { id: menuItemArea anchors.fill: parent hoverEnabled: true enabled: menuEntry.modelData.enabled && !menuEntry.modelData.isSeparator onEntered: { if (menuEntry.modelData.hasChildren) bar.activeSubmenuEntry = menuEntry.modelData else bar.activeSubmenuEntry = null } onClicked: { if (!menuEntry.modelData.hasChildren) { menuEntry.modelData.triggered() trayMenuPopup.visible = false } } } } } } }}