As áreas de trabalho tecnicamente falando são referidas como viewports
, uma seção específica da área de trabalho estendida, com coordenadas específicas, por exemplo 0, 0
é a viewport 1 e 1366, 0
seria a imediatamente à direita.
Deve-se notar que o Gerenciador de Configurações do CompizConfig tem uma opção para abertura "fixa" de uma janela no espaço de trabalho específico, mas é possível criar um script como você mencionou. Aqui está o meu exemplo.
#!/bin/bash
get_viewport()
{
xprop -root -notype _NET_DESKTOP_VIEWPORT | awk '{print ,}'
}
spawn_viewport_1()
{
nohup gnome-terminal 2>&1 > /dev/null &
nohup chromium-browser 2>&1 > /dev/null &
}
spawn_viewport_2()
{
nohup xterm 2>&1 > /dev/null &
nohup firefox 2>&1 > /dev/null &
}
main()
{
case $(get_viewport) in
"0, 0") spawn_viewport_1 ;; # note , single space in "0, 0" is important
"1366, 0") spawn_viewport_2 ;;
esac
}
main
Essencialmente, o que está acontecendo é que eu tenho duas funções, cada uma para uma viewport específica. Eu também tenho uma função que verifica em qual viewport estou atualmente. Se eu estiver atualmente na viewport 1 (coordenadas 0,0), ele gerará um conjunto de aplicativos. Se eu estiver na viewport 2 (coordenadas 1366,0), teremos diferentes conjuntos de aplicativos gerados.