aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--completions/fish/swaymsg.fish1
-rw-r--r--sway/commands/exec_always.c2
-rw-r--r--sway/commands/focus.c8
-rw-r--r--sway/commands/gaps.c15
-rw-r--r--sway/config.c3
-rw-r--r--sway/input/seat.c3
-rw-r--r--sway/sway.5.scd9
-rw-r--r--swaymsg/swaymsg.1.scd4
8 files changed, 29 insertions, 16 deletions
diff --git a/completions/fish/swaymsg.fish b/completions/fish/swaymsg.fish
index 1e5bf3da..fd577413 100644
--- a/completions/fish/swaymsg.fish
+++ b/completions/fish/swaymsg.fish
@@ -16,4 +16,5 @@ complete -c swaymsg -s t -l type -fra 'get_bar_config' --description "Get a JSON
complete -c swaymsg -s t -l type -fra 'get_version' --description "Get JSON-encoded version information for the running instance of sway."
complete -c swaymsg -s t -l type -fra 'get_binding_modes' --description "Gets a JSON-encoded list of currently configured binding modes."
complete -c swaymsg -s t -l type -fra 'get_config' --description "Gets a JSON-encoded copy of the current configuration."
+complete -c swaymsg -s t -l type -fra 'get_seats' --description "Gets a JSON-encoded list of all seats, its properties and all assigned devices."
complete -c swaymsg -s t -l type -fra 'send_tick' --description "Sends a tick event to all subscribed clients."
diff --git a/sway/commands/exec_always.c b/sway/commands/exec_always.c
index 8bdeceeb..7a15709b 100644
--- a/sway/commands/exec_always.c
+++ b/sway/commands/exec_always.c
@@ -15,7 +15,7 @@
struct cmd_results *cmd_exec_always(int argc, char **argv) {
struct cmd_results *error = NULL;
- if (!config->active) return cmd_results_new(CMD_DEFER, NULL, NULL);
+ if (!config->active || config->validating) return cmd_results_new(CMD_DEFER, NULL, NULL);
if ((error = checkarg(argc, argv[-1], EXPECTED_AT_LEAST, 1))) {
return error;
}
diff --git a/sway/commands/focus.c b/sway/commands/focus.c
index cef92144..f6338c55 100644
--- a/sway/commands/focus.c
+++ b/sway/commands/focus.c
@@ -156,6 +156,14 @@ static struct sway_node *node_get_in_direction(struct sway_container *container,
if (new_output) {
return get_node_in_output_direction(new_output, dir);
}
+
+ // If there is a wrap candidate, return its focus inactive view
+ if (wrap_candidate) {
+ struct sway_container *wrap_inactive = seat_get_focus_inactive_view(
+ seat, &wrap_candidate->node);
+ return &wrap_inactive->node;
+ }
+
return NULL;
}
diff --git a/sway/commands/gaps.c b/sway/commands/gaps.c
index ca8cb27a..3f0ef155 100644
--- a/sway/commands/gaps.c
+++ b/sway/commands/gaps.c
@@ -149,16 +149,17 @@ struct cmd_results *cmd_gaps(int argc, char **argv) {
return error;
}
+ bool config_loading = !config->active || config->reloading;
+
if (argc == 2) {
return gaps_set_defaults(argc, argv);
}
- if (argc == 4) {
- if (config->active) {
- return gaps_set_runtime(argc, argv);
- } else {
- return cmd_results_new(CMD_INVALID, "gaps",
- "This syntax can only be used when sway is running");
- }
+ if (argc == 4 && !config_loading) {
+ return gaps_set_runtime(argc, argv);
+ }
+ if (config_loading) {
+ return cmd_results_new(CMD_INVALID, "gaps",
+ "Expected 'gaps inner|outer <px>'");
}
return cmd_results_new(CMD_INVALID, "gaps",
"Expected 'gaps inner|outer <px>' or "
diff --git a/sway/config.c b/sway/config.c
index 9ec40367..7ef3ef38 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -389,7 +389,8 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
config_defaults(config);
config->validating = validating;
if (is_active) {
- wlr_log(WLR_DEBUG, "Performing configuration file reload");
+ wlr_log(WLR_DEBUG, "Performing configuration file %s",
+ validating ? "validation" : "reload");
config->reloading = true;
config->active = true;
diff --git a/sway/input/seat.c b/sway/input/seat.c
index 64419afa..54fdf40b 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -55,9 +55,6 @@ void seat_destroy(struct sway_seat *seat) {
free(seat);
}
-static struct sway_seat_node *seat_node_from_node(
- struct sway_seat *seat, struct sway_node *node);
-
static void seat_node_destroy(struct sway_seat_node *seat_node) {
wl_list_remove(&seat_node->destroy.link);
wl_list_remove(&seat_node->link);
diff --git a/sway/sway.5.scd b/sway/sway.5.scd
index b3d696f2..4a645837 100644
--- a/sway/sway.5.scd
+++ b/sway/sway.5.scd
@@ -133,6 +133,10 @@ They are expected to be used with *bindsym* or at runtime through *swaymsg*(1).
*fullscreen*
Toggles fullscreen for the focused view.
+*gaps* inner|outer all|current set|plus|minus <amount>
+ Changes the _inner_ or _outer_ gaps for either _all_ workspaces or the
+ _current_ workspace.
+
*layout* default|splith|splitv|stacking|tabbed
Sets the layout mode of the focused container.
@@ -364,6 +368,7 @@ The default colors are:
: #000000
: #0c0c0c
+
*debuglog* on|off|toggle
Enables, disables or toggles debug logging. _toggle_ cannot be used in the
configuration file.
@@ -433,10 +438,6 @@ The default colors are:
This affects new workspaces only, and is used when the workspace doesn't
have its own gaps settings (see: workspace <ws> gaps inner|outer <amount>).
-*gaps* inner|outer all|current set|plus|minus <amount>
- Changes the _inner_ or _outer_ gaps for either _all_ workspaces or the
- _current_ workspace.
-
*hide\_edge\_borders* none|vertical|horizontal|both|smart|smart\_no\_gaps
Hides window borders adjacent to the screen edges. Default is _none_.
diff --git a/swaymsg/swaymsg.1.scd b/swaymsg/swaymsg.1.scd
index 8cf1b222..eaac8105 100644
--- a/swaymsg/swaymsg.1.scd
+++ b/swaymsg/swaymsg.1.scd
@@ -50,6 +50,10 @@ _swaymsg_ [options...] [message]
Gets a JSON-encoded layout tree of all open windows, containers, outputs,
workspaces, and so on.
+*get\_seats*
+ Gets a JSON-encoded list of all seats,
+ its properties and all assigned devices.
+
*get\_marks*
Get a JSON-encoded list of marks.