Até agora, com vários monitores, tenho arrastado janelas manualmente. Existe uma maneira de abrir uma janela em uma tela específica em uma configuração de cabeça dupla? (Não confunda com vários monitores do servidor X.)
Algo como: SCREEN=2 firefox
ou open-in-screen 2 firefox
.
Se isso importa, meu ambiente é o KDE usando o gerenciador de janelas KWin. As regras da janela do KWin podem corresponder apenas a algumas propriedades, como título, mas não foi possível encontrar uma variável de ambiente como filtro.
A exibição secundária estende a tela principal:
$ xrandr -q
Screen 0: minimum 320 x 200, current 3520 x 1080, maximum 32767 x 32767
LVDS1 connected 1600x900+0+0 (normal left inverted right x axis y axis) 382mm x 214mm
1600x900 60.1*+
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+1600+0 (normal left inverted right x axis y axis) 477mm x 268mm
1920x1080 60.0* 50.0 59.9
1920x1080i 60.1 50.0 60.0
1680x1050 59.9
1280x1024 75.0 60.0
1440x900 59.9
1280x960 60.0
1280x720 60.0 50.0 59.9
1024x768 75.1 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3 56.2
720x576 50.0
720x480 60.0 59.9
640x480 75.0 72.8 66.7 60.0 59.9
720x400 70.1
DP1 disconnected (normal left inverted right x axis y axis)
kde
desktop
multi-monitor
kwin
virtual-desktop
Lekensteyn
fonte
fonte
kstart
isso, mas parece quekstart
apenas suporta a definição de uma área de trabalho específica, mas não uma tela na qual o aplicativo deve ser iniciado. Provavelmente vale um relatório de erros da WISHLIST em bugs.kde.org .kstart
, eu também queria saber disso. O comando é:kstart --desktop $N firefox
onde$N
está um número entre 1 e o número total de áreas de trabalho virtuais .Respostas:
Não, você não pode fazer isso diretamente. Na arquitetura X, os dois monitores físicos que você vê não são discerníveis pelos aplicativos. Você só pode contornar essa abstração, determinando quais áreas da área de trabalho visível correspondem a qual monitor e, em seguida, coloque as janelas no deslocamento correto.
Os kits de ferramentas sensíveis oferecem suporte a uma
-geometry
opção, que permite que seu aplicativo solicite a colocação em uma posição específica. Se você não tiver essa opção disponível, poderá usarwmctrl
um X Window Manager compatível com EWMH / NetWM para mover e redimensionar janelas já existentes (consulte wmctrl (1), você precisa de opções-r
e-e
). Usodevilspie
para forçar o posicionamento de algumas janelas e, é claro, o gerenciador de janelas de sua escolha pode ter suas próprias instalações para forçar o posicionamento da janela.devilspie
permite aplicar determinadas ações nas janelas X e pode usar as propriedades da janela X para discernir diferentes janelas e aplicativos. A regra principal para você seriageometry "<width>x<height>+<xoffset>+<yoffset>"
.No entanto, você sempre precisa fazer os cálculos de quando e onde outro monitor físico se inicia. Mas isso não é muito difícil e
xrandr
mostra como e onde ele usa monitores na forma de"<width>x<height>+<xoffset>+<yoffset>
em cada linha, com um nome de saída.Não existe uma maneira fácil de enganar, porque as implementações podem (e fazem!) Variar.
wmctrl
geralmente funciona no título da janela para identificar o alvo.devilspie
também pode se referir à sua classe, mas não conheço nenhum kit de ferramentas que permita especificar uma classe X windows, mas não sua geometria.É claro que você sempre pode iniciar duas
xephyr
instâncias e fazer uma preencher a tela esquerda e a outra a tela direita e, em seguida, endereçar as telas porDISPLAY
meio da variável de ambiente, mas essa solução tem outras desvantagens.Em teoria, a autoridade para controlar o posicionamento da janela é o gerenciador de janelas. Conseqüentemente, se você deseja coisas que seu gerenciador de janelas não pode, será hacky e também é a razão pela qual não há uma maneira genérica de fazer isso.
No entanto, se o seu caso de uso concreto é o emulador do Android ... que é muito diferente de pedir a opção de especificar
SCREEN=n fooapp
no shell, entãodevilspie
pode ser o que você está procurando. Dica: achei melhor identificar aplicativos por sua classe de janela.fonte
SCREEN=x app
, é possível adicionar uma propriedade de janela dessa maneira para que possa ser filtrada pelo KWin?Esta é uma solução específica para o gerenciador de janelas. É assim que se faz com o kwin, que é o gerenciador de janelas padrão do KDE.
Se você clicar com o botão direito do mouse na barra de título do aplicativo e selecionar mais configurações -> configurações especiais de aplicativo.
Vá para a guia Correspondência de janelas. Clique no botão Detectar propriedades da janela. Em seguida, com o cursor do mouse, clique na janela principal do aplicativo. Ele selecionará a classe da janela, etc., e também obterá informações sobre o posicionamento da janela, etc.
Em seguida, clique na guia Tamanho e Posição. Clique na caixa Posição e tamanho da caixa e caixa suspensa à direita de ambas e defina para lembrar.
Então clique ok.
Da próxima vez que você executar o aplicativo, ele deverá ter o mesmo tamanho e o mesmo monitor.
Eu uso isso no KDE para abrir meu terminal uRxvt no meu monitor esquerdo em uma configuração de 3 monitores e funciona sempre.
Boa sorte.
fonte
Isso depende de como os monitores duplos estão configurados.
Se você estiver usando o XINERAMA para fazer com que os dois monitores pareçam um para o X, use a
-geometry
opção para solicitar que os aplicativos apareçam em um local específico. Se você tiver os monitores configurados como telas diferentes, utilizará oDISPLAY
para isso.Experimente estes:
Se seus monitores forem da tela 0 e 1, isso deverá gerar um xterm em cada monitor.
fonte
-geometry
nem sempre funciona corretamente.emulator
, com base no QEMU). O programa é aberto onde está localizado o cursor do mouse.Eu vim através deste método que faz uso de
xdotool
,xprop
, ewmctrl
.Aqui está o que o script abaixo fará:
roteiro
Isso moverá a janela ativa para o outro monitor. Ele só pode lidar com um lado a lado, também conhecido como. horizontal, configuração de monitores.
Fonte: Xubuntu - movendo janelas entre monitores
fonte
SCREEN=2 appX
conceito, exceto que éappX; sleep 1; moveWindow.sh
.app & sleep 1; moveWindow.sh
os programas não se destacam. No entanto, não considero isso uma melhoria sobre o uso das regras de janela do KWin. +1 pelos seus esforços.Teve um problema semelhante. Encontrou o seguinte:
Se nenhum outro padrão for especificado, as janelas aparecerão na tela ativa no momento. Com o procedimento descrito acima, a posição do mouse define esta tela ativa.
fonte