Con múltiples monitores, hasta ahora he estado arrastrando ventanas manualmente. ¿Hay alguna manera de abrir una ventana en una pantalla específica en una configuración de doble cabezal? (No debe confundirse con múltiples pantallas de servidor X).
Algo así como: SCREEN=2 firefox
o open-in-screen 2 firefox
.
Si es importante, mi entorno es KDE usando el administrador de ventanas KWin. Las reglas de la ventana de KWin solo pueden coincidir con algunas propiedades como el título, pero no pude encontrar una variable de entorno como filtro.
La pantalla secundaria extiende la pantalla 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
fuente
fuente
kstart
para esto, pero parece quekstart
solo admite la definición de un escritorio específico, pero no una pantalla en la que se debe iniciar la aplicación. Probablemente vale la pena un informe de errores de WISHLIST en bugs.kde.org .kstart
, también quería saber eso. El comando es:kstart --desktop $N firefox
donde$N
hay un número entre 1 y el número total de escritorios virtuales .Respuestas:
No, no puedes hacer eso directamente. En la arquitectura X, los dos monitores físicos que ve no son discernibles por las aplicaciones. Solo puede sortear esta abstracción, determinando qué áreas del espacio de trabajo visible corresponden a qué monitor y luego coloca las ventanas en el desplazamiento correcto.
Los kits de herramientas sensibles admiten una
-geometry
opción, que permite que su aplicación solicite que se coloque en una posición específica. Si no tiene esta opción disponible, puede usarlawmctrl
si tiene un X Window Manager compatible con EWMH / NetWM para mover y cambiar el tamaño de las ventanas ya existentes (consulte wmctrl (1), necesita opciones-r
y-e
). Utilizodevilspie
para forzar la colocación de algunas ventanas y, por supuesto, su administrador de ventanas de elección puede tener su propia facilidad para forzar la colocación de ventanas.devilspie
permite aplicar ciertas acciones en X windows y puede usar las propiedades de X window para discernir diferentes ventanas y aplicaciones. La regla clave para ti seríageometry "<width>x<height>+<xoffset>+<yoffset>"
.Sin embargo, siempre debe hacer los cálculos de cuándo y dónde comienza otro monitor físico. Pero esto no es demasiado difícil y
xrandr
le dice cómo y dónde usa los monitores en forma de"<width>x<height>+<xoffset>+<yoffset>
cada línea con un nombre de salida.No existe la manera infalible de que funcione, porque las implementaciones pueden (¡y lo hacen!) Variar.
wmctrl
generalmente funciona en el título de la ventana para identificar el objetivo.devilspie
También puede referirse a su clase, sin embargo, no conozco ningún kit de herramientas que le permita especificar una clase X windows pero no su geometría.Por supuesto, siempre puede iniciar dos
xephyr
instancias y hacer que una llene su pantalla izquierda y la otra su pantalla derecha y luego aborde las pantallas a través de laDISPLAY
variable de entorno, pero esta solución tiene otras desventajas.En teoría, la autoridad para gobernar la colocación de ventanas es el administrador de ventanas. En consecuencia, si quiere cosas que su administrador de ventanas no puede, será hacky y también es la razón por la cual no hay una forma genérica de lograr esto.
Sin embargo, si su caso de uso concreto es su emulador de Android ... que es muy diferente de pedir la opción para especificar
SCREEN=n fooapp
en el shell, entoncesdevilspie
puede ser lo que está buscando. Sugerencia: descubrí que es mejor identificar las aplicaciones por su clase de ventana.fuente
SCREEN=x app
, ¿es posible agregar una propiedad de ventana de esta manera para que KWin pueda filtrarla?Esta es una solución específica del administrador de ventanas. Así es como hacerlo con kwin, que es el administrador de ventanas predeterminado de KDE.
Si hace clic derecho en la barra de título de la aplicación y selecciona más configuraciones -> configuraciones especiales de la aplicación.
Vaya a la pestaña de coincidencia de ventana. Haga clic en el botón Detectar propiedades de la ventana. Luego, con el cursor del mouse, haga clic en la ventana principal de la aplicación. Seleccionará la clase de ventana, etc. y también obtendrá información de posicionamiento de ventana, etc.
Luego haga clic en la pestaña Tamaño y Posición. Haga clic en la Posición del cuadro y el Tamaño del cuadro y en el cuadro desplegable a la derecha de ambos y configúrelo para recordar.
Luego haz clic en Aceptar.
La próxima vez que ejecute la aplicación, debe ser del mismo tamaño y en el mismo monitor.
Lo uso en KDE para abrir mi terminal uRxvt en mi monitor izquierdo en una configuración de 3 monitores y funciona todo el tiempo.
Buena suerte.
fuente
Esto depende de cómo estén configurados sus monitores duales.
Si está utilizando XINERAMA para hacer que ambas pantallas se vean como una a X, entonces usaría la
-geometry
opción para solicitar que las aplicaciones aparezcan en una ubicación específica. Si tiene las pantallas configuradas como pantallas diferentes, entonces usará elDISPLAY
para lograr esto.Pruébalo:
Si sus monitores son pantallas 0 y 1, esto debería generar una xterm en cada monitor.
fuente
-geometry
no siempre funciona correctamente.emulator
, basado en QEMU). El programa se abre donde se encuentra el cursor de mi mouse.Me llegó a través de este método que hace uso de
xdotool
,xprop
, ywmctrl
.Esto es lo que hará el siguiente script:
guión
Esto moverá la ventana activa al otro monitor. Solo puede manejar uno al lado del otro, también conocido como. horizontal, configuración de monitores.
Fuente: Xubuntu - mover ventanas entre monitores
fuente
SCREEN=2 appX
concepto, excepto que esappX; sleep 1; moveWindow.sh
.app & sleep 1; moveWindow.sh
que los programas no se separan. Sin embargo, no considero que esto sea una mejora sobre el uso de las reglas de ventana de KWin. +1 por tus esfuerzos.Tuve un problema similar Encontramos lo siguiente:
Si no se especifican otros valores predeterminados, las ventanas aparecen en la pantalla actualmente activa. Con el procedimiento descrito anteriormente, la posición del mouse define esta pantalla activa.
fuente