diff --git a/modules/bar/Bar.qml b/modules/bar/Bar.qml index e2d0279..326dda1 100644 --- a/modules/bar/Bar.qml +++ b/modules/bar/Bar.qml @@ -41,6 +41,7 @@ Variants { Mpris {} Bat {} Pw {} + Tray {} WallPicker {screenHeight: root.screen.height} } } diff --git a/modules/bar/Tray.qml b/modules/bar/Tray.qml new file mode 100644 index 0000000..4f5109c --- /dev/null +++ b/modules/bar/Tray.qml @@ -0,0 +1,52 @@ +pragma ComponentBehavior: Bound +import Quickshell +import Quickshell.Services.SystemTray +import Quickshell.Widgets +import QtQuick +import QtQuick.Layouts +import QtQuick.Effects +import qs +import qs.settings +import qs.widgets + +BarComponent { + id: root + visible: iconRepeater.count != 0 + implicitHeight: Config.moduleHeight + implicitWidth: iconlayout.width + 16 + + RowLayout { + id: iconlayout + anchors.centerIn: root + spacing: 8 + Repeater { + id: iconRepeater + model: SystemTray.items + delegate: Item { + id: iconWrapper + required property var modelData + implicitWidth: 16 + implicitHeight: 16 + IconImage { + anchors.centerIn: parent + source: iconWrapper.modelData.icon + implicitSize: 16 + } + QsMenuAnchor { + id: menu + anchor.item: iconWrapper + menu: iconWrapper.modelData.menu + } + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.LeftButton | Qt.RightButton + onClicked: mouse => { + if (mouse.button == Qt.RightButton) { + menu.open(); + } + } + } + } + } + } +} diff --git a/modules/bar/Tray.qml~ b/modules/bar/Tray.qml~ new file mode 100644 index 0000000..fcb18ac --- /dev/null +++ b/modules/bar/Tray.qml~ @@ -0,0 +1,53 @@ +pragma ComponentBehavior: Bound +import Quickshell +import Quickshell.Services.SystemTray +import Quickshell.Widgets +import QtQuick +import QtQuick.Layouts +import QtQuick.Effects +import qs +import qs.settings + +BarComponent { + id: root + visible: iconRepeater.count != 0 + implicitHeight: Config.moduleHeight + implicitWidth: iconlayout.width + 16 + color: Colors.moduleBg + radius: Config.rounding + + RowLayout { + id: iconlayout + anchors.centerIn: root + spacing: 8 + Repeater { + id: iconRepeater + model: SystemTray.items + delegate: Item { + id: iconWrapper + required property var modelData + implicitWidth: 16 + implicitHeight: 16 + IconImage { + anchors.centerIn: parent + source: iconWrapper.modelData.icon + implicitSize: 16 + } + QsMenuAnchor { + id: menu + anchor.item: iconWrapper + menu: iconWrapper.modelData.menu + } + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.LeftButton | Qt.RightButton + onClicked: mouse => { + if (mouse.button == Qt.RightButton) { + menu.open(); + } + } + } + } + } + } +} diff --git a/settings/settings.ini b/settings/settings.ini index c46fe67..4f97787 100644 --- a/settings/settings.ini +++ b/settings/settings.ini @@ -3,7 +3,7 @@ barHeight=30 floating=false font=Iosevka fontSize=16 -iconSize=14 +iconSize=12 opacity=1 primaryMon=eDP-1 rounding=16