Commit graph

688 commits

Author SHA1 Message Date
Mikkel Oscar Lyderik
50b04884b6 Trigger ipc_event_workspace in all cases
This makes sure that the workspace IPC event is triggered when needed.

Fixes #382 while making sure that the IPC event is only triggered once.
2015-12-21 23:07:52 +01:00
Drew DeVault
442a54c38b Merge pull request #390 from mikkeloscar/workspace-ipc-event
Don't skip all clients on ipc_workspace_event.
2015-12-21 09:49:55 -05:00
Mikkel Oscar Lyderik
42e5b4b032 Don't skip all clients on ipc_workspace_event.
Only clients not subcriped to the workspace event should be skipped.
2015-12-21 15:40:01 +01:00
Mikkel Oscar Lyderik
c803b79764 Trigger event on bar mode|hidden_state commands 2015-12-21 15:31:09 +01:00
Mikkel Oscar Lyderik
66c66c7304 Implement barconfig_update IPC event 2015-12-21 15:28:34 +01:00
Mikkel Oscar Lyderik
a96a5e0013 Handle bar commands outside config file
Our initial implementation of `bar {  }` assumed that the commands could
only be used in the config. This is not true for two commands:

* bar mode
* bar hidden_state

This patch makes it possible to issue these commands outside a bar
block, for instance through swaymsg

    $ swaymsg bar mode hide bar-0

This does not implement the `barconfig_update` IPC event which should be
trigged from these commands. I have added TODO's where this should be
added once implemented.
2015-12-21 14:33:27 +01:00
Drew DeVault
fc71c6303c Fix default swaybar font 2015-12-21 05:07:19 -05:00
S. Christoffer Eliesen
f4b9c3856a layout: Fix edge_gaps off with top/left panels.
Since x/y won't be zero when there's a top or left panel in place, we
need to take those coordinates into account too.
2015-12-20 21:23:20 +01:00
S. Christoffer Eliesen
ce54b4ff2e container: Fix inner gaps against screen edge. 2015-12-20 21:23:20 +01:00
Drew DeVault
3082245243 Merge pull request #373 from sce/per_panel_config
Per panel config
2015-12-20 12:05:32 -05:00
Drew DeVault
33fb648938 Merge pull request #372 from sce/fix_swaybar_output_name_test
config: load_swaybars: Fix name comparison.
2015-12-20 09:23:34 -05:00
S. Christoffer Eliesen
e45fd9b6c5 extensions: Track panels by wl_resource, position per panel.
Track each panel separately via its wl_resource. `set_panel_position`
might be called before `set_panel`, so reuse panel config.

Place the position in panel_config so that each panel has its own
position.
2015-12-20 12:54:34 +01:00
S. Christoffer Eliesen
6db0f6f80f extensions: panel_config->resource => wl_surface_res.
Change the name to something less ambigious.
2015-12-20 12:54:34 +01:00
S. Christoffer Eliesen
6ace37d0b1 config: load_swaybars: Fix name comparison. 2015-12-20 12:53:56 +01:00
S. Christoffer Eliesen
2779559b15 config: free_bar: Check if outputs is NULL.
bar_config.outputs is NULL if no output is explicitly defined in config
(ie. use for for all outputs).
2015-12-20 10:14:36 +01:00
Drew DeVault
3282163f64 Implement compositor support for swaylock
This makes swaylock more or less work.
2015-12-18 19:30:19 -05:00
Drew DeVault
eefc93db43 Fix lock extension setup in compositor 2015-12-18 19:30:19 -05:00
Drew DeVault
253efad437 Merge pull request #361 from mikkeloscar/i3bar-command
Add support for running swaybar_command
2015-12-18 19:17:56 -05:00
Mikkel Oscar Lyderik
207678e809 Add support for running swaybar_command 2015-12-19 01:03:39 +01:00
Drew DeVault
7647762bab Fix default workspace name generation
This fixes the issue where workspace 10 ends up being the default.
2015-12-18 18:52:51 -05:00
Drew DeVault
2ab4e5676e Merge pull request #360 from sce/fix_arrange_windows
Fix arrange windows
2015-12-18 18:39:02 -05:00
Drew DeVault
b9f14cee41 Merge pull request #359 from mikkeloscar/i3bar-command
Add bar option: swaybar_command <command>
2015-12-18 18:19:59 -05:00
Mikkel Oscar Lyderik
9d7f1afdfb Add bar option: swaybar_command <command> 2015-12-19 00:13:51 +01:00
S. Christoffer Eliesen
f0b3ee6d84 layout: arrange_windows: Partially fix swaybar irregularties. 2015-12-18 23:53:42 +01:00
S. Christoffer Eliesen
0ad5059b6f layout: arrange_windows: Fix/better debug output. 2015-12-18 23:53:42 +01:00
Mikkel Oscar Lyderik
90ff36cab8 Terminate children when freeing output container 2015-12-18 18:27:54 +01:00
Mikkel Oscar Lyderik
ede27eabc5 Reload swaybar/swaybg on config reload.
This works by tracking the pids of the child processes in the related
output container and terminating the processes and spawning new ones on
a config reload.

Should solve: #347
2015-12-18 18:27:44 +01:00
Drew DeVault
7558a274fa Add shims for swaylock on compositor 2015-12-18 08:49:04 -05:00
S. Christoffer Eliesen
ed730db11b layout: Keep output at the correct size, workspace can be smaller.
If the output is not at the correct size then that info must be queried
from wlc. The output size is used by e.g. seamless mouse to detect
output edges.

With this patch the output size is now correct and the workspace size is
adjusted according to any panels.

Without this patch seamless mouse would fail to detect outputs
above/below each other if there was a panel in between because the
output would offically end where the panel started, not at the actual
screen edge.
2015-12-18 14:03:11 +01:00
S. Christoffer Eliesen
18a7afa1b3 focus: Fix moving last workspace.
If there's only one workspace on an output and it's moved to a different
output then active workspace will be NULL.
2015-12-18 13:23:49 +01:00
progandy
76c520a04b sway: insert numbered workspaces in order
fixes #308

Ordered by number ascending, with insert before same numbers.
Workspaces without numbers are appended at the end of the list.

Example order:
1 2:named 3:the_second 3:the_first 9 FIRST_NAME SECOND_NAME ...
2015-12-18 01:22:07 +01:00
progandy
8f1ac1ef2c sway: enable workspace selection by number 2015-12-18 01:21:31 +01:00
Drew DeVault
03787871d0 Fix bar invocation for multihead setup 2015-12-16 19:36:31 -05:00
Drew DeVault
1a365f19c9 Use system swaybar instead of local swaybar 2015-12-16 19:30:38 -05:00
Drew DeVault
60c204a09b Invoke swaybar when an output matches a bar config 2015-12-16 19:29:47 -05:00
Drew DeVault
f6da4dda4b Bring unmanaged windows to front on output arrange
Fixes #312
2015-12-16 19:20:34 -05:00
Drew DeVault
01798a5ae2 Merge pull request #338 from mikkeloscar/bar-separator-symbol
Implement bar option: separator_symbol
2015-12-16 07:47:00 -05:00
Mikkel Oscar Lyderik
053fb09d1e Use free_flat_list for simple char* list.
No need to reimplement free_flat_list functionality.
2015-12-16 13:06:54 +01:00
Mikkel Oscar Lyderik
2fd7dd64ec Implement bar option: separator_symbol 2015-12-16 13:01:11 +01:00
Drew DeVault
473ac4531f [swaybar] Get bar config via IPC 2015-12-15 22:22:22 -05:00
Drew DeVault
efff8e5ba5 Merge pull request #335 from mikkeloscar/bar-font
Implement bar option: font <font>
2015-12-15 18:11:21 -05:00
Mikkel Oscar Lyderik
9316851715 Implement bar option: font <font> 2015-12-15 23:59:16 +01:00
Mikkel Oscar Lyderik
ded8919c69 Implement bar option: binding_mode_indicator <yes|no> 2015-12-15 23:38:17 +01:00
Mikkel Oscar Lyderik
47f4aea9e7 Correctly free bindings list 2015-12-15 22:16:54 +01:00
Mikkel Oscar Lyderik
f59f5d27aa Implement bar option: output <output> 2015-12-15 22:01:53 +01:00
Mikkel Oscar Lyderik
05e7334106 Fix active_workspace_border color definition 2015-12-15 15:08:41 +01:00
Drew DeVault
809c251df8 Merge pull request #328 from mikkeloscar/bar-height
Add bar height option (Airblader/i3)
2015-12-15 09:08:40 -05:00
Mikkel Oscar Lyderik
6834a33290 Add bar height option (Airblader/i3) 2015-12-15 15:02:13 +01:00
Drew DeVault
432e3310f6 Fix crash from ipc_json_describe_workspace
destroying workspace '10'
Error: Signal 11. Printing backtrace
Backtrace: sway(error_handler+0x2f) [0x41478f]
Backtrace: /usr/lib/libc.so.6(+0x33680) [0x7f06d9a99680]
Backtrace: /usr/lib/libc.so.6(strlen+0x2a) [0x7f06d9ae70ca]
Backtrace: /usr/lib/libc.so.6(__strdup+0xe) [0x7f06d9ae6dfe]
Backtrace: /usr/lib/libjson-c.so.2(json_object_new_string+0x39) [0x7f06da01ffe9]
Backtrace: sway(ipc_json_describe_workspace+0xd8) [0x410408]
Backtrace: sway(ipc_event_workspace+0x38) [0x410618]
Backtrace: sway(set_focused_container+0x190) [0x40daf0]
Backtrace: sway(workspace_switch+0x1a1) [0x4142b1]
Backtrace: sway() [0x4096c6]
Backtrace: sway(handle_command+0x178) [0x405eb8]
Backtrace: sway() [0x40e6ee]
Backtrace: /usr/lib/libwlc.so.0(+0x19a1b) [0x7f06da6f0a1b]
Backtrace: /usr/lib/libwlc.so.0(+0x11b0c) [0x7f06da6e8b0c]
Backtrace: /usr/lib/libwayland-server.so.0(wl_event_loop_dispatch+0x72) [0x7f06d9e13242]
Backtrace: /usr/lib/libwayland-server.so.0(wl_display_run+0x25) [0x7f06d9e119a5]
Backtrace: /usr/lib/libwlc.so.0(wlc_run+0xfc) [0x7f06da6fda1c]
Backtrace: sway(main+0x25f) [0x4125cf]
Backtrace: /usr/lib/libc.so.6(__libc_start_main+0xf0) [0x7f06d9a86610]
Backtrace: sway(_start+0x29) [0x405bf9]
2015-12-15 08:41:10 -05:00
Drew DeVault
b76acbaf4f Implement IPC_GET_BAR_CONFIG 2015-12-15 08:25:53 -05:00