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 /swaybar/CMakeLists.txt | |
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 'swaybar/CMakeLists.txt')
-rw-r--r-- | swaybar/CMakeLists.txt | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/swaybar/CMakeLists.txt b/swaybar/CMakeLists.txt index f59a48fd..373719de 100644 --- a/swaybar/CMakeLists.txt +++ b/swaybar/CMakeLists.txt | |||
@@ -5,7 +5,13 @@ include_directories( | |||
5 | ${PANGO_INCLUDE_DIRS} | 5 | ${PANGO_INCLUDE_DIRS} |
6 | ${JSONC_INCLUDE_DIRS} | 6 | ${JSONC_INCLUDE_DIRS} |
7 | ${XKBCOMMON_INCLUDE_DIRS} | 7 | ${XKBCOMMON_INCLUDE_DIRS} |
8 | ${DBUS_INCLUDE_DIRS} | ||
8 | ) | 9 | ) |
10 | if (enable-tray) | ||
11 | file(GLOB tray | ||
12 | tray/*.c | ||
13 | ) | ||
14 | endif() | ||
9 | 15 | ||
10 | add_executable(swaybar | 16 | add_executable(swaybar |
11 | main.c | 17 | main.c |
@@ -14,6 +20,8 @@ add_executable(swaybar | |||
14 | bar.c | 20 | bar.c |
15 | status_line.c | 21 | status_line.c |
16 | ipc.c | 22 | ipc.c |
23 | event_loop.c | ||
24 | ${tray} | ||
17 | ) | 25 | ) |
18 | 26 | ||
19 | target_link_libraries(swaybar | 27 | target_link_libraries(swaybar |
@@ -24,6 +32,7 @@ target_link_libraries(swaybar | |||
24 | ${CAIRO_LIBRARIES} | 32 | ${CAIRO_LIBRARIES} |
25 | ${PANGO_LIBRARIES} | 33 | ${PANGO_LIBRARIES} |
26 | ${JSONC_LIBRARIES} | 34 | ${JSONC_LIBRARIES} |
35 | ${DBUS_LIBRARIES} | ||
27 | ) | 36 | ) |
28 | 37 | ||
29 | if (WITH_GDK_PIXBUF) | 38 | if (WITH_GDK_PIXBUF) |
@@ -32,6 +41,8 @@ if (WITH_GDK_PIXBUF) | |||
32 | ) | 41 | ) |
33 | endif() | 42 | endif() |
34 | 43 | ||
44 | target_link_libraries(swaybar rt) | ||
45 | |||
35 | install( | 46 | install( |
36 | TARGETS swaybar | 47 | TARGETS swaybar |
37 | RUNTIME | 48 | RUNTIME |