aboutsummaryrefslogtreecommitdiffstats
path: root/sway/commands
Commit message (Collapse)AuthorAge
...
* | Use #if instead of #ifdefLibravatar emersion2018-11-18
| |
* | Merge pull request #3142 from RyanDwyer/move-view-propertiesLibravatar Drew DeVault2018-11-17
|\ \ | | | | | | Move view {x,y,width,height} into container struct
| * | Move view {x,y,width,height} into container structLibravatar Ryan Dwyer2018-11-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This renames/moves the following properties: * sway_view.{x,y,width,height} -> sway_container.content_{x,y,width,height} * This is required to support placeholder containers as they don't have a view. * sway_container_state.view_{x,y,width,height} -> sway_container_state.content_{x,y,width,height} * To remain consistent with the above. * sway_container_state.con_{x,y,width,height} -> sway_container_state.{x,y,width,height} * The con prefix was there to give it contrast from the view properties, and is no longer useful. The function container_set_geometry_from_floating_view has also been renamed to container_set_geometry_from_content.
* | | commands/resize: fix grow vars uninitializedLibravatar Cole Mickens2018-11-17
|/ /
* | resize set: convert ppt to px for floating containersLibravatar Trevor Slocum2018-11-16
| |
* | Fix unused function in swap commandLibravatar emersion2018-11-14
| | | | | | | | Also fixes a size_t cast to void *.
* | Use #if instead of #ifdef for WLR_HAS_*Libravatar emersion2018-11-12
| |
* | cmd_ws_auto_back_and_forth: fix negationLibravatar Brian Ashworth2018-11-11
| | | | | | | | | | | | In the conversion to `parse_boolean` for `cmd_ws_auto_back_and_forth`, the `negation` was never removed causing the setting to be the opposite of what it should be.
* | Allow multiple outputs for workspace outputLibravatar Brian Ashworth2018-11-11
| | | | | | | | | | | | | | | | | | | | | | | | `i3 4.16` allows users to list multiple outputs for a workspace and the first available will be used. The syntax is as follows: `workspace <workspace> output <outputs...>` Additionally when the workspace is created, the outputs get added to the output priority list in the order specified. This ensures that if a higher output gets connected, the workspace will move to the higher output. This works the same way as if the user had a workspace on an output, disconnected the output, and then later reconnected the output.
* | Use parse_boolean where possible.Libravatar Connor E2018-11-10
| |
* | resize set: implement width and height keywordsLibravatar Brian Ashworth2018-11-08
| | | | | | | | | | | | | | | | | | | | This implements the following syntaxes from `i3 4.16`: * `resize set [width] <width> [px|ppt]` * `resize set height <height> [px|ppt]` * `resize set [width] <width> [px|ppt] [height] <height> [px|ppt]` Additionally, a bug was fixed that caused setting the height of a tiled container to change the width instead due to a typo.
* | Fix building with clangLibravatar sghctoma2018-11-08
| | | | | | | | | | The "struct sway_container *other" variable in swap.c was potentially used uninitialized, depending on an "if" statement.
* | Implement per side and per direction outer gapsLibravatar Brian Ashworth2018-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces the following command extensions from `i3-gaps`: * `gaps horizontal|vertical|top|right|bottom|left <amount>` * `gaps horizontal|vertical|top|right|bottom|left all|current set|plus|minus <amount>` * `workspace <ws> gaps horizontal|vertical|top|right|bottom|left <amount>` `inner` and `outer` are also still available as options for all three of the above commands. `outer` now acts as a shorthand to set/alter all sides. Additionally, this fixes two bugs with the prevention of invalid gap configurations for workspace configs: 1. If outer gaps were not set and inner gaps were, the outer gaps would be snapped to the negation of the inner gaps due to `INT_MIN` being less than the negation. This took precedence over the default outer gaps. 2. Similarly, if inner gaps were not set and outer gaps were, inner gaps would be set to zero, which would take precedence over the default inner gaps. Fixing both of the above items also requires checking the gaps again when creating a workspace since the default outer gaps can be smaller than the negation of the workspace specific inner gaps.
* | Add focus_follows_mouse always. (#3081)Libravatar Connor E2018-11-06
|/ | | | | | | | * Add focus_follows_mouse_mode. * Fail if focus_follows_mouse is invalid. * Fix indentation.
* Add relative output transformLibravatar Ryan Walklin2018-11-05
| | | | | | | | | | | | | | | | | | | | | This commit enhances the output transform command with options for a relative transform, i.e. the provided transform will be applied as an offset to the current transform. Append `clockwise` to rotate clockwise from the current rotation, or `anticlockwise` to rotate in the opposite direction. For example, if the output LVDS-1 is rotated 90 degrees clockwise, the command `output LVDS-1 transform 90 clockwise` will rotate the display to 180 degrees. All transform options are supported, including flipped transforms. Relative transforms can only be applied to a single output and cannot be used with a wildcard (*) output specifier.
* commands/exec_always: defer command on config validationLibravatar Rouven Czerwinski2018-11-05
| | | | | | | | The exec_always command was executed twice, since it was not checking for the config->validating variable. Fix this by defering the command if the configuration is validating. Fixes #3072
* Fix focus_wrapping yesLibravatar Brian Ashworth2018-11-05
| | | | | | | It appears that the focus code that handles `focus_wrapping yes` was removed during the conversion to type safety. This re-implements the focus code for when `focus_wrapping` is set to `yes` (default). Neither the `no` or `force` options appear to be effected and should be working.
* gaps: Improve error reportingLibravatar mwenzkowski2018-11-04
| | | | | Always raise an error if the runtime only gaps command is found in the config file.
* Move view marks properties to container structLibravatar Ryan Dwyer2018-11-01
| | | | | Like border properties, this will be needed to implement layout saving and restoring.
* Merge pull request #3040 from RyanDwyer/border-props-to-containerLibravatar Drew DeVault2018-11-01
|\ | | | | Move view border properties to container struct
| * Move view border properties to container structLibravatar Ryan Dwyer2018-10-31
| | | | | | | | | | | | This will be needed to implement layout saving and restoring, as we need to be able to configure borders on a placeholder container which has no view.
* | Wrap to fartherest output when running focus outputLibravatar Ryan Dwyer2018-11-01
|/ | | | | Also moves the `opposite_direction` function into `util.c` as it's used in two places now.
* Remove enum movement_directionLibravatar Ryan Dwyer2018-10-30
| | | | | | | | | There's no point having both movement_direction and wlr_direction. This replaces the former with the latter. As movement_direction also contained MOVE_PARENT and MOVE_CHILD items, these are now checked specifically in the focus command and handled in separate functions, just like the other focus variants.
* Update workspace.cLibravatar ppascher2018-10-25
| | | re-added missing output check after config load
* Update workspace.cLibravatar ppascher2018-10-25
| | | Remove output requirement for workspace command
* Merge pull request #2975 from RyanDwyer/deny-commands-when-no-outputsLibravatar Drew DeVault2018-10-25
|\ | | | | Deny several commands when there's no outputs connected
| * Deny several commands when there's no outputs connectedLibravatar Ryan Dwyer2018-10-26
| |
* | Rebase the cursor after applying transactionsLibravatar Ryan Dwyer2018-10-25
|/ | | | | | | | | | | | This approaches cursor rebasing from a different angle. Rather than littering the codebase with cursor_rebase calls and using transaction callbacks, this just runs cursor_rebase after applying every transaction - but only if there's outputs connected, because otherwise it causes a crash during shutdown. There is one known case where we still need to call cursor_rebase directly, and that's when running `seat seat0 cursor move ...`. This command doesn't set anything as dirty so no transaction occurs.
* Rebase the cursor after focusing in a directionLibravatar Ryan Dwyer2018-10-24
| | | | | | | Prior to this patch, creating a tabbed container with two views, switching tab and then scrolling without motion would cause the scroll events to be sent to the old focus. To fix this, rebasing the cursor is needed after changing focus.
* commands: replace EXPECTED_LESS_THAN with EXPECTED_AT_MOSTLibravatar Ian Fan2018-10-23
| | | | This makes it a bit more obvious what the expected number of arguments is.
* commands: remove EXPECTED_MORE_THANLibravatar Ian Fan2018-10-23
| | | | Its uses have been replaced with EXPECTED_AT_LEAST.
* commands: print correct command on error for exec and opacityLibravatar Ian Fan2018-10-23
|
* cmd_swaynag_command: fix typo in variableLibravatar Brian Ashworth2018-10-22
| | | | | The custom swaynag_command was being stored as config->swaybg_command instead of config->swaynag_command.
* Fix crash when resizing container hidden in the scratchpadLibravatar Ryan Dwyer2018-10-23
| | | | | | | | Firstly, the container was wrongly identifying as a tiling container because it had no workspace. Secondly, when calculating the maximum possible size we can't use the workspace if it's not there, so we'll allow unlimited size in this case.
* Merge pull request #2923 from RyanDwyer/fix-move-to-fullscreen-crashLibravatar Drew DeVault2018-10-22
|\ | | | | Fix crash when moving a container to a fullscreen workspace
| * Fix crash when moving a container to a fullscreen workspaceLibravatar Ryan Dwyer2018-10-22
| | | | | | | | | | | | | | | | | | | | Setting normal focus to the fullscreen view causes the old workspace to start destroying. We then set focus to the old workspace which is no longer attached in the tree. As we are only setting focus_inactive on the fullscreen container, the fix uses seat_set_raw_focus to avoid all the additional behaviour that comes with it such as destroying the old workspace.
* | cmd_reload: recalc font sizing + rebuild texturesLibravatar Brian Ashworth2018-10-21
|/ | | | | | | | | | | When the config gets reloaded, the font height and baseline get reset to 0. If the config does not have a font command in it, the variables will remain at 0 causing a transparent area where the title would be rendered. This makes it so the font height and baseline are recalculated. Additionally, since the font height and baseline may have changed due to the reload, the title and marks textures are rebuilt.
* Make workspace back_and_forth seat-specificLibravatar Ryan Dwyer2018-10-21
| | | | | | | | * When using multiple seats, each seat has its own prev_workspace_name for the purpose of workspace back_and_forth. * Removes prev_workspace_name global variable. * Removes unused next_name_map function in tree/workspace.c. * Fixes memory leak in seat_destroy (seat was not freed).
* Remove raise_floating directiveLibravatar Ryan Dwyer2018-10-20
| | | | | | | | | | | | | The directive controlled whether floating views should raise to the top when the cursor is moved over it while using focus_follows_mouse. The default was enabled, which is undesirable. For example, if you have two floating views where one completely covers the other, the smaller one would be inaccessible because moving the mouse over the bigger one would raise it above the smaller one. There is no known use case for having raise_floating enabled, so this patch removes the directive and implements the raise_floating disabled behaviour instead.
* Merge pull request #2870 from RyanDwyer/refactor-input-managerLibravatar emersion2018-10-20
|\ | | | | Minor refactor of input manager
| * Minor refactor of input managerLibravatar Ryan Dwyer2018-10-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The input manager is a singleton object. Passing the sway_input_manager argument to each of its functions is unnecessary, while removing the argument makes it obvious to the caller that it's a singleton. This patch removes the argument and makes the input manager use server.input instead. On a similar note: * sway_input_manager.server is removed in favour of using the server global. * seat.input is removed because it can get it from server.input. Due to a circular dependency, creating seat0 is now done directly in server_init rather than in input_manager_create. This is because creating seats must be done after server.input is set. Lastly, it now stores the default seat name using a constant and removes a second reference to seat0 (in input_manager_get_default_seat).
* | Merge pull request #2879 from Emantor/fix/swaybar_positionLibravatar emersion2018-10-20
|\ \ | |/ |/| swaybar: disallow left and right position and print error on default
| * commands/bar: remove left and right from allowed positionsLibravatar Rouven Czerwinski2018-10-20
| | | | | | | | "left" and "right" are not allowed positions for swaybar, remove them.
* | Introduce cursor_rebaseLibravatar Ryan Dwyer2018-10-19
|/ | | | | This function "rebases" the cursor on top of whatever is underneath it, without triggering any focus changes.
* Merge pull request #2875 from RedSoxFan/input-device-bindingsLibravatar Drew DeVault2018-10-19
|\ | | | | cmd_bind{sym,code}: Implement per-device bindings
| * cmd_bind{sym,code}: Implement per-device bindingsLibravatar Brian Ashworth2018-10-18
| | | | | | | | | | bindsym --input-device=<identifier> ... bindcode --input-device=<identifier> ...
* | Consider cursor warp when switching workspacesLibravatar Ryan Dwyer2018-10-19
|/ | | | | | | | | Fixes a regression introduced in 24a90e5d86441fc345356eb3767e5a6880dcedbd. consider_warp_to_focus has been renamed to seat_consider_warp_to_focus, moved to seat.c and made public. It is now called when switching workspaces via `workspace <ws>`.
* Remove cursor warping from seat_set_focusLibravatar Ryan Dwyer2018-10-18
| | | | | | | | | | | | Because cursor warping was the default behaviour in seat_set_focus, there may be cases where we may have been warping the cursor unintentionally. This patch removes cursor warping from seat_set_focus and only does it in the focus command. This is managed by a static function in focus.c. To know whether to warp or not, we need to know which node had focus previously. To keep track of this easily, seat->prev_focus has been introduced and is set to the previous in seat_set_focus.
* Merge pull request #2858 from RyanDwyer/fix-move-to-floating-wsLibravatar Drew DeVault2018-10-17
|\ | | | | Fix moving tiled containers to workspaces which only have floating views
| * Fix moving tiled containers to workspaces which only have floating viewsLibravatar Ryan Dwyer2018-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Make a workspace which only contains floating views * Switch to another workspace and create a tiled view * Move the tiled view to the workspace with `move container to workspace N` The container would be added as a sibling to the floating view, which makes the container floating while having the geometry of a tiled container. This changes it so it only looks for tiled containers in the workspace with a fallback to the workspace itself.