aboutsummaryrefslogtreecommitdiffstats
path: root/sway/config.c
diff options
context:
space:
mode:
authorLibravatar Calvin Lee <cyrus296@gmail.com>2017-06-07 16:45:28 -0700
committerLibravatar Calvin Lee <cyrus296@gmail.com>2017-06-07 17:49:16 -0700
commit843ad38b3c427adb0bf319e9613d9813c8d9246c (patch)
treee02a5b06e2b6923371fd53724791c147c18a1fa4 /sway/config.c
parentMerge pull request #1232 from johalun/master-freebsd (diff)
downloadsway-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 'sway/config.c')
-rw-r--r--sway/config.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sway/config.c b/sway/config.c
index 85823953..e0b65615 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -69,6 +69,10 @@ static void free_bar(struct bar_config *bar) {
69 } 69 }
70 free(bar->mode); 70 free(bar->mode);
71 free(bar->hidden_state); 71 free(bar->hidden_state);
72#ifdef ENABLE_TRAY
73 free(bar->tray_output);
74 free(bar->icon_theme);
75#endif
72 free(bar->status_command); 76 free(bar->status_command);
73 free(bar->font); 77 free(bar->font);
74 free(bar->separator_symbol); 78 free(bar->separator_symbol);
@@ -1386,7 +1390,14 @@ struct bar_config *default_bar_config(void) {
1386 bar->separator_symbol = NULL; 1390 bar->separator_symbol = NULL;
1387 bar->strip_workspace_numbers = false; 1391 bar->strip_workspace_numbers = false;
1388 bar->binding_mode_indicator = true; 1392 bar->binding_mode_indicator = true;
1393#ifdef ENABLE_TRAY
1394 bar->tray_output = NULL;
1395 bar->icon_theme = NULL;
1389 bar->tray_padding = 2; 1396 bar->tray_padding = 2;
1397 bar->activate_button = 0x110; /* BTN_LEFT */
1398 bar->context_button = 0x111; /* BTN_RIGHT */
1399 bar->secondary_button = 0x112; /* BTN_MIDDLE */
1400#endif
1390 bar->verbose = false; 1401 bar->verbose = false;
1391 bar->pid = 0; 1402 bar->pid = 0;
1392 // set default colors 1403 // set default colors