O post original estava relacionado ao uso de um script para fazer um aplicativo aparecer em um espaço de trabalho específico, de modo que outro script pudesse ser usado no script Start Up para permitir que um usuário continuasse trabalhando enquanto um aplicativo inicial muito lento fosse carregado em outro espaço de trabalho. Meu script funciona muito bem como front-end para a sintaxe de wmctrl bastante complicada, para iniciar qualquer aplicativo em qualquer espaço de trabalho, a partir de qualquer prompt de comando. Assim, um script adicional que simplesmente lista algo como, lh 1 thunderbird; lh 2 firefox; lh 3 calculadora ..., ou seja o que for, agora é fácil. No entanto, existem algumas dificuldades com o tempo, assim o sono no meu script. O abaixo é uma versão atualizada, que eu não vou manter ou postar novamente. Use AS IS, sem garantia de capricho para qualquer uso particular. Modifique como quiser. Sugiro salvar como / usr / local / bin / lh, simplesmente porque lh não é nenhum outro nome de programa conhecido, pelo menos não no Mint 18. Quanto a variáveis - eu citei variáveis que julguei necessárias para serem citadas.
#! / bin / sh
## Author: B.A. Computer Services www.bornagaincomputer.com
## Purpose: Frontend to launch anything on a specific desktop/workspace.
## lh is short for LaunchHere
USAGE="USAGE: $(basename $0) [-r] workspace(1,2,..) command\
LaunchHere launches COMMAND on specific workspace.\
-r option returns to current workspace"
[ -z "$1" ] && echo $USAGE && exit 0
ISRETURN=$(false); [ "$1" = "-r" ] && ISRETURN=true && shift;
WRKSPC=$1;[ -z "$WRKSPC" ] && echo $USAGE && exit 0
WSN=$(expr $WRKSPC - 1) ## wmctrl starts with 0 as first wrkspc
shift; CMD="$*"; [ -z "$CMD" ] && echo $USAGE && exit 0
WM=$(which wmctrl);[ -z "$WM" ] && echo MISSING wmctrl && exit 1
CURRENT=$(wmctrl -d | grep '*' | cut -c1)
# Switch to desired workspace
$WM -s $WSN
$CMD &
PID=$!
echo Executed $CMD on workspace $WRKSPC, PID=$PID
sleep 3
# Return to CURRENT workspace ?
# [ $ISRETURN ] && echo TRUE || echo FALSE
[ $ISRETURN ] && $WM -s $CURRENT