diff options
author | Freya Murphy <freya@freyacat.org> | 2025-06-17 15:14:45 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2025-06-17 15:14:45 -0400 |
commit | 1173df26fd78fdd59679645004847237ed7a0a54 (patch) | |
tree | b75e6bd3ee1a878b1a3e74d94fb9ea0bb94c14a7 /pkgs/astal/src/widget/bar/tray.lua | |
parent | add upowerd (diff) | |
download | dotfiles-nix-1173df26fd78fdd59679645004847237ed7a0a54.tar.gz dotfiles-nix-1173df26fd78fdd59679645004847237ed7a0a54.tar.bz2 dotfiles-nix-1173df26fd78fdd59679645004847237ed7a0a54.zip |
add astal package, update flake to support packages
Diffstat (limited to 'pkgs/astal/src/widget/bar/tray.lua')
-rw-r--r-- | pkgs/astal/src/widget/bar/tray.lua | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/pkgs/astal/src/widget/bar/tray.lua b/pkgs/astal/src/widget/bar/tray.lua new file mode 100644 index 0000000..9046494 --- /dev/null +++ b/pkgs/astal/src/widget/bar/tray.lua @@ -0,0 +1,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.empty):as(lib.neg), + bind(tray, "items"):as(Items) + }) +end |