summaryrefslogtreecommitdiff
path: root/widget/bar/Bar.tsx
diff options
context:
space:
mode:
authorLibravatar Mora Unie Youer <[email protected]>2025-03-02 17:56:12 +0300
committerLibravatar Mora Unie Youer <[email protected]>2025-03-02 17:57:55 +0300
commite79fa091cfbdbd9dfe2ed19a0a5f92604047b0a9 (patch)
treeaca9f03423c6cd8566a0204aeda8b31e1f83b989 /widget/bar/Bar.tsx
parentfeat: basic topbar features (diff)
downloadags-config-e79fa091cfbdbd9dfe2ed19a0a5f92604047b0a9.tar.gz
ags-config-e79fa091cfbdbd9dfe2ed19a0a5f92604047b0a9.tar.bz2
ags-config-e79fa091cfbdbd9dfe2ed19a0a5f92604047b0a9.tar.lz
ags-config-e79fa091cfbdbd9dfe2ed19a0a5f92604047b0a9.tar.xz
ags-config-e79fa091cfbdbd9dfe2ed19a0a5f92604047b0a9.tar.zst
ags-config-e79fa091cfbdbd9dfe2ed19a0a5f92604047b0a9.zip
feat: basic tray and improved workspaces buttons
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>