Sample Header Ad - 728x90

Focus preservation in i3wm

1 vote
0 answers
792 views
***tl;dr:*** **How do I implement the no_focus directive in i3wm and how do I dynamically assign a program to a workspace based on the workspace where I key the binding to open the program (i.e., I press the keybinding on workspace n and it opens on workspace n even if my focus has changed to workspace n + 1 before the program has fully loaded)?** **Context:** I have a handful of keybindings in i3wm (i3-gaps on Arch, to be specific) that I use, e.g. bindsym $mod+Shift+W exec chromium bindsym $mod+Shift+I exec chromium --incognito bindsym $mod+Shift+F exec firefox But I dislike the focus stealing of newly opened windows and especially dislike the behavior where I'm on workspace n, jump to workspace n + 1 to hit my keybinding, jump back to workspace n to continue performing some task in terminal while I wait for the program to load, and, lo, the program loads on my current workspace n instead of workspace n + 1 where I hit the keybinding. I have found [this explanation](https://i3wm.org/docs/userguide.html#_don_8217_t_focus_window_upon_opening) in the i3wm documentation discussing exactly what I want in terms of window focusing but cannot find a single example command that I can modify: no_focus [window_role="pop-up"], the example they give, does not make sense to me. I have tried exec no_focus chromium, no_focus exec chromium and a handful of less sensible combinations and none of them seem to work: I do not know how to implement the command. I also am unsure, once I get it to work, if keying in a binding on a work space will force the program to open on that work space rather than following me to my new workspace. I know of workspace assignment (never implemented it, but that is another question) but would prefer to have a dynamic workspace assignment like I've been detailing: workspace assignment based on the workspace the keybinding is executed.
Asked by mas (1919 rep)
Jul 25, 2018, 07:30 PM
Last activity: Jul 27, 2018, 02:54 PM