O seguinte é um programa que iniciará outro aplicativo e o moverá para um espaço de trabalho especificado.
Você deve copiar isso em um arquivo chamado move-at-start.sh, marcá-lo como executável e colocá-lo em algum lugar em seu diretório inicial (eu sugiro colocá-lo na pasta ~/.local
, mas você pode colocá-lo em seu ~/bin
ou algum outro lugar, se preferir, lembre-se de onde você o colocou e o nome que você deu. ( link pastebin )
#!/bin/bash
# invocation
# move-at-start.sh <desktop> <prog> <prog args>
if [ $# -lt 2 ]; then
echo "invocation: move-at-start.sh <desktop> <prog> <prog args>"
exit 1
fi
desk=
prog=
args=""
shift
shift
while (( "$#" )); do
args="$args """
shift
done
$prog $args
windows=$(wmctrl -lp | grep -E "($(echo $(ps -C "$prog" -o pid,user | grep "'whoami'" | sed -E "s/^\ *//" | cut -d\ -f 1) | sed "s/\ /|/g"))" | cut -d\ -f 1)
for w in $windows; do
wmctrl -i -r $w -t $desk
done
exit 0
Depois de ter feito isso, vá para ~/.config/autostart
em seu shell ou Nautilus.
Nesta pasta, você encontrará alguns arquivos com nomes como app-name.desktop
, os quais correspondem aos aplicativos que você deseja iniciar (provavelmente <name>.desktop
) e os abre no seu editor de texto favorito.
Para cada arquivo, localize a linha que inicia exec=<some command and args>
e altere para exec=</path/to/above/script>/move-at-start.sh <desktop number> <some command and args>
.
A próxima vez que você fizer login, o aplicativo deverá ser iniciado e movido para a área de trabalho especificada.
Notas: Os desktops são numerados a partir de 0, de modo que a primeira área de trabalho é 0, a terceira é 2, etc.
Notas: Se a área de trabalho especificada não existir, a janela permanecerá na área de trabalho original.