aboutsummaryrefslogtreecommitdiff
path: root/swaybar/tray/tray.c
AgeCommit message (Collapse)AuthorLines
2024-09-25swaybar: Fix 100% cpu usage if dbus dies.Furkan Sahin-2/+10
Currently, swaybar does not gracefully die if it detects that the dbus connection was lost. Although it's not recommended to restart dbus without restarting the compositor, it can very easily happen. In the case it does, compositor's tray should not consume 100% cpu until it has to be force killed. apply suggestions just setting the bar to not running will call teardown and unref the dbus.
2021-09-14swaybar: fix tray_padding vs min-height re: scaleFurkan Sahin-2/+2
Co-authored-by: xdavidwu <xdavidwuph@gmail.com>
2019-06-08swaybar: do not retry search for tray iconsFurkan Sahin-1/+3
In case a tray icon cannot be found or does not have a desirable size, swaybar retries the search again and again, which increases load on disk and CPU. This commit solves it by storing target_size for each icon, so that swaybar does not search for an icon of some size if it already tried to. Fixes #3789.
2019-01-20Replace wlr_log with sway_logFurkan Sahin-5/+5
This commit mostly duplicates the wlr_log functions, although with a sway_* prefix. (This is very similar to PR #2009.) However, the logging function no longer needs to be replaceable, so sway_log_init's second argument is used to set the exit callback for sway_abort. wlr_log_init is still invoked in sway/main.c This commit makes it easier to remove the wlroots dependency for the helper programs swaymsg, swaybg, swaybar, and swaynag.
2019-01-13swaybar: allow identifiers for output and trayFurkan Sahin-2/+6
This allows `bar output` and `bar tray_output` to specify an output identifier. Output names should still work as well. This parses the output identifier from the xdg_output description, which wlroots currently sets to `make model serial (name)`. Since this could change in the future, all identifier comparisons are guarded by NULL-checks in case the description cannot be parsed to an identifier.
2019-01-02swaybar: free the right item during tray destructionFurkan Sahin-1/+1
Also added a comment to make more obvious the reason for comparing sni->status[0] == 'N'
2018-12-17swaybar: handle new and lost StatusNotifierWatcherFurkan Sahin-0/+29
2018-12-07swaybar: implement tray renderingFurkan Sahin-1/+24
2018-12-07swaybar: add StatusNotifierItem to trayFurkan Sahin-1/+2
2018-12-07swaybar: add StatusNotifierHost to trayFurkan Sahin-0/+13
2018-12-06swaybar: implement icon themes and lookup for trayFurkan Sahin-0/+4
2018-12-05swaybar: add StatusNotifierWatcher to trayFurkan Sahin-0/+7
2018-12-05swaybar: add skeleton dbus code to trayFurkan Sahin-1/+30
2018-10-28swaybar: add tray interfaceFurkan Sahin-0/+21
2018-03-28Start port of swaybar to layer shellFurkan Sahin-398/+0
This starts up the event loop and wayland display and shims out the basic top level rendering concepts. Also includes some changes to incorporate pango into the 1.x codebase properly.
2017-07-16Fix memory leaks in swaybar trayFurkan Sahin-0/+1
2017-07-13Don't trust SNI names, fixes #1274Furkan Sahin-5/+9
If an item doesn't have a well-formed name, it will not be added to the tray.
2017-07-08Adjust _XOPEN_SOURCE value for build on FreeBSD and fix pointer comparison ↵Furkan Sahin-1/+1
error.
2017-06-13Remove Xembed SupportFurkan Sahin-16/+0
Xembed support is premature in sway and should be postponed. This commit only removes swaybar starting xembedsniproxy, if users would like, they can still start xembedsniproxy manually, however there will be no official support.
2017-06-08Fix Catching NewIcon SignalFurkan Sahin-0/+1
The unique name was not copied out of the wire marshalled DBus message data so `sni_uniq_cmp` would always match against junk data.
2017-06-07Reorganize Tray CodeFurkan Sahin-1/+130
Remove tray code from bar.c and render.c
2017-06-07Implement Tray IconsFurkan Sahin-0/+279
This commit implements the StatusNotifierItem protocol, and enables swaybar to show tray icons. It also uses `xembedsniproxy` in order to communicate with xembed applications. The tray is completely optional, and can be disabled on compile time with the `enable-tray` option. Or on runtime with the bar config option `tray_output none`. Overview of changes: In swaybar very little is changed outside the tray subfolder except that all events are now polled in `event_loop.c`, this creates no functional difference. Six bar configuration options were added, these are detailed in sway-bar(5) The tray subfolder is where all protocol implementation takes place and is organised as follows: tray/sni_watcher.c: This file contains the StatusNotifierWatcher. It keeps track of items and hosts and reports when they come or go. tray/tray.c This file contains the StatusNotifierHost. It keeps track of sway's version of the items and represents the tray itself. tray/sni.c This file contains the StatusNotifierItem struct and all communication with individual items. tray/icon.c This file implements the icon theme protocol. It allows for finding icons by name, rather than by pixmap. tray/dbus.c This file allows for asynchronous DBus communication. See #986 #343