Como iniciar um aplicativo na cabeça específica?

3

Estou tentando iniciar o cheese de modo que ele seja executado em uma cabeça específica em uma exibição com várias cabeças configuração. As opções do aplicativo incluem uma configuração --display=DISPLAY :

$ cheese --help
Usage:
  cheese [OPTION...]

...
Application Options:
  -w, --wide               Start in wide mode
  -d, --device=DEVICE      Device to use as a camera
  -v, --version            Output version information and exit
  -f, --fullscreen         Start in fullscreen mode
  --display=DISPLAY        X display to use

Estou pensando que posso definir a cabeça com algo como --display=:0.1 , mas apenas ": 0" permite que o aplicativo seja iniciado (na cabeça errada).

Qual parâmetro de argumento forçaria isso para iniciar em outro head / display na mesma estação de trabalho?

    
por ylluminate 07.05.2016 / 01:34

1 resposta

4

A sintaxe :0.NUMBER especifica um número de tela na tela 0. O conceito de tela pretendia descrever vários monitores no mesmo monitor, mas um aplicativo não pode ser movido de um monitor para outro, então tem sido praticamente abandonado. Seus monitores estão todos na tela 0, ou seja, :0.0 , o que equivale a :0 , pois a única tela é a tela padrão.

Todos os monitores são colocados em uma tela retangular. Em uma configuração de dois monitores, um monitor tem seu canto superior esquerdo na posição 0x0 e o outro tem seu canto superior esquerdo na posição 0xH (disposição vertical) ou Wx0 (disposição horizontal) onde WxH é o tamanho do primeiro monitor.

O aplicativo bem comportado aceita uma opção -geometry ou --geometry que permite ao usuário especificar a posição e o tamanho da janela principal do aplicativo. Por exemplo, com dois monitores de 1600 x 1200 em um arranjo horizontal, xterm -geometry +1600+0 inicia o xterm no canto superior esquerdo do monitor direito. Infelizmente Cheese não é bem comportado¹.

Se você sempre deseja executar o aplicativo em uma posição específica, use Torta do diabo para torná-lo reposicione a janela quando ela é criada. Com devilspie2 , crie um arquivo ~/.config/devilspie2/cheese-geometry.lua contendo

if (get_application_name() == "Cheese" and get_window_name() == "Cheese") then
  set_window_position(1600, 0);
end

Com a Torta do diabo original , crie um arquivo ~/.devilspie/cheese-geometry.ds contendo

(if (and (is (application_name) “Cheese”) (is (window_name) “Cheese”))
    (geometry "+100+1"))

Note que o seu gerenciador de janelas pode sobrescrever a posição - o gerenciador de janelas tem a palavra final ao posicionar as janelas. Se o seu gerenciador de janelas anula a posição, esperamos que ele tenha uma maneira de configurá-lo.

¹ É uma aplicação GNOME. O GNOME acredita em remover qualquer capacidade de os usuários escolherem como os programas se comportam.

    
por 08.05.2016 / 01:55