1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
local astal = require("astal")
local Widget = require("astal.gtk3.widget")
local Tray = astal.require("AstalTray")
local lib = require("lib")
local bind = astal.bind
function Item(item)
return Widget.MenuButton({
class_name = "menubtn",
tooltip_markup = bind(item, "tooltip_markup"),
use_popover = false,
menu_model = bind(item, "menu-model"),
action_group = bind(item, "action-group"):as(
function(ag) return { "dbusmenu", ag } end
),
Widget.Icon({
gicon = bind(item, "gicon"),
}),
})
end
function Items(items)
return lib.map(items, Item)
end
return function()
local tray = Tray.get_default()
return Widget.Box({
class_name = "tray",
visible = bind(tray, "items"):as(lib.is_true),
bind(tray, "items"):as(Items)
})
end
|