Aguarde até que a janela apareça e, em seguida, envie-a para a área de trabalho original:
#!/bin/bash
activeworkspace=$(i3-msg -t get_workspaces | jq -c '.[] | select(.focused) | .name' --raw-output)
atom &
windowname=atom
xprop -spy -root _NET_ACTIVE_WINDOW | \
while read line ; do
if xprop WM_CLASS -id ${line##* } | grep -q $windowname ; then
i3-msg move "[con_id=\"${line##* }\"]" $activeworkspace
exit
fi
done
- Primeiro, obtenha o espaço de trabalho ativo, use
jq
como exemplo - execute seu programa em segundo plano:
atom &
- Use
xprop -spy
para 'Examine as propriedades da janela para sempre, procurando eventos de alteração de propriedade.' - Atuar em todas as novas janelas ativas com
while read line
- Obtenha WM_CLASS deles com
xprop WM_CLASS
, extraia o windowid com bash${line##* }
- Filtrar com
grep $windowname
- Mover a janela para o espaço de trabalho original com
i3-msg move ..
Você deve permanecer no espaço de trabalho ativo e uma janela nesse espaço de trabalho deve ficar focada.
Não funciona quando você tem várias janelas de átomo que se concentram entre o início e o movimento de uma nova janela atômica. Nesse caso, você teria que procurar o átomo NET_WM_PID em vez de WM_CLASS.