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 /sway/commands.c | |
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 'sway/commands.c')
-rw-r--r-- | sway/commands.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sway/commands.c b/sway/commands.c index 34218491..f83b5287 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -221,18 +221,22 @@ static struct cmd_handler handlers[] = { | |||
221 | }; | 221 | }; |
222 | 222 | ||
223 | static struct cmd_handler bar_handlers[] = { | 223 | static struct cmd_handler bar_handlers[] = { |
224 | { "activate_button", bar_cmd_activate_button }, | ||
224 | { "binding_mode_indicator", bar_cmd_binding_mode_indicator }, | 225 | { "binding_mode_indicator", bar_cmd_binding_mode_indicator }, |
225 | { "bindsym", bar_cmd_bindsym }, | 226 | { "bindsym", bar_cmd_bindsym }, |
226 | { "colors", bar_cmd_colors }, | 227 | { "colors", bar_cmd_colors }, |
228 | { "context_button", bar_cmd_context_button }, | ||
227 | { "font", bar_cmd_font }, | 229 | { "font", bar_cmd_font }, |
228 | { "height", bar_cmd_height }, | 230 | { "height", bar_cmd_height }, |
229 | { "hidden_state", bar_cmd_hidden_state }, | 231 | { "hidden_state", bar_cmd_hidden_state }, |
232 | { "icon_theme", bar_cmd_icon_theme }, | ||
230 | { "id", bar_cmd_id }, | 233 | { "id", bar_cmd_id }, |
231 | { "mode", bar_cmd_mode }, | 234 | { "mode", bar_cmd_mode }, |
232 | { "modifier", bar_cmd_modifier }, | 235 | { "modifier", bar_cmd_modifier }, |
233 | { "output", bar_cmd_output }, | 236 | { "output", bar_cmd_output }, |
234 | { "pango_markup", bar_cmd_pango_markup }, | 237 | { "pango_markup", bar_cmd_pango_markup }, |
235 | { "position", bar_cmd_position }, | 238 | { "position", bar_cmd_position }, |
239 | { "secondary_button", bar_cmd_secondary_button }, | ||
236 | { "separator_symbol", bar_cmd_separator_symbol }, | 240 | { "separator_symbol", bar_cmd_separator_symbol }, |
237 | { "status_command", bar_cmd_status_command }, | 241 | { "status_command", bar_cmd_status_command }, |
238 | { "strip_workspace_numbers", bar_cmd_strip_workspace_numbers }, | 242 | { "strip_workspace_numbers", bar_cmd_strip_workspace_numbers }, |