Como iniciar um aplicativo em um espaço de trabalho diferente?

8

Eu preciso iniciar um aplicativo GUI [Lotus Symphony] em um espaço de trabalho diferente do usado atualmente. [ex .: há 4 espaços de trabalho em uma área de trabalho do GNOME.]

Q: Como faço isso?

É necessário porque a primeira inicialização do Lotus Symphony após uma reinicialização é muito, muito lenta, mas depois de ser usada uma vez, ela é iniciada muito rapidamente. Eu acho que se armazena em cache. É por isso que eu quero iniciá-lo a cada inicialização em um espaço de trabalho diferente, então será rápido mais tarde se eu precisar usá-lo.

    
por LanceBaynes 17.12.2011 / 15:59

3 respostas

5

Confira Torta do diabo (embora eu não tenha certeza de que funcionaria com o Gnome3), e você pode encontrar mais informações úteis em bash stackoverflow .

Basicamente, você deve fazer o seguinte:

#!/bin/bash
wmctrl -n 8

firefox &
thunderbird &
/usr/bin/netbeans --locale en &
amsn &
gnome-terminal &
sleep 15

wmctrl -r firefox -t 0
wmctrl -r netbeans -t 1 
wmctrl -r terminal -t 2 
wmctrl -r amsn -t 6 
wmctrl -r thunderbird -t 7

#focus on terminal
wmctrl -a terminal 

(Eu acabei de copiar e pase o código acima do link StackOverFlow acima, já que eu acho que é auto-explicativo).

ATUALIZAÇÃO:

Veja aqui para obter uma solução mais fácil no melhor site para as extensões do Gnome 3, você deve instalar a extensão Auto Move Windows para o Gnome 3. Caso não esteja funcionando para você (como você pode ver no link existem algumas distros que a automação da instalação não está funcionando direito, obtenha uma exploração mais detalhada aqui sobre como fazer funcionar     

por 17.12.2011 / 22:15
2

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
    
por 13.04.2018 / 17:38
0

Beta - mas funciona para mim no Linux mint.

#!/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) workspace(0,1,2,..) command"
WRKSPC=$1;[ -z "$WRKSPC" ] && echo $USAGE && exit 0
shift; CMD="$*"; [ -z "$CMD" ] && echo $USAGE && exit 0

WM=$(which wmctrl);[ -z "$WM" ] && echo MISSING wmctrl && exit 1

echo Executing $CMD on workspace $WRKSPC
$WM -s $WRKSPC
eval $CMD &
sleep 1
$WM -r :ACTIVE: -t $WRKSPC
    
por 02.03.2018 / 17:35

Tags