cmd_move: add support for output current

This adds support for the following commands for i3 compatibility:
- `move [window|container] [to] output current`
- `move workspace to [output] current`
- `move workspace [to] output current`

The above commands are only useful when used with criteria.
master
Brian Ashworth 6 years ago committed by Drew DeVault
parent 3b3e0560be
commit 13cbb3b7fc

@ -28,6 +28,15 @@ static const char expected_syntax[] =
static struct sway_output *output_in_direction(const char *direction_string, static struct sway_output *output_in_direction(const char *direction_string,
struct sway_output *reference, int ref_lx, int ref_ly) { struct sway_output *reference, int ref_lx, int ref_ly) {
if (strcasecmp(direction_string, "current") == 0) {
struct sway_workspace *active_ws =
seat_get_focused_workspace(config->handler_context.seat);
if (!active_ws) {
return NULL;
}
return active_ws->output;
}
struct { struct {
char *name; char *name;
enum wlr_direction direction; enum wlr_direction direction;

@ -206,7 +206,7 @@ set|plus|minus <amount>
*move* [container|window] [to] workspace back_and_forth *move* [container|window] [to] workspace back_and_forth
Moves the focused container to previously focused workspace. Moves the focused container to previously focused workspace.
*move* [container|window] [to] output <name-or-id> *move* [container|window] [to] output <name-or-id>|current
Moves the focused container to the specified output. Moves the focused container to the specified output.
*move* [container|window] [to] output up|right|down|left *move* [container|window] [to] output up|right|down|left
@ -216,10 +216,10 @@ set|plus|minus <amount>
*move* [container|window] [to] scratchpad *move* [container|window] [to] scratchpad
Moves the focused container to the scratchpad. Moves the focused container to the scratchpad.
*move* workspace [to] output <name-or-id> *move* workspace [to] output <name-or-id>|current
Moves the focused workspace to the specified output. Moves the focused workspace to the specified output.
*move* workspace to [output] <name-or-id> *move* workspace to [output] <name-or-id>|current
Moves the focused workspace to the specified output. Moves the focused workspace to the specified output.
*move* workspace [to] output up|right|down|left *move* workspace [to] output up|right|down|left

Loading…
Cancel
Save