summaryrefslogtreecommitdiff
path: root/widget
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--widget/bar/Bar.tsx (renamed from widget/Bar.tsx)26
1 files changed, 25 insertions, 1 deletions
diff --git a/widget/Bar.tsx b/widget/bar/Bar.tsx
index 02aa3ba..b057cdb 100644
--- a/widget/Bar.tsx
+++ b/widget/bar/Bar.tsx
@@ -1,5 +1,6 @@
import { App, Astal, Gtk, Gdk } from "astal/gtk4"
-import { exec, GLib, Variable } from "astal"
+import { bind, exec, GLib, Variable } from "astal"
+import AstalTray from "gi://AstalTray?version=0.1";
type NiriWorkspace = {
id: number,
@@ -58,6 +59,28 @@ function Workspaces(args: WorkspacesArguments) {
}
+function Tray() {
+ // BUG: personally I have one fantom icon being along other tray icons
+ // For now I don't have any ideas why this is happening
+ // TODO: rewrite this using more elements, as this is really restricted design
+ const tray = AstalTray.get_default();
+
+ return <box cssClasses={["Tray"]}>
+ {bind(tray, "items").as(items =>
+ items.map(item =>
+ <menubutton
+ setup={self => self.insert_action_group("dbusmenu", item.actionGroup)}
+ tooltipText={bind(item, "tooltipMarkup")}
+ >
+ <image gicon={bind(item, "gicon")} />
+ {Gtk.PopoverMenu.new_from_model(item.menuModel)}
+ </menubutton>
+ )
+ )}
+ </box>
+}
+
+
type TimeArguments = {
format: string,
};
@@ -91,6 +114,7 @@ export default function Bar(gdkmonitor: Gdk.Monitor) {
</box>
<box halign={Gtk.Align.END}>
+ <Tray />
<Time format="%I:%M:%S %p %Z" />
</box>
</centerbox>