Age | Commit message (Collapse) | Author |
|
Handle SIGTERM sent to sway
|
|
This makes sway handle and gracefully shut down everything when
receiving a SIGTERM.
Fix #416
|
|
|
|
Previous output was confusing.
|
|
If the width or height of a container can't be evenly distributed to its
children, then the layout algorithm still thought it got it right (due
to using decimals) which caused a gap of one or more pixels for some
window arrangements.
This is fixed by this patch by first rounding off the width and height
(so that decimals are never introduced) and then adjusting the last
view in a container to fill the remaining pixels (which now is counted
correctly due to the decimals being removed).
Also, due to the way gaps are implemented, an odd sized gap can never be
aligned properly, so just adjust to closest even number.
|
|
This brings consistency into the algorithm (instead of resetting and
then fetching again).
|
|
This makes sure that the window being added to a container gets focus.
|
|
Triggers workspace init event when moving a floating window to a new
workspace.
This is a follow up on #391 which didn't handle floating windows.
|
|
- swaylock config path not hardcoded anymore
- the unusual and weird FALLBACK_CONFIG_DIR is no more
|
|
|
|
|
|
musl libc compatibility
|
|
I've tried to make as few changes, as possible.
Usually the reason for using qsort_r is, that you can pass an extra userdata pointer to the
compare function. However, in sway list_sort wrapped qsort_r and always called a wrapper
function for comparing, the wrapper function then had the real compare function as argument.
The only thing, that the wrapper function does, is dereferencing the 'left' and 'right' function
arguments before passing them to the real compare function.
I have renamed list_sort to list_qsort to avoid confusion (so nobody tries to use list_qsort like
list_sort) and removed the wrapper functionality. Now the dereferencing must be done in the
compare function, that gets passed.
Some compare functions were used in both list_sort and list_seq_find. To make the difference
clear, I've added a '_qsort' suffix to the compare functions, that are intended to be used with
the new list_qsort. (In other words: list_qsort is not compatible anymore with list_seq_find).
- Changed and renamed function (it isn't used anywhere but in commands.c, and only for sorting):
compare_set -> compare_set_qsort
- New wrapper functions:
sway_binding_cmp_qsort (for sway_binding_cmp)
sway_mouse_binding_cmp_qsort (for sway_mouse_binding_cmp)
|
|
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.
|
|
|
|
Don't skip all clients on ipc_workspace_event.
|
|
Only clients not subcriped to the workspace event should be skipped.
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
Per panel config
|
|
config: load_swaybars: Fix name comparison.
|
|
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.
|
|
Change the name to something less ambigious.
|
|
|
|
bar_config.outputs is NULL if no output is explicitly defined in config
(ie. use for for all outputs).
|
|
This makes swaylock more or less work.
|
|
|
|
Add support for running swaybar_command
|
|
|
|
This fixes the issue where workspace 10 ends up being the default.
|
|
Fix arrange windows
|
|
Add bar option: swaybar_command <command>
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
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.
|
|
If there's only one workspace on an output and it's moved to a different
output then active workspace will be NULL.
|
|
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 ...
|
|
|
|
|
|
|
|
|
|
Fixes #312
|