tl; dr:
Como faço para implementar a diretiva no_focus no i3wm e como atribuo dinamicamente um programa a um espaço de trabalho com base no espaço de trabalho onde eu chamo a ligação para abrir o programa (ou seja, pressiono a tecla de atalho em workspace n
e ele abre em workspace n
, mesmo que meu foco tenha mudado para workspace n + 1
antes que o programa tenha sido totalmente carregado)?
Contexto: Eu tenho um punhado de atalhos de teclado no i3wm (i3-gaps no Arch, para ser específico) que eu uso, por exemplo
bindsym $mod+Shift+W exec chromium
bindsym $mod+Shift+I exec chromium --incognito
bindsym $mod+Shift+F exec firefox
Mas eu não gosto do foco de roubar janelas abertas recentemente e principalmente não gosto do comportamento em que estou em workspace n
, pulo para workspace n + 1
para apertar meu atalho de teclado, voltar para workspace n
para continuar executando alguma tarefa no terminal enquanto eu espero o programa carregar, e, eis, o programa carrega no meu workspace n
atual em vez de workspace n + 1
onde eu bato a tecla de atalho.
Eu encontrei esta explicação na documentação do i3wm discutindo exatamente o que eu quero em termos de foco na janela, mas não consigo encontre um único comando de exemplo que eu possa modificar: no_focus [window_role="pop-up"]
, o exemplo que eles dão, não faz sentido para mim. Eu tentei exec no_focus chromium
, no_focus exec chromium
e um punhado de combinações menos sensatas e nenhuma delas parece funcionar: eu não sei como implementar o comando.
Eu também não tenho certeza, uma vez que eu funcione, se digitar uma ligação em um espaço de trabalho forçará o programa a abrir naquele espaço de trabalho ao invés de me seguir para o meu novo espaço de trabalho. Conheço a atribuição do espaço de trabalho (nunca a implementei, mas essa é outra questão), mas preferiria ter uma atribuição dinâmica do espaço de trabalho como eu tenho detalhado: atribuição do espaço de trabalho com base no espaço de trabalho que a atadura de teclado é executada.
Tags window-manager window focus i3