Existe alguma maneira de especificar qual espaço de trabalho e / ou janela para iniciar um programa?

2

Eu fiz uma pergunta relacionada, porém mais específica, aqui . Eu quero saber se existe uma maneira de especificar onde você deseja que um programa seja iniciado. Eu basicamente quero escrever um script de shell que é lançado toda vez que eu logar, assim

google-chrome www.gmail.com    -workspace=1 -monitor=1
google-chrome www.facebook.com -workspace=1 -monitor=2
google-chrome www.youtube.com  -workspace=1 -monitor=3

gedit a.txt b.txt c.txt        -workspace=2 -monitor=1
gedit d.txt e.txt f.txt        -workspace=2 -monitor=2
gedit g.txt h.txt i.txt        -workspace=2 -monitor=3

mplayer Terminator1.mkv        -workspace=3 -monitor=1
mplayer Terminator2.mkv        -workspace=3 -monitor=2
mplayer Terminator3.mkv        -workspace=3 -monitor=3

existe um programa chamado wmctrl mas ele falha de muitas maneiras que nem sei por onde começar. Em princípio, é simples, especifique a janela e mova-a. Mas especificar janelas não é fácil, dois navegadores são chamados de "Google Chrome". Pode-se usar seus IDs de janela exclusivos, mas obter essas informações não é trivial (AFAIK, isso não é retornado na execução). Em seguida, há uma opção :ACTIVE: , que é o programa lançado mais recentemente, mas não há garantia de que a janela seja iniciada quando o controle for retornado à linha de comando. Para piorar, é preciso especificar coordenadas globais, ao contrário de coordenadas opcionais dentro de um espaço de trabalho / monitor.

Aqui está a abordagem que estou tomando atualmente. Enviei alguns scripts para o GitHub (consulte aqui ou aqui ) que usa o wmctrl para mover as janelas.

    
por puk 17.10.2011 / 23:23

2 respostas

2

Você pode determinar qual exibição iniciar um programa usando o seguinte:

$ DISPLAY=":0.1" program_name

Alguns programas permitem que você defina sua exibição padrão em um arquivo de configuração. O mplayer é um desses programas. Acrescente o seguinte a ~ / .mplayer / config

  

display=": 0,1"

Sua primeira exibição é 0.0. Seu segundo monitor é de 0,1. Seu terceiro monitor é de 0,2.

    
por earthmeLon 19.10.2011 / 03:21
2

Você pode definir a qual espaço de trabalho um programa é iniciado pela GUI, instalando o Gerenciador de Configurações CompizConfig no Centro de Software.

Primeiro, abra uma instância do programa que você deseja colocar.

Execute o CCSM e vá para "Gerenciamento de Janelas" e ative "Colocar Janelas", clique nele e escolha o "Colocação de Janelas Fixas".

Em "Windows com viewport fixo", clique em Novo. Na caixa de diálogo exibida, clique no botão "+". Em seguida, na próxima caixa de diálogo, clique no botão "Agarrar" e, em seguida, clique no programa iniciado e em "Adicionar". Em seguida, defina os valores para as viewports: X = 1, Y = 1 é o canto superior esquerdo X = 1, Y = 2 é o canto inferior esquerdo X = 2, Y = 1 é o canto superior direito X = 2, Y = 2 é o canto inferior direito.

Se você não fizer mais nada, isso será definido para a classe de janela, mas há outras opções, como ID, Tipo e mais, mas o ID é o único que você não pode usar.

    
por Rasmus 19.10.2011 / 20:03