Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
The include command (`include <path>`) makes it possible to include sub
config files from the main config file (or from within other sub config
files).
The include command uses the following rules for including config files:
* the `path` can be either a full path or a path that is relative to the
parent config. Shell expansion is supported, so it's possible to do
`include ~/.config/sway.d/*`.
* The same config file can only be included once (to prevent include
cycles). If a config is included multiple times it will just be
ignored after it has been included once.
* Including a sub config file is the same as inserting the content of
that file into the parent config, thus rules about overwriting
bindsyms etc. works the same as for a single config.
Implement #542
|
|
This makes sure that sway will gracefully exit if the config is not
found or sway is unable to read it.
|
|
|
|
|
|
|
|
Use correct type for keycode
|
|
|
|
|
|
Sway has been very strict when it comes to key handling. Only on an
exact match would a bindsym be triggered.
This patch makes it less strict by for instance allowing the key combo
`$mod+1+2` to act as `$mod+2` if 2 was the last pressed key and `$mod+1`
if 1 was the last pressed key.
The new key handling uses the following algorithm:
1. List of bindings sorted by number of keys in binding (already the
default)
2. Find all bindings covered by the current keyboard state and list them
by same order as in 1.
3. Select the first binding from the list where the last pressed key is
part of the binding.
Addresses #452
|
|
|
|
This implements the config parsing of
`workspace_layout <default|stacking|tabbed>`
http://i3wm.org/docs/userguide.html#_layout_mode_for_new_containers
|
|
Before passing a command to a command handler the quotes are stripped
from each argument in the command. This is usually the wanted behavior
but causes a problem in the case of `exec` where quoted arguments can be
required when passing the exec command to `/bin/sh -c`.
This patch makes `exec` a special case and doesn't strip quotes from the
arguments. It will just pass the exec command verbatim to the exec
command handler.
Fix #518
|
|
desktop_shell.panel_size was only used to determine if sway should
rearrange the output when rendering the panel in the output_pre_render
hook. This is not needed since the output will have been arranged at
that point.
It also caused sway to rearrange all the time when running with two
or more different monitors/resolutions because panel_size kept changing
with every output_pre_render callback.
Should fix #514
|
|
Swaylock spawns and focuses a view for each output in sway. This can
sometimes move the focus to a new output after locking and unlocking the
screens.
This patch makes sure that the output which had focus when swaylock
was invoked, will regain focus once swaylock is closed/unlocked.
Fix #499
|
|
Documents most of the bar commands in sway-bar(5) manpage.
The following command has not been document because they haven't been
fully implemented yet:
* mode
* hidden_state
* modifier
* tray_output
* tray_padding
Close #375
|
|
This should be a real fix for #509
This schedules a render when a background or panel is added to sway
through the desktop shell interface, that makes sure the render isn't
scheduled before the bg or panel is ready and you don't end up with a
black screen until the cursor is moved.
|
|
This reverts commit 96458bf63c10a702797a8687e2f73d7814a6b079.
|
|
This makes sure that the outputs are rendered when sway is launched, so
the user doesn't have to move the cursor before the background and bar
gets rendered on screen.
Fixes #509
|
|
Fix #504
|
|
Reset input state when locking compositor
|
|
Fix #498
|
|
It's possible to assign workspaces to certain outputs using the command:
workspace <name> output <output>
However, this did not work in some cases where the workspace was
assigned before the given output was made available to sway.
This patch fixes those cases.
|
|
In anticipation for #375, reorganized and augmented slightly sway(5)
so it makes a difference between commands intended for configuration,
commands intended for control, and those that can serve as both.
|
|
|
|
This avoids calling swayc_active_workspace.
|
|
This patch aims to correctly handle moving focus <left|right|up|down>
between outputs.
For instance, if moving from one output to a new output at the left of
the current one, it should focus the right-most view/container on the
new output, and the opposite if moving from right to left. This should
happen regardless of the previously stored focus of the new output.
This also handles moving to a new output above or below the current one.
|
|
Display single swaybar on multiple outputs
|
|
Apart from freeing the sway_config struct, this also terminates the
swaybars spawned by sway, since they are linked by PID to the bar config
structs.
|
|
|
|
|
|
|
|
|
|
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.
|
|
sway_terminate does an exit in case wlc_terminate doesn't
|
|
|
|
Sway used to attempt sending an IPC command composed of every argument
after the first non-option argument encountered.
Now, raises an error if an option is encountered before the intended command.
Some options such as -h or -v take effect when parsing, so they still
apply.
|
|
The get-socketpath long option had an undocumented short alternative
as `p`. It has been removed.
However, the code in the options array is still the 'p' char.
|
|
Fix #481
|
|
In some cases destroying a view can result in an empty and inactive
workspace, which should be destroyed.
This handles those cases.
|
|
There is no 'destroy' change type in the i3 IPC so this uses `empty` to
notify about empty workspaces (which will be destroyed from sway right
after).
|
|
Fix #469
|
|
This makes sure that a named output config is applied before the
general wildcard config when a new output is created. This ensures that
the config:
output * ...
output NAME ...
behaves the same way as:
output NAME ...
output * ...
|
|
This makes IPC GET_PIXELS use the new `wlc_pixels_read` call instead of
the deprecated `wlc_output_get_pixels`.
The old version worked by passing a callback function to wlc which would
grab the pixels and send them to the IPC client.
The new version works by maintaining a list of clients who have
requested the pixels of some output and then grap and send the pixels in
the output_post_render hook of the `wlc_interface`.
|
|
|
|
|
|
|