aboutsummaryrefslogtreecommitdiff
path: root/sway
AgeCommit message (Collapse)Author
2018-11-07Implement per side and per direction outer gapsBrian Ashworth
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.
2018-11-06Add focus_follows_mouse always. (#3081)Connor E
* Add focus_follows_mouse_mode. * Fail if focus_follows_mouse is invalid. * Fix indentation.
2018-11-05Add relative output transformRyan Walklin
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.
2018-11-05Merge branch 'master' into effective-damageDrew DeVault
2018-11-05config: mention that reload message is also printed on validationRouven Czerwinski
2018-11-05commands/exec_always: defer command on config validationRouven Czerwinski
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
2018-11-05Fix focus_wrapping yesBrian Ashworth
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.
2018-11-05Merge pull request #3066 from mwenzkowski/fix-gapsemersion
Improvements to the runtime only part of the gaps command
2018-11-04Use wlr_surface_get_effective_damageemersion
2018-11-04gaps: Improve error reportingmwenzkowski
Always raise an error if the runtime only gaps command is found in the config file.
2018-11-04Correct manpage regarding gaps commandmwenzkowski
The command 'gaps inner|outer all|current set|plus|minus <amount>' is not valid in the configuration file, hence list it accordingly.
2018-11-04added space after table in sway.5 manpagemadblobfish
2018-11-04removed unneeded code fragmentmadblobfish
2018-11-03ipc: move refresh from output to output->current_modeCole Mickens
2018-11-03fix: restore refresh to the modes_arrayCole Mickens
2018-11-03Merge pull request #3021 from Snaipe/singlekey-binding-triggerDrew DeVault
binding: match single-key bindings if no multi-key binding matched
2018-11-03sway-ipc: includes current_mode for each outputCole Mickens
2018-11-01Teardown compositor when failing to drop permissionsemersion
2018-11-01Make it clear that being able to restore root is a failureemersion
2018-11-01Fix #2992mwenzkowski
Move a function call, such that data it depends on is initialized before.
2018-11-01Move view marks properties to container structRyan Dwyer
Like border properties, this will be needed to implement layout saving and restoring.
2018-11-01Merge pull request #3040 from RyanDwyer/border-props-to-containerDrew DeVault
Move view border properties to container struct
2018-11-01Wrap to fartherest output when running focus outputRyan Dwyer
Also moves the `opposite_direction` function into `util.c` as it's used in two places now.
2018-10-31Move view border properties to container structRyan Dwyer
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.
2018-10-31Merge pull request #3031 from atomnuker/masterDrew DeVault
Restore previous tabbed layout behavior
2018-10-30Remove enum movement_directionRyan Dwyer
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.
2018-10-30Revert "Respect border settings when rendering lone tabbed/stacked child"Rostislav Pehlivanov
This reverts commit 65328ef60c9468ae44b4b1d6316d604c47293ec3.
2018-10-30Revert "tree/view.c: fix uninitialized variables warning"Rostislav Pehlivanov
This reverts commit 6414b5d288b89c9f3ecde0757f16184071b6036f.
2018-10-29binding: match single-key bindings if no multi-key binding matchedFranklin "Snaipe" Mathieu
This makes bindings more snappy when the user is typing faster than his keycaps are releasing. Signed-off-by: Franklin "Snaipe" Mathieu <me@snai.pe>
2018-10-28cursor: fix uninitialized pointer in cursor_rebasemwenzkowski
2018-10-28Merge pull request #3011 from Emantor/fix/2922Drew DeVault
output: initialize layers before usage in apply_config
2018-10-28Merge pull request #3010 from Emantor/fix/cursor_warping_view_mapDrew DeVault
input-manager: consider cursor warping on input_manager_set_focus
2018-10-28output: initialize layers and signal before using functionsRouven Czerwinski
The previous pull request #2993 tried to fix this by moving the function which used the layers after the initilization. Since this initialization is done unconditionally only depending on the struct definition, move the layer initialization to the beginning of the function. Also move the signal initialization of the destroy event. Fixes #2992
2018-10-28input-manager: consider cursor warping on input_manager_set_focusRouven Czerwinski
input_manager_set_focus is used to set the focus after mapping the view in view_map. This needs to consider to warp the cursor as well, since for WARP_CONTAINER, the cursor should warp to the newly created view.
2018-10-28Merge pull request #3006 from Snaipe/remove-classDrew DeVault
ipc: make json for view match i3's output more closely
2018-10-27Merge pull request #3000 from Robinhuett/workspace_address_output_by_nameemersion
Use output identifier for workspace config
2018-10-27seat: don't traverse the list to check if it's emptyKonstantin Kharlamov
Found by introspection. Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
2018-10-27ipc: make class, instance, and title window properties optionalFranklin "Snaipe" Mathieu
i3 seems to make all window properties, with the exception of transient_for, optional[1]. [1]: https://github.com/i3/i3/blob/315ff17563fd703b2f5117b2ec4d46e89389d323/src/ipc.c#L435-L450 Signed-off-by: Franklin "Snaipe" Mathieu <snaipe@diacritic.io>
2018-10-27ipc: remove class key from view jsonFranklin "Snaipe" Mathieu
It turns out that i3 does not have a `class` key in the json description of a view, but provides it through `window_properties.class`. Since `window_properties` has been added by 8fc9328, we can remove `class` altogether. Signed-off-by: Franklin "Snaipe" Mathieu <snaipe@diacritic.io>
2018-10-27Use output identifier for workspace configRobinhuett
2018-10-27Revert "Fix #2992"Drew DeVault
This reverts commit 94985146ea00b40f72cd6afaa191fd92a46e4fd3.
2018-10-27Don't reset cursor during mouse operationsRyan Dwyer
2018-10-26tree/view.c: fix uninitialized variables warningCole Mickens
2018-10-27Respect border settings when rendering lone tabbed/stacked childRyan Dwyer
In i3, when a child of a tabbed or stacked container has no siblings, its border settings are respected. This patch achieves the same effect by rendering a lone tabbed/stacked child as if it's a linear container. This makes the border settings be respected. Over in view_autoconfigure, we compensate for this by only adjusting `y_offset` if there's multiple children.
2018-10-26Fix #2992mwenzkowski
Move a function call, such that data it depends on is initialized before.
2018-10-26Fix focus after a non-visible workspace's last container is destroyedRyan Dwyer
The code being changed is responsible for updating the focus stack when a container is destroyed in a different part of the tree to where the real focus is. It's attempting to set focus_inactive to a sibling (or parent if no siblings) of the container that is being destroyed, then put our real focus back on the end of the focus stack. The problem occurs when the container being destroyed is in a different workspace. For example: * Have a focused view on workspace 1 * Have workspace 2 not visible with a single view that is unmapping * The first call to seat_set_raw_focus sets focus to workspace 2 because it's the parent * Prior to this patch, the second call to seat_set_raw_focus would set focus to the view on workspace 1 * Later, when using output_get_active_workspace, this function would return workspace 2 because it's the first workspace it finds in the focus stack. To fix this, workspace 1 must be placed on the focus stack between workspace 2 and the focused view. That's what this patch does. Lastly, it also uses seat_get_focus_inactive to choose the focus. This fixes a crash when a view unmaps while a non-container is focused (eg. swaylock), because focus is NULL.
2018-10-26Merge pull request #2985 from mihaicmn/fix-retilingDrew DeVault
Fix re-tiling for floating containers
2018-10-25Fix re-tiling for floating containersMihai Coman
When a floating container is tiled (e.g.: 'floating toggle' or 'floating disable'), it should be placed after/below the inactive focused container from the tiling layout.
2018-10-25sway-ipc: don't log errno if unneeded and add more descriptive errorsFerdinand Bachmann
2018-10-25protect newlineTom Warnke