Calvin Lee
0a71aa6e97
Fix Catching NewIcon Signal
...
The unique name was not copied out of the wire marshalled DBus message
data so `sni_uniq_cmp` would always match against junk data.
2017-06-08 08:24:35 -07:00
Calvin Lee
1451ee8fd1
Reorganize Tray Code
...
Remove tray code from bar.c and render.c
2017-06-07 21:32:48 -07:00
Drew DeVault
790887ce76
Fix cairo blending on tray icons
2017-06-07 22:45:33 -04:00
Calvin Lee
843ad38b3c
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
2017-06-07 17:49:16 -07:00
Sebastian Noack
173b338567
Add -DVERSION flag for release version numbers
2017-04-26 15:56:46 +02:00
Drew DeVault
9aed9d9359
UnGNUify the codebase
2017-03-10 23:41:24 -05:00
Drew DeVault
9ad1e6b40f
Handle malloc failure in ipc_recv_response
2016-12-15 19:01:40 -05:00
D.B
ad4d21d60b
add bar colours for focused_(workspace|statusline|separator)
...
If these aren't defined in config, color settings without 'focused_'
prefix are used as a fallback.
2016-11-02 18:58:33 +01:00
Mykyta Holubakha
2a24772c4b
config: set pango_markup default to false
2016-10-20 16:43:38 +03:00
Drew DeVault
c0916f6138
Use CAIRO_OPERATOR_SOURCE for swaybar
2016-10-12 23:44:19 -04:00
D.B
6f2c39610e
parse pango markup in workspace names (and bugfix)
...
This change allows using numeric character references in workspace names
- for example æ which stands for sharp s. A fix was necessary in
get_pango_layout, since markup and parsed markup had different width.
2016-10-07 11:27:06 +02:00
D.B
fe89d7fba3
Correctly scale swaybar
...
Fixes #910 . There were some missing multiplications with window->scale.
2016-09-29 14:31:35 +02:00
Ryan Dwyer
e4cb4d1b5c
Fix swaybar when running on named outputs.
...
When using a bar on a named output, load_swaybars() requires the
output to be active (ie. in the root container), but this is not the case if
the bar is added to the last output. To fix this, load_swaybars() is now
called after the output has been added to the root container.
After fixing that, swaybar would segfault due to using the wrong index
variable when loading outputs and config.
2016-09-17 17:25:45 +10:00
D.B
c239f228c2
swaybar sends workspace name in quotes
...
fixes #894
2016-09-12 06:58:53 +02:00
Drew DeVault
af44154119
Fix constant scale factor in font code
2016-09-05 11:52:52 -04:00
Drew DeVault
b2226ac655
Add client support for HiDPI
...
This adds HiDPI support to swaybar, swaybg, and swaylock.
2016-09-05 11:36:48 -04:00
Drew DeVault
61184e3208
Initial testing on hidpi clients
2016-09-05 10:32:21 -04:00
Drew DeVault
416417a54c
Reorganize includes
2016-09-01 08:18:37 -04:00
Zandr Martin
98aa59fdda
implement solid color rendering for swaybg
2016-07-30 18:50:13 -05:00
Hummer12007
06f46955c0
Fix a warning
2016-07-18 00:57:49 +03:00
Drew DeVault
3bb880bf20
Implement configurable wrapping on bar ws scroll
2016-07-17 11:26:38 -04:00
Drew DeVault
147a88260a
Fix #753
2016-07-16 09:09:22 -04:00
David Eklov
e38d6b94b8
Change workspace when mouse wheel is scrolled while hovering over the bar
2016-07-15 19:14:31 -05:00
David Eklov
250ddc66c6
Rename pointer_input::notify to indicate that is called on button clicks
2016-07-15 19:14:31 -05:00
David Eklov
8a232c8cfd
Send command to sway to change workspace when workspace button is clicked
2016-07-14 17:18:01 -05:00
David Eklov
a0c8799c80
Compute what workspace button is clicked
...
This commit does not do anything with this information other than logging it.
2016-07-14 17:18:01 -05:00
David Eklov
c805e42635
Extract workspace size computation from render_workspace_button()
...
Also remove some unnecessary strtup()s and rename a few variables and functions.
2016-07-14 17:18:01 -05:00
David Eklov
103954dd2b
Setup to receive mouse click events and log them
2016-07-14 17:18:01 -05:00
David Eklov
d3752b4140
swaybar: Make swaybar a shell surface
2016-07-04 21:59:47 -05:00
Drew DeVault
c55ae9956b
Fix another -Wunused-result
2016-04-29 11:04:21 -04:00
Tomáš Čech
468ddfb34d
Fix missing include paths
...
When headers were installed in more sofisticated places (but package
config knows it right), it revealed missing paths in CMake
configuration. Lets fix it.
2016-04-28 20:08:41 +02:00
Mykyta Holubakha
0f1cfdec61
Renamed to pango_markup
2016-04-24 20:35:21 +03:00
Mykyta Holubakha
ee4e245f16
Fix line length calculation
2016-04-24 20:20:07 +03:00
Mykyta Holubakha
2e6c43e62b
Added plaintext_markup to swaybar IPC
2016-04-24 20:14:02 +03:00
Mykyta Holubakha
53b53dd8c2
Added plaintext markup configuration
2016-04-24 19:57:35 +03:00
Drew DeVault
a796ce4f66
Merge pull request #598 from Hummer12007/pango_fix
...
Passing missing argument to get_text_size
2016-04-24 08:52:36 -04:00
Mikkel Oscar Lyderik
11f0b4539d
Use i3bar format for markup field.
...
In the i3bar protocol the value of the markup field is a string: "pango"
or "none" rather than a bool. This patch makes swaybar compatible with
that.
http://i3wm.org/docs/i3bar-protocol.html
2016-04-24 10:26:55 +02:00
Mykyta Holubakha
a25c35f859
Passing missing argument to get_text_size
2016-04-24 10:39:42 +03:00
Drew DeVault
84fae94ab9
Flesh out pango markup implementation
2016-04-17 11:36:03 -04:00
crondog
9c42557b66
Stop swaybar crashing without args
2016-03-31 20:56:14 +11:00
Mikkel Oscar Lyderik
d80466068a
Handle swaybar using sway font
2016-03-30 00:47:58 +02:00
Mikkel Oscar Lyderik
cefcce48aa
Make client/pango.h not depend on client/window.h
2016-03-30 00:47:58 +02:00
Mikkel Oscar Lyderik
af7a251806
Poll before wl_display_dispatch
2016-02-27 22:12:35 +01:00
Mikkel Oscar Lyderik
e4c1176b72
Differentiate between all or no outputs
2016-02-27 22:12:35 +01:00
Mikkel Oscar Lyderik
6d57f03028
Make single bar handle multiple outputs
2016-02-27 22:12:35 +01:00
Mikkel Oscar Lyderik
5e253fdd9a
Correctly exit sway on errors.
...
Calling `exit` in sway_terminate prevents sway from correctly shutting
down (freeing data, cleanly terminating the ipc server, etc.).
A better way is to exit straight away if the failure occurs before
`wlc_run` and use sway_abort as usual if it occur when wlc is running.
2016-02-26 09:42:21 +01:00
Christoph Gysin
a5345e807e
extract cairo_set_source_u32()
2016-01-25 22:44:33 +02:00
Mikkel Oscar Lyderik
123de86001
swaybar: Fix plaintext handling.
...
Fix #473
2016-01-25 15:24:12 +01:00
Mikkel Oscar Lyderik
96935f2682
Fix colors off by one
2016-01-25 01:11:33 +01:00
Mikkel Oscar Lyderik
ed227f5664
swaybar: move headers to include/bar
2016-01-24 15:55:58 +01:00
Mikkel Oscar Lyderik
a61a27c485
swaybar: cleanup CmakeLists.txt
2016-01-24 14:22:19 +01:00
Mikkel Oscar Lyderik
aa6ad09183
swaybar: rename state to bar
2016-01-24 14:22:19 +01:00
Mikkel Oscar Lyderik
c6fc0033e1
swaybar: move core functionality to state.c
2016-01-24 14:22:19 +01:00
Mikkel Oscar Lyderik
6140f9c42c
swaybar: Move swaybar_teardown to free_state
2016-01-24 14:22:19 +01:00
Mikkel Oscar Lyderik
fcc47cb3bd
swaybar: move ipc stuff to ipc.{h,c}
2016-01-24 14:22:19 +01:00
Mikkel Oscar Lyderik
a6349a2444
swaybar: feactor render, statusline
2016-01-24 14:22:19 +01:00
Mikkel Oscar Lyderik
bb986cb336
swaybar: Separate config
2016-01-24 14:22:17 +01:00
Christoph Gysin
ac3f36c091
swaybar: add --help option
2016-01-23 21:32:33 +02:00
Christoph Gysin
bba72fb21a
swaybar: debug option takes no argument
2016-01-23 21:23:00 +02:00
Mikkel Oscar Lyderik
364e37a1eb
Fix whitespace issues.
2016-01-05 23:42:40 +01:00
crondog
7f7e06d4c9
swaybar: fix logging
...
Optionally turn on debugging in swaybar. I acidentally introduced
persistent logging in a previous commit
2016-01-04 11:22:20 +11:00
Mikkel Oscar Lyderik
576181ec09
swaybar: Implement workspace_buttons yes|no
2016-01-03 22:40:43 +01:00
Mikkel Oscar Lyderik
aa2f754c64
swaybar: Implement binding_mode_indicator
2016-01-03 22:16:36 +01:00
Drew DeVault
f2d519d0ba
Merge pull request #427 from mikkeloscar/ipc-update
...
Refactor IPC server/client
2016-01-03 15:37:35 -05:00
Mikkel Oscar Lyderik
7298a9c67a
Add type to returned response.
...
Makes `ipc_recv_response` return a struct with size, type and payload
rather than just the payload string.
This is useful if the type has to be checked on the client.
2016-01-03 20:40:50 +01:00
Mikkel Oscar Lyderik
a20226772e
swaybar: rename ipc_listen_sock.. to ipc_event_sock..
2016-01-03 18:52:53 +01:00
Mikkel Oscar Lyderik
c2f3530fab
Only strip when starting with a num
...
This makes sure the `:` isn't striped if you have a workspace named:
`:something`.
2016-01-03 17:48:47 +01:00
Mikkel Oscar Lyderik
ccdcdc3396
swaybar: Implement strip_workspace_numbers
2016-01-03 17:37:32 +01:00
Mikkel Oscar Lyderik
14dd358a55
saybar: remove stray logline
2015-12-29 12:01:26 +01:00
Mikkel Oscar Lyderik
d72be6c0d5
swaybar: Add support for custom separator symbol
2015-12-28 22:45:13 +01:00
Drew DeVault
97a4f7ceac
Merge pull request #409 from mikkeloscar/bar-airblade-features
...
swaybar: Add support for Airblade i3bar extensions
2015-12-27 11:10:41 -05:00
Mikkel Oscar Lyderik
8955e5f1ad
swaybar: Free unused IPC response
2015-12-27 13:45:22 +01:00
Mikkel Oscar Lyderik
e7aef1e23c
swaybar: if-else style fixes
2015-12-27 13:26:37 +01:00
Mikkel Oscar Lyderik
d21b15a4be
swaybar: Add support for Airblade i3bar extensions
...
This extends the i3bar protocol implementation with the following
features from @Airblade/i3:
* background
* border
* border_top, border_bottom, border_left, border_right
A block will now be rendered like this:
```
(border_left + margin) + width + (margin + border_right) + sep
```
Where `border_left/border_right` and their related margin is only drawn
if the `border` is specified and the border has a width > 0 (default is
1).
`border_top` and `border_bottom` does not affect the height of the bar
(no margin is added), thus it will be drawn behind the text if it is too
big. The user should specify a bar height if more space between
top/bottom borders are required.
2015-12-27 13:18:55 +01:00
Mikkel Oscar Lyderik
26d2381040
swaybar: remove random whitespaces
2015-12-25 15:59:00 +01:00
Mikkel Oscar Lyderik
e370187394
swaybar: Fix json related crash.
...
This should fix the random json related crashes in swaybar.
The crashes occured because the same socket was used for listening on
workspace events and requesting workspace info, resulting in a
unreliable message queue on the socket.
The solution is to use one socket for the events and one socket for
reliably requesting workspace/output info.
2015-12-25 15:57:04 +01:00
crondog
8e8ec6d92b
Merge branch 'master' of https://github.com/SirCmpwn/sway
2015-12-25 08:59:01 +11:00
progandy
21541e9e64
swaybar: Replace fgets with read and own buffer
2015-12-24 13:20:37 +01:00
crondog
edd93b5b55
swaybar: min_width and align
2015-12-24 13:55:17 +11:00
progandy
b66c51ea2c
swaybar: fix array indices in i3json_handle
2015-12-24 01:21:29 +01:00
crondog
bd74320da9
Stop swaybar from not rendering after the first go around
...
I am not sure if this is a correct issue/fix but on my system at least
after an i3bar protocol is detected this while loop never goes back
around meaning it doesnt process the status line anymore.
2015-12-23 10:49:21 +11:00
progandy
8fefdb3c64
swaybar: fix memory leaks
2015-12-22 17:54:47 +01:00
progandy
d060d0a39f
swaybar: add a visible separator between elements
2015-12-22 17:54:38 +01:00
progandy
aa5930c966
swaybar: Improve i3bar proto implementation
...
Also reintroduce plaintext fallback for simple status lines.
2015-12-22 17:34:37 +01:00
progandy
d37169a927
swaybar: fix whitespace
2015-12-22 17:26:40 +01:00
crondog
70b24fbb1f
Clean up a bit
2015-12-22 22:49:41 +11:00
crondog
d1f6f45cb3
Make start on i3bar json parsing
2015-12-22 22:36:57 +11:00
Mikkel Oscar Lyderik
5c8a3afff9
swaybar: Correct handling of SIGTERM.
...
Swaybar did not correctly handle the SIGTERM sent from sway when
exiting, ultimately leaving the child status_command behind.
This should correctly handle the SIGTERM signal and terminate the
status_command.
Fix #386
2015-12-21 11:50:56 +01:00
Mikkel Oscar Lyderik
83eb8d16aa
swaybar: Add font support
2015-12-20 18:32:54 +01:00
Mikkel Oscar Lyderik
d373a193ac
swaybar: pixel perfect layout
...
This should make the bar workspace button layout identical to the layout
used in i3.
2015-12-20 17:52:33 +01:00
crondog
da6cd3cef7
swaybar: use height from config
2015-12-20 15:47:32 +11:00
Mikkel Oscar Lyderik
bc9b93f597
swaybar: use select instead of busyloop
...
Use of busyloop caused high cpu usage for sway because swaybar had to be
redrawn all the time. By using select instead the bar only has to be
redrawn when the status_command changes (i.e. every second) or when the
workspaces are updated.
Fix #345
2015-12-19 16:33:58 +01:00
crondog
c8555f5813
swaybar: use position from config
2015-12-19 12:15:12 +11:00
Drew DeVault
859f2fea0c
Just bail if ws_json is fucked up
2015-12-18 19:45:16 -05:00
Drew DeVault
de2f3b393a
Wow that was stupid
2015-12-18 19:38:36 -05:00
Drew DeVault
d1e031025d
I'm still getting crashes without this line
2015-12-18 19:35:27 -05:00
S. Christoffer Eliesen
de219f6bec
swaybar: ipc_update_ws: Fix memory corruption.
...
json_object_object_get_ex does not require json_object_put according to
docs, this should fix the random crashes.
2015-12-18 15:30:46 +01:00
Drew DeVault
a116eafaa4
Fix possible segfault in swaybar
2015-12-18 09:03:45 -05:00
S. Christoffer Eliesen
8a6e05d7a1
swaybar: Remove stropts.h, fixes build for fedora.
...
Turns out that fedora killed off stropts.h some time ago [1] and
removing it seems to work just fine. (Tested on Fedora 23)
[1] https://bugzilla.redhat.com/show_bug.cgi?id=439403
2015-12-18 13:18:35 +01:00
Mikkel Oscar Lyderik
529ee83ef6
swaybar: terminate status_command process
...
Fix #346
Send SIGTERM to the `status_command` process before swaybar exits.
2015-12-18 03:15:49 +01:00
Drew DeVault
d91185d67b
Fix null dereference in swaybar
2015-12-17 08:30:45 -05:00
Mikkel Oscar Lyderik
0f7614306d
swaybar: Check that registry is set before teardown
2015-12-17 02:45:14 +01:00
Drew DeVault
adadb109a7
Only re-render swaybar when it has changed
...
Fixes #345
2015-12-16 20:09:23 -05:00
Drew DeVault
5a9cc96446
Make swaybar a little quieter
2015-12-16 19:37:03 -05:00
Mikkel Oscar Lyderik
3bd388a307
Remove trailing whitespace
2015-12-16 16:31:12 +01:00
Mikkel Oscar Lyderik
1db4b4a8f5
Correct typo seperator -> separator
2015-12-16 16:30:43 +01:00
Kevin Hamacher
a9f6cd0e17
Make swaybar run without status_command
2015-12-16 12:17:18 +01:00
Kevin Hamacher
ce8b71415f
Make swaybar check command arguments
2015-12-16 11:13:12 +01:00
Drew DeVault
1825cf32bf
Apply color config from swaybar
2015-12-15 22:31:35 -05:00
Drew DeVault
473ac4531f
[swaybar] Get bar config via IPC
2015-12-15 22:22:22 -05:00
Drew DeVault
f80e7364b1
Parse command line in swaybar
2015-12-15 22:08:09 -05:00
Drew DeVault
93ac7d43a8
Fix rendering of borders on workspaces (swaybar)
2015-12-13 17:07:36 -05:00
Drew DeVault
e277d4e094
Subscribe to workspace change events and redraw
2015-12-13 16:04:54 -05:00
Drew DeVault
7918feb9cd
Display workspaces on swaybar
2015-12-13 15:40:19 -05:00
Drew DeVault
36bf4d24cf
Free last line in swaybar
2015-12-13 13:51:23 -05:00
Drew DeVault
6596582bc3
Display output from a command on swaybar
2015-12-13 08:35:39 -05:00
Christoph Gysin
cce9c338c0
cmake: build common code only once
...
This creates (static) libraries for protocols/, common/, and wayland/.
2015-12-02 12:15:57 +02:00
Christoph Gysin
c9ce15aa18
cmake: remove subprojects
2015-12-01 22:47:22 +02:00
Christoph Gysin
55b3532fe0
cmake: remove unnecessary quotes
2015-12-01 22:03:53 +02:00
Christoph Gysin
2dedf206d7
cmake: use out-of-source build
2015-12-01 22:03:09 +02:00
Christoph Gysin
f7ec3d00a0
cmake: use tabs instead of spaces
2015-12-01 22:03:09 +02:00
Christoph Gysin
905966bcae
cmake: style consistency
2015-12-01 22:03:09 +02:00
Christoph Gysin
2429266e3e
cmake: convert all cmake commands to lowercase
2015-12-01 22:03:09 +02:00
Drew DeVault
82d464bb90
Add text rendering support to wayland clients
2015-11-29 15:27:28 -05:00
Drew DeVault
e59cffcea2
Support desktop shell panels in compositor
2015-11-29 12:03:13 -05:00
Drew DeVault
60e76cf932
Add swaybar basics
...
This should make the bar open and appear as the panel, once sway
supports panels. Right now it crashes sway!
2015-11-29 10:58:18 -05:00
Drew DeVault
63cf8e48c4
Add swaybar subproject
2015-11-29 10:26:50 -05:00