summaryrefslogtreecommitdiff
path: root/swaybar/config.c
diff options
context:
space:
mode:
authorCalvin Lee <[email protected]>2017-06-07 16:45:28 -0700
committerCalvin Lee <[email protected]>2017-06-07 17:49:16 -0700
commit843ad38b3c427adb0bf319e9613d9813c8d9246c (patch)
treee02a5b06e2b6923371fd53724791c147c18a1fa4 /swaybar/config.c
parentfd47a30e75cccfc3789eafa4bfabd66f4696099b (diff)
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 'swaybar/config.c')
-rw-r--r--swaybar/config.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/swaybar/config.c b/swaybar/config.c
index 1d802022..8fe552f2 100644
--- a/swaybar/config.c
+++ b/swaybar/config.c
@@ -48,6 +48,18 @@ struct config *init_config() {
/* height */
config->height = 0;
+#ifdef ENABLE_TRAY
+ config->tray_output = NULL;
+ config->icon_theme = NULL;
+ config->tray_padding = 2;
+ /**
+ * These constants are used by wayland and are defined in
+ * linux/input-event-codes.h
+ */
+ config->activate_button = 0x110; /* BTN_LEFT */
+ config->context_button = 0x111; /* BTN_RIGHT */
+#endif
+
/* colors */
config->colors.background = 0x000000FF;
config->colors.statusline = 0xFFFFFFFF;