Commit graph

351 commits

Author SHA1 Message Date
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