Any assignment with type 'A_NO_FOCUS' will cause the matched window to not be focused by i3 when it is managed.
*
* A_COMMAND = run the specified command for the matching window
* A_TO_WORKSPACE = assign the matching window to the specified workspace
+ * A_NO_FOCUS = don't focus matched window when it is managed
*
* While the type is a bitmask, only one value can be set at a time. It is
* a bitmask to allow filtering for multiple types, for example in the
enum {
A_ANY = 0,
A_COMMAND = (1 << 0),
- A_TO_WORKSPACE = (1 << 1)
+ A_TO_WORKSPACE = (1 << 1),
+ A_NO_FOCUS = (1 << 2)
} type;
/** the criteria to check if a window matches */
/* Defer setting focus after the 'new' event has been sent to ensure the
* proper window event sequence. */
if (set_focus && !nc->window->doesnt_accept_focus && nc->mapped) {
- DLOG("Now setting focus.\n");
- con_focus(nc);
+ if (assignment_for(cwindow, A_NO_FOCUS) == NULL) {
+ DLOG("Now setting focus.\n");
+ con_focus(nc);
+ }
}
tree_render();