add systemtray to bar

This commit is contained in:
lucy 2026-03-09 19:04:29 +01:00
parent 005831c9e9
commit 79795005ae
4 changed files with 54 additions and 0 deletions

View File

@ -55,6 +55,7 @@ Variants {
}
Clock {}
StatusIcons {}
Tray {}
}
}
}

22
modules/Bar/Tray.qml Normal file
View File

@ -0,0 +1,22 @@
import Quickshell.Services.SystemTray
import QtQuick
import qs
import qs.settings
import QtQuick.Layouts
Rectangle {
id: root
implicitWidth: trayRow.implicitWidth + 12
implicitHeight: Settings.config.barHeight / 2 + 6
radius: Settings.config.rounding
color: ThemeLoader.colors.base01
RowLayout {
id: trayRow
anchors.centerIn: parent
Repeater {
id: trayRep
model: SystemTray.items
delegate: TrayItem{}
}
}
}

30
modules/Bar/TrayItem.qml Normal file
View File

@ -0,0 +1,30 @@
import QtQuick
import Quickshell
import Quickshell.Services.SystemTray
import Quickshell.Widgets
import qs
MouseArea {
id: root
required property SystemTrayItem modelData
implicitWidth: trayIcon.implicitWidth
implicitHeight: trayIcon.implicitHeight
acceptedButtons: Qt.LeftButton | Qt.RightButton
IconImage {
id: trayIcon
implicitSize: 16
source: parent.modelData.icon
}
QsMenuAnchor {
id: menu
menu: root.modelData.hasMenu ? root.modelData.menu : null
anchor.item: root
}
onClicked: event => {
if (event.button === Qt.LeftButton) {
modelData.activate();
} else if (modelData.hasMenu) {
menu.open();
}
}
}

View File

@ -1,3 +1,4 @@
//@ pragma UseQApplication
import Quickshell
import QtQuick
import qs.modules.Bar