aboutsummaryrefslogtreecommitdiff
path: root/sway/commands
AgeCommit message (Collapse)Author
2024-01-29sway/output: Improve logging of swaybg execvp failure and more checksTamino Bauknecht
This doesn't catch the error if a background changing command is executed via swaymsg, but improves logging. The additional checks at least propagate if e.g. forking failed.
2024-01-18scene_graph: Port opacity and filter modesAlexander Orzechowski
2024-01-18Delete old damage tracking codeAlexander Orzechowski
The new scene graph abstraction handles this for us.
2024-01-18scene_graph: Port container server side decorationsAlexander Orzechowski
2023-12-12sway: raise error on non-accessible background fileTamino Bauknecht
2023-11-23Add wlr/util/transform.h includesSimon Ser
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4097 Closes: https://github.com/swaywm/sway/issues/7830
2023-09-07commands/input/map_from_region: don't treat 0x prefix as hex identifieriff
When using the `map_from_region` for pen tables, we will usually make the available area as big as possible while maintaining the proportions with the screen. As most of the tablets uses a 16:10 ratios while the most popular screen ratios is still 16:9, the argument for most people should be `0x0 1x0.9` to have the maximum effective area. However, the argument above won't work because the current code will treat `0x...` as a hexadecimal number, instead of setting both `x` and `y` to `0`. This fix allows the use of the following syntax: ``` input type:tablet_tool { map_from_region 0x0 1x0.9 } ```
2023-07-23fix crash when resizing tiled scratchpad windowsbretello
Splitting and then hiding a scratchpad container results in a segfault. fixes #6693
2023-07-19Deprecate seat idle_wakeSimon Ser
Sway has two knobs to control idling: - seat idle_inhibit: when the seat is active (ie. not idle), this extends the active state. When the seat is idle, this is ignored. - seat idle_wake: when the seat is idle, this wakes up the seat. When the seat is active, this is ignored. The motivation for the deprecation is two-fold: - The concept of "seat idle state" is ill-defined. Each idle-notify-v1 client will pass a different idle timeout. With the old logic, a seat was declared idle if and only if all idle-notify-v1 timeouts have expired. However, if only a portion of the timeouts have expired, then some clients would wake up, and the rest would stay active. This is inconsistent with the definition of idle_inhibit/idle_wake: idle_inhibit was used for clients which are waking up. - It never worked properly with the new idle-notify-v1 protocol and no-one noticed. Only the legacy KDE idle protocol is taken into account, but that protocol is not used anymore.
2023-07-13Calculate tiled resize amount relative to parent containernukoseer
sway should shrinks/grows tiled windows according to parent container for ppt unit for i3 compatibility. Resolves: #7593
2023-06-23idle-inhibit-v1: simplify with server globalSimon Ser
We only have a single running server, no need to keep track of multiple server instances. Also no need to support multiple idle inhibit managers.
2023-06-16input/libinput: add scroll_button_lock methodCezary Drożak
Closes https://github.com/swaywm/sway/issues/6987 Co-authored-by: JJGadgets <git@jjgadgets.tech> Co-authored-by: DeltaWhy <mike5713@gmail.com>
2023-04-14Use format_str() throughoutSimon Ser
2023-04-14commands: add printf attribute to cmd_results_new()Simon Ser
And fix the resulting build failures.
2023-04-14commands/floating_minmax_size: fix error stringsSimon Ser
cmd_results_new() does not take the command name as argument.
2023-04-14Fix old style function definitionsElyes Haouas
Signed-off-by: Elyes Haouas <ehaouas@noos.fr>
2023-03-14root: Try to preserve relative positions of floating containersAnkit Pandey
This makes the behavior of floating containers more consistent with i3. The coordinates of the container are scaled when the size of the workspace it is on changes or when the container is moved between workspaces on different outputs. For scratchpad containers, add a new state that preserves the dimensions of the last output the window appeared on. This is necessary because after a container is hidden in the scratchpad, we expect it to be in the same relative position on the output when it reappears. We can't just use the container's attached workspace because that workspace's dimensions might have been changed or the workspace as a whole could have been destroyed.
2023-02-19container: rehome the container_swap function into container.cRonan Pigott
This function was already declared in container.h but defined in commands/swap.c for some unknown reason. Everything in commands/ assumes the handler context has been set appropriately by the command preludes but this function snuck its way into seatop_* which doesn't set anything in the handler context. The fact that the seatop drag actions manipulate the focus without custody of the seat means they are definitely very broken in multiseat.
2023-02-05launcher: make launcher context seat awareRonan Pigott
2023-01-03Add missing includes & remove duplicatesCarl Smedstad
2022-12-19commands/move: Warp cursor after moving workspace to another outputAnkit Pandey
This makes sway's behavior consistent with i3 when `mouse_warping` is set to any value besides `none`. Fixes #7027.
2022-12-09Fix input command order (rotation_angle)Baltazár Radics
efd83cb8 added the rotation_angle command but it didn't insert it in the proper place in the list, so the repeat_delay and repeat_rate commands became unusable.
2022-12-09Add libinput RotationAngleLucas Zampieri
This patch adds the libinput option RotationAngle to sway. Signoff-by: Lucas Zampieri <lzampier@redhat.com>
2022-12-05Add `primary_selection` config optionAidan Dang
See: https://github.com/swaywm/sway/issues/4511 Adds a bool config option `primary_selection`, which explicitly enables/disables the primary selection clipboard. Defaults to enabled. This is implemented as a launch-only option which enables or disables the creation of the `zwp_primary_selection_device_manager_v1` global. Co-authored-by: Tilde Rose <t1lde@protonmail.com>
2022-11-28Make libinput backend optionalSimon Ser
2022-11-26launcher: export X startup ids and use them for workspace matchingRonan Pigott
2022-11-26launcher: export xdga tokens and use them for workspace matchingRonan Pigott
2022-11-26launcher: fudge the interface a bitRonan Pigott
We want to create a context before knowing the pid it will match with.
2022-11-26launcher: initialize launcher_ctxs once on startupRonan Pigott
2022-11-26launcher: rename pid_workspace to launcher_ctxRonan Pigott
Soon we will match views with more than just a pid.
2022-11-26launcher: track workspaces by nodeRonan Pigott
This removes the need to rename the pid_workspaces when a workspace is renamed. It also opens the possibility of tracking other node types. Tracking containers would allow application to be placed correctly in the container tree even if the user has moved their focus elsewhere since it was launched.
2022-11-26root: move the workspace matching code to its own fileRonan Pigott
This removes the pid_workspace bits from tree/root before it gets too interesting. No functional change.
2022-10-30Support libinput's 1.21 new dwtp optionpudiva chip líquida
Support the new dwtp (disable while trackpointing) option introduced in libinput 1.21, allowing users to control whether the trackpoint (like those in Thinkpads, but not only) should be disabled while using the keyboard/touchpad. See: https://gitlab.freedesktop.org/libinput/libinput/-/issues/731
2022-10-07sway/commands/output: Add command for unplugging non-physical outputsAndri Yngvason
2022-07-04Remove internal references to DPMSSimon Ser
While at it, use an int for the config field, just like we do for all other fields.
2022-07-01Reject font values that are invalid for pangoHugo Osvaldo Barrera
Use pango to parse font configuration early, and reject the command as invalid if the value is invalid for pango. Since we're already parsing the font into a `PangoFontDescription`, keep that instance around and avoid re-parsing the font each time we render text. Fixes: https://github.com/swaywm/sway/issues/6805
2022-07-01Avoid unecessary string copyHugo Osvaldo Barrera
2022-06-25Strip quotes in bindsym --input-device=...Thomas Jost
If the input device is quoted, which is common when using variables in the config file, those quotes must be ignored here, or the input device will be ignored. Fixes #7029.
2022-06-23Rename dpms output command to powerSimon Ser
The "dpms" command refers to VESA Display Power Management Signaling, a deprecated standard. It's superseded by VESA DPM. Instead of tying out command name to a particular standard, use the neutral term "power".
2022-06-22Remove access to wlr_input_device unionSimon Ser
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3626 Closes: https://github.com/swaywm/sway/issues/7077
2022-05-30sway: add bindgesture commandFlorian Franzen
Co-authored-by: Michael Weiser <michael.weiser@gmx.de>
2022-04-28xkb_switch_layout: fix relative layout switchesVictor Makarov
Fixes #6011
2022-04-09Shuffle variables to satisfy -Werror=restrictDaniel De Graaf
This also fixes an invalid strlen invocation on uninitialized memory.
2022-03-17sway/input: follow up wlroots input device events renamingSimon Zeni
2022-03-08Remove WLR_SWITCH_STATE_TOGGLE usageSimon Ser
Ref [1]. [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/4792446ee8f50104bd207d9ccd8558a7e4eb4514
2022-03-06commands/focus: fix segfault when no container is already focused.Nicolas Avrutin
Fixes #6690.
2022-02-21sway/commands: add missing wlr_keyboard interface include in xkb_switch_layoutSimon Zeni
2022-02-08Fix snprintf compiler warningMuhamed Hobi
2022-01-31chore: chase wlr_output_layout_get_box() updateKirill Primak
https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3439
2022-01-22cmd/swap: error on swapping a container with itselfRonan Pigott