diff options
author | Calvin Lee <cyrus296@gmail.com> | 2017-06-07 16:45:28 -0700 |
---|---|---|
committer | Calvin Lee <cyrus296@gmail.com> | 2017-06-07 17:49:16 -0700 |
commit | 843ad38b3c427adb0bf319e9613d9813c8d9246c (patch) | |
tree | e02a5b06e2b6923371fd53724791c147c18a1fa4 /include/swaybar/bar.h | |
parent | Merge pull request #1232 from johalun/master-freebsd (diff) | |
download | sway-843ad38b3c427adb0bf319e9613d9813c8d9246c.tar.gz sway-843ad38b3c427adb0bf319e9613d9813c8d9246c.tar.zst sway-843ad38b3c427adb0bf319e9613d9813c8d9246c.zip |
Implement Tray Icons
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
Diffstat (limited to 'include/swaybar/bar.h')
-rw-r--r-- | include/swaybar/bar.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/swaybar/bar.h b/include/swaybar/bar.h index 697a48c2..010e1f84 100644 --- a/include/swaybar/bar.h +++ b/include/swaybar/bar.h | |||
@@ -21,6 +21,9 @@ struct output { | |||
21 | struct window *window; | 21 | struct window *window; |
22 | struct registry *registry; | 22 | struct registry *registry; |
23 | list_t *workspaces; | 23 | list_t *workspaces; |
24 | #ifdef ENABLE_TRAY | ||
25 | list_t *items; | ||
26 | #endif | ||
24 | char *name; | 27 | char *name; |
25 | int idx; | 28 | int idx; |
26 | bool focused; | 29 | bool focused; |
@@ -37,6 +40,9 @@ struct workspace { | |||
37 | /** Global bar state */ | 40 | /** Global bar state */ |
38 | extern struct bar swaybar; | 41 | extern struct bar swaybar; |
39 | 42 | ||
43 | /** True if sway needs to render */ | ||
44 | extern bool dirty; | ||
45 | |||
40 | /** | 46 | /** |
41 | * Setup bar. | 47 | * Setup bar. |
42 | */ | 48 | */ |