.\}
.nf
WINDOW_SEL := <window_id>
- | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[\&.floating|\&.tiled][\&.like|\&.unlike][\&.manual|\&.automatic][\&.urgent][\&.local]
+ | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[\&.floating|\&.tiled][\&.like|\&.unlike][\&.manual|\&.automatic][\&.urgent][\&.local][\&.unfocused]
.fi
.if n \{\
.RE
.RS 4
Only consider urgent windows\&.
.RE
+.PP
+unfocused
+.RS 4
+Only consider windows other than the focused window\&.
+.RE
.RE
.SS "Desktop"
.sp
----
WINDOW_SEL := <window_id>
- | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[.floating|.tiled][.like|.unlike][.manual|.automatic][.urgent][.local]
+ | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[.floating|.tiled][.like|.unlike][.manual|.automatic][.urgent][.local][.unfocused]
----
Primary Selectors
urgent::
Only consider urgent windows.
+unfocused::
+ Only consider windows other than the focused window.
+
Desktop
~~~~~~~
bool node_from_desc(char *desc, coordinates_t *ref, coordinates_t *dst)
{
- client_select_t sel = {CLIENT_TYPE_ALL, CLIENT_CLASS_ALL, CLIENT_MODE_ALL, false, false};
+ client_select_t sel = {CLIENT_TYPE_ALL, CLIENT_CLASS_ALL, CLIENT_MODE_ALL, false, false, false};
char *tok;
while ((tok = strrchr(desc, CAT_CHR)) != NULL) {
tok[0] = '\0';
sel.urgent = true;
} else if (streq("local", tok)) {
sel.local = true;
+ } else if (streq("unfocused", tok)) {
+ sel.unfocused = true;
}
}
if (sel.urgent && !loc->node->client->urgent)
return false;
+ if (sel.unfocused && loc->node == mon->desk->focus)
+ return false;
+
return true;
}