aboutsummaryrefslogtreecommitdiff
path: root/sway
AgeCommit message (Collapse)Author
2020-03-30add --no-repeat option for bindingsLinus Heckemann
This allows e.g. triggering one command while a key is held, then triggering another to undo the change performed by it afterwards. One use case for this is triggering push-to-talk functionality for VoIP tools without granting them full access to all input events. Fixes #3151
2020-03-29Change focus_on_window_activation default to urgentSimon Ser
Before the default was "smart". This means a visible app could steal focus whenever it wanted to. This can be an issue since having focus allows for e.g. clipboard access. This commit changes the default to "urgent" instead. Closes: https://github.com/swaywm/sway/issues/5139
2020-03-29switched to setting focus with seat_set_focusSome Chinese Guy
2020-03-29Added focus following for touch_downSome Chinese Guy
2020-03-28sway.5: fix missing background scaling mode in a block examplerinpatch
2020-03-27Fix hit test for floaters that cross outputsJosh Shone
In the case of multiple overlapping floating windows, this commit fixes an issue where the wrong window would be focused in response to a cursor if one of the windows came from a different output (overhanging).
2020-03-24check for workspace command name argr-c-f
* check for workspace command name arg (fix #5131) For the 'workspace <name> output <output>' command, output_location must be greater than zero or the attempt to get the workspace name with join_args will segfault or abort() (depending on the flavor of sway_assert() in use). This checks and returns an error instead. * put workspace output error string on one line To ease grepping as requested * check for name in workspace gaps command as well A malformed command here will lead to the same result seen in #5131, so add a check. Done inside the cmd_workspace_gaps() function itself, to take advantage of the existing 'Expected...' string.
2020-03-23Fix redundant call to seat_send_focus()Leo
This commit fix calling to seat_send_focus() twice when a view is closed. This codes revert #2580, but the original issue nolonger exists.
2020-03-21Fix output mode usageSimon Ser
The "Hz" part is required.
2020-03-16sway/input/cursor.c: fix undefined behaviour when event is NULLJason Nader
2020-03-15Document input selector precedenceDennis Schridde
Signed-off-by: Dennis Schridde <devurandom@gmx.net>
2020-03-15sway/input/cursor.c: move NULL check to where it should beJason Nader
2020-03-15commands/bind.c: remove unnecessary checkJason Nader
2020-03-12Limit workspace numbers within 0..INT32_MAXJason Nader
See https://github.com/i3/i3/commit/83c7aff089a6728b6e522d934d656a8e09463112
2020-03-12input: Avoid creating the PAD device multiple timesOlivier Fourdan
If a pad device for a tablet exists, reloading the configuration, removing/reading the device or even suspending the system will recreate the same Wayland input device multiple times. Make sure we don't re-create the same Wayland device more than necessary. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
2020-03-11commands: Adjust style in cursors commandMichael Weiser
Remove some unnecessary brackets in an error condition check identified during review of the shortcuts inhibitor command code (#5021). Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
2020-03-11commands: Add shortcuts_inhibitor commandMichael Weiser
Add a command to influence keyboard shortcuts inhibitors. In its current form it can be used to activate, deactivate or toggle an existing inhibitor on the surface currently receiving input. This can be used to define an escape shortcut such as: bindsym --inhibited $mod+Escape seat - shortcuts_inhibitor deactivate It also allows the user to configure a per-seat default of whether keyboard inhibitors are honoured by default (the default) or not. Using the activate/toggle command they can then enable the lingering inhibitor at a later time of their choosing. As a side effect this allows to specifically address a named seat for actions as well, whatever use-case that might serve. Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
2020-03-11input: Add support for keyboard shortcuts inhibitMichael Weiser
Adding support for the keyboard shortcuts inhibit protocol allows remote desktop and virtualisation software to receive all keyboard input in order to pass it through to their clients so users can fully interact the their remote/virtual session. The software usually provides its own key combination to release its "grab" to all keyboard input. The inhibitor can be deactivated by the user by removing focus from the surface using another input device such as the pointer. Use support for the procotol in wlroots to add support to sway. Extend the input manager with handlers for inhibitor creation and destruction and appropriate bookkeeping. Attach the inhibitors to the seats they apply to to avoid having to search the list of all currently existing inhibitors on every keystroke and passing the inhibitor manager around. Add a helper function to retrieve the inhibitor applying to the currently focused surface of a seat, if one exists. Extend bindsym with a flag for bindings that should be processed even if an inhibitor is active. Conversely this disables all normal shortcuts if an inhibitor is found for the currently focused surface in keyboard::handle_key_event() since they don't have that flag set. Use above helper function to determine if an inhibitor exists for the surface that would eventually receive input. Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
2020-03-11input: implement cycling through keyboard layout listBor Grošelj Simić
2020-03-10ipc: add missing required propertiesIan Fan
2020-03-10Null check sway_layer_surface when checking damageTadeo Kondrak
Before this change, an overlay layer-shell surface without a buffer attached would segfault the compositor on screen damage.
2020-03-07Add adaptive_sync_status to output IPC replySimon Ser
2020-03-07Add an adaptive_sync output commandSimon Ser
This enables/disables adaptive synchronization on the output. For now, the default is disabled because it might cause flickering on some hardware if clients don't submit frames at regular enough intervals. In the future an "auto" option will only enable adaptive sync if a fullscreen client opts-in via a Wayland protocol.
2020-03-06Use wlr_client_bufferSimon Ser
Update for breaking changes in [1]. [1]: https://github.com/swaywm/wlroots/pull/2043
2020-03-06Drop sway_output.surface_needs_frameSimon Ser
wlr_output_schedule_frame now sets output->needs_frame [1], so this isn't needed anymore. [1]: https://github.com/swaywm/wlroots/pull/2053
2020-03-06Only schedule a frame if client has requested a frame callbackSimon Ser
When a client hasn't damaged its surface, we only need to schedule an output frame if the client has requested a frame callback.
2020-03-04Make handle_destroy and output_repaint_timer_handler staticSimon Ser
2020-02-29ipc-server: improve error messageJason Nader
2020-02-29sway.5: correct description of workspace [number]Brian Ashworth
This correct the description of the commmand: workspace [--no-auto-back-and-forth] [number] <[num:]name> Previously, the number and num pieces were being confused. This also documents the behavior of the --no-auto-back-and-forth flag.
2020-02-27Introduce pid criteria tokenRyan Dwyer
This can be used as a workaround to flag terminal windows as urgent when commands are completed, until urgency is introduced in the Wayland protocol. Configure your shell to run `swaymsg "[pid=$PPID] urgent enable"` when commands are completed, and use a terminal which uses one process per window.
2020-02-26Add support for wlr-output-power-management-unstable-v1Simon Ser
2020-02-25Revert "Don't apply exclusive zones of unmapped layer-shell surfaces"Brian Ashworth
This reverts commit e1eda8a09c15780e7f6ab0b6a1ab7e811a3d8764.
2020-02-24Don't apply exclusive zones of unmapped layer-shell surfacesSimon Ser
Backport of [1]. [1]: https://github.com/emersion/rootston/pull/15/files
2020-02-19Fix get_int_prop(WINDOW_TYPE) crashSimon Ser
2020-02-18treewide: fix typosTorstein Husebø
2020-02-18input_cmd_events: add support for input typesBrian Ashworth
This adds support for input type configs to input_cmd_events. This works similar to the wildcard handling that existed where configs for the devices are stored and the type config is reset to INT_MIN so that it does not override. This also condenses the toggle_send_events and toggle_wildcard_send_events functions into a single function to reduce code duplication.
2020-02-18tree/view: do not attempt enter on hidden childBrian Ashworth
If a subsurface is created for a surface that is associated with a scratchpad hidden view, do not attempt to send an enter to it. The subsurface is not on any output and since there is no workspace associated with the view, attempting to get the output for the NULL workspace will result in a SIGSEGV.
2020-02-17i3compat: add `window_type` to IPC responseJason Nader
i3 added these in i3/i3#3797
2020-02-17i3compat: add `window_type` to IPC responseJason Nader
i3 added these in i3/i3#3797
2020-02-17Specify that output transform applies clockwise rotationsSimon Ser
2020-02-17Fix output transform rotation directionSimon Ser
This patch makes it so users that have configured their screen with a transform don't have to update their config after the wlroots breaking change. References: https://github.com/swaywm/wlroots/pull/2023
2020-02-17Fix output transform anticlockwiseSimon Ser
This wouldn't have any effect if the transform was flipped.
2020-02-16output: fix updating output manager configBrian Ashworth
The output manager config is created when the output is created. It is updated when the mode, transform, scale, or layout for the output changes, as well as, when the output is destroyed. Since the output->enabled property was not being set before calling apply_output_config, the output event handlers were early returning and never updating the output manager config when the output state was committed. This fixes the issue by setting output->enabled in apply_output_config below the output disabling section. There are also a few other minor changes that are required to function. Additionally, this renames output_enable to output_configure to better describe the recent changes.
2020-02-13Fix crash: use wlr_output->name instead of possibly missing oc->nameYorick van Pelt
Fixes segfault on start: https://gist.github.com/yorickvP/89eccb3782c6edb22aeda6ce9c6d4fcb
2020-02-13cmd_swap: fix test_mark conditionBrian Ashworth
The condition in test_mark was checking the negation of list_seq_find. This works fine for the first mark, but fails for every other mark. This fixes the condition to check for anything other than -1, which is the value returned from list_seq_find for index not found.
2020-02-11Apply the output scale filter after the output commitSimon Ser
The smart output filter uses the current output scale.
2020-02-11Stop calling apply_output_config from output_enableSimon Ser
The only output_enable caller is now apply_output_config. Stop calling apply_output_config from output_enable to simplify the code and avoid the back-and-forth between these two functions. output_enable is now the symmetric of output_disable: it just marks the output as enabled and performs bookkeeping (e.g. creating teh default workspace). It is called from apply_output_config after the output commit, so that it can read the current output state and act accordingly. This change also allows us to avoid an extraneous wlr_output_commit. References: https://github.com/swaywm/sway/issues/4921
2020-02-11Call apply_output_config instead of output_enableSimon Ser
apply_output_config will call output_enable if necessary. This fixes a lone wlr_output_enable call (without a matching wlr_output_commit call) which was a no-op.
2020-02-11Fix output scale auto-detectionSimon Ser
Closes: https://github.com/swaywm/sway/issues/4960
2020-02-11config: fix validation exit code and log levelBrian Ashworth
This makes it so invalid configs will return the exit code 1 when the validation flag is given. This also reduces the log level to SWAY_ERROR, which makes it so only the errors are shown. If someone wants more verbose output, the can use the -V/--verbose or -d/--debug flags. Additionally, this also makes it so swaybg will not be spawned when validating the config.