¿Cómo dividir verticalmente la pantalla panorámica en dos espacios de trabajo virtuales en Ubuntu / Gnome?

23

Mi nueva computadora portátil tiene una gran pantalla de 16: 9, y me resulta difícil utilizarla por completo durante el 95% del tiempo que no estoy viendo películas HD en ella.

Me gustaría configurarlo como una especie de pantalla dual virtual dividiendo la pantalla física en dos espacios de trabajo. Sé que podría organizar mis ventanas manualmente, pero me gustaría poder maximizar una ventana y hacer que solo consuma la mitad del monitor, y tener sus cuadros de diálogo emergentes centrados en su media pantalla, ese tipo de cosas.

¿Hay algún tipo de complemento disponible para hacer esto?

David
fuente
Si está utilizando compiz, puede encontrar el complemento de cuadrícula más sencillo, vea mi respuesta a continuación.
kynan

Respuestas:

24

puedes usar ' fakexinerama ' para lograr lo que quieres:

 Fake Xinerama is a replacement libXinerama library that instead 
 of querying the XServer reads ~/.fakexinerama and provides fake 
 information about Xinerama screens based on this file. It can be 
 used to fake a Xinerama setup even on computers with just one monitor
 or to fake Xinerama setup other than one specified in the XServer 
 configuration (e.g. making one screen smaller when using two same 
 screens). It's probably only useful for developers.
akira
fuente
1
Gracias, esto funciona perfectamente y mejor de lo que esperaba. Mis muelles, barras de panel y ventanas flotantes abarcan la pantalla física, pero las aplicaciones maximizadas y de "pantalla completa" (incluidas mis instancias de invitado de vmware) se mantienen educadamente en la mitad de la pantalla. Soy bastante nuevo en Linux, por lo que piratear la configuración de mi pantalla se sintió un poco arriesgado, pero no hay mucho trabajo involucrado. Estoy documentando mis pasos exactos para otros aficionados de Linux (como yo) en una respuesta adicional a continuación.
David
2
El enlace está roto. ¿Alguna idea de dónde podría encontrar este software?
Maxime
17

Para ampliar el consejo anterior de akira sobre el uso del "falso xinerama" de Lubos Lunak, así es exactamente cómo lo hice funcionar para mí:

  1. He descargado este archivo Xinerama.c del Xinerama sitio falso .
  2. Abrí una terminal y navegué a la carpeta donde guardé Xinerama.c.
  3. Ejecuté:
    gcc -O2 -Wall Xinerama.c -fPIC -o libXinerama.so.1.0.0 -shared
  4. Abrí nautilus (el explorador de archivos gnome) como root, escribiendo Alt-F2 y luego:
    gksu nautilus
  5. Navegué a / usr / lib, encontré libXinerama.so.1.0.0 e hice una copia de seguridad.
  6. Copié libXinerama.so.1.0.0 de mi directorio de descargas en el directorio / usr / lib, anulando la copia allí (que acababa de hacer una copia de seguridad en el paso 5, para poder deshacer esto más tarde si es necesario). las cosas claras, fue útil notar que el tamaño del archivo de la versión "falsa" era mayor (12.6 kb) que la versión "real" que estaba reemplazando (8.6 kb).
  7. Creé un nuevo archivo de texto llamado .fakexinerama en mi directorio / home / dave y lo puse en él: (basado en mi tamaño de pantalla física de 1440x900)
    2
    0 0 720 900
    720 0 720 900

Fake Xinerama le permite definir cualquier tipo de configuración de pantalla virtual que desee, pero solo quiero una pantalla dividida vertical. Para lograr eso en su monitor, tamaño X por Y píxeles, mirando mi ejemplo de archivo, simplemente reemplace 720 con X / 2 y reemplace 900 con Y.

Eso es. Salí y volví a entrar, y estaba funcionando.

Gracias de nuevo a Lubos Lunak por crear este mod y akira por señalarme.

David
fuente
Esto me ayudó mucho con una pantalla de tres cabezales. Xinerama es bastante lento con tres escritorios, por lo que usar esto me permitió poner dos de ellos en vista gemela sin la molesta maximización de ambos problemas y tener la tercera como una pantalla X separada unida a la vista gemela con Xinerama. ¡Gracias por tomarte el tiempo de escribir los pasos, David!
Kyle Brandt el
7

Ahora hay un nuevo proyecto llamado FakeXRandR que funciona realmente directo.

Esta es una herramienta para engañar a un servidor X11 para creer que hay más monitores de los que realmente hay. Se conecta a libXRandR y libXinerama y reemplaza ciertas configuraciones de monitor configurables con múltiples monitores virtuales. Una herramienta que viene con este paquete se puede usar para configurar cómo se dividen los monitores.

mperrin
fuente
Usé fakexrandr con éxito de vez en cuando. Desafortunadamente, mi pantalla se revuelve cuando tengo xorg.conf (que necesito para una resolución personalizada para mi monitor ultra ancho). Me veo obligado a eliminar la configuración de fakexrandr, reiniciar X y volver a configurar fakexrandr.
JAponte
3

Esto se puede hacer en XRandR 1.5 sin software adicional. Si bien ni fakexinerama ni FakeXRandR me han funcionado en Xubuntu, esta solución finalmente ha dividido la pantalla en dos.

Para dividir el monitor, haga lo siguiente:

  1. Ingrese xrandral terminal para verificar el nombre de salida y la resolución actual de la pantalla que desea dividir.
    En mi sistema, el resultado fue:

    Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
    HDMI1 disconnected (normal left inverted right x axis y axis)
    HDMI2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
       1920x1080     60.00*+  50.00    59.94
       1920x1080i    60.00    50.00    59.94  
       1600x900      60.00  
       1280x1024     75.02    60.02  
       1152x864      75.00  
       1280x720      60.00    50.00    59.94  
       1024x768      75.08    60.00  
       800x600       75.00    60.32  
       720x576       50.00  
       720x576i      50.00
       720x480       60.00    59.94
       720x480i      60.00    59.94
       640x480       75.00    60.00    59.94
       720x400       70.08
    VGA1 disconnected (normal left inverted right x axis y axis)
    VIRTUAL1 disconnected (normal left inverted right x axis y axis)
    

    Podemos ver que mi monitor está conectado a HDMI2 y la resolución está configurada a 1920x1080.

  2. Agregue 2 monitores virtuales con el xrandr --setmonitorcomando asegurándose de que se superpongan con su pantalla física y se coloquen uno al lado del otro. La sintaxis del comando es (sin comillas):

    xrandr --setmonitor "monitor_name" "width_px"/"width_mm"x"height_px"/"height_mm"+"x_offset_px"+"y_offset_px" "output_name" 
    

    Para mi sistema fue:

    xrandr --setmonitor HDMI2~1 960/254x1080/286+0+0 HDMI2
    xrandr --setmonitor HDMI2~2 960/255x1080/286+960+0 none
    
  3. Si bien lo anterior ya configuró los monitores virtuales en mi sistema, los cambios no se aplicaron hasta que lo ejecuté (parece actualizar xrandr):

    xrandr --fb 1921x1080
    xrandr --fb 1920x1080
    

Para persistir los cambios después del reinicio, querrá ejecutar estos comandos cuando inicie sesión. Puede hacerlo agregando los comandos al final de su ~/.profilearchivo.

Strachu
fuente
1
Es bueno que exista en xrandr, genial. Pero solo se puede usar el lado izquierdo de mi monitor, la parte derecha no muestra nada. Y no se muestra ningún error. - Oh, parece que Awesome WM no es compatible con los monitores, pero solo usa las salidas. Por lo tanto, también necesita soporte en WM.
Nert
Oh, no importa, impresionante tiene soporte para los monitores de xrandr, simplemente no funcionó para mí. Pero awesome puede hacer esto por sí solo: awesomewm.org/apidoc/classes/screen.html#screen:fake_add
nert
1

Me encontré con un artículo sobre omgubuntu que brinda una manera bastante fácil de imitar la funcionalidad de Windows Snap en Ubuntu / Gnome usando el panel de control de Compiz. Este complemento de Windows me deja con un escritorio de pantalla panorámica, pero las ventanas se pueden acoplar fácilmente para llenar cualquier media pantalla. (Eso no era exactamente lo que estaba buscando originalmente, pero sigue siendo bastante útil).

David
fuente
1

He estado usando una solución a estas preguntas exactas durante algunos años usando un triplehead2go. Ese dispositivo fusionará hasta 3 monitores e informará un gran monitor a X.

Aquí se explica cómo dividir ese enorme monitor en espacios de trabajo virtuales en xorg.conf:

Section "Device"
    # ... your other settings above
    Option         "TwinViewXineramaInfoOverride" "1280x1024+0+0, 1280x1024+1280+1, 1280x1024+2560+0"
EndSection

Y si está utilizando los últimos controladores de nvidia, esos controladores proporcionan su propia extensión de xinerama que parece ignorar la configuración anterior, por lo que debe agregar lo siguiente en la sección de ese dispositivo:

Option         "NoTwinViewXineramaInfo" "true"
bksunday
fuente
0

Estoy bastante seguro de que puede hacer esto ajustando su archivo de configuración X , pero no lo haría solo porque probablemente rompería mi configuración de pantalla. Si intenta esto, tenga mucho cuidado, haga una copia de seguridad de su configuración de pantalla y asegúrese de tener un inicio de sesión alternativo que pueda usar en caso de que tenga que arreglar su pantalla.

Puede obtener más satisfacción de un administrador de ventanas de mosaico como xmonad , o incluso ejecutar compiz para controlar cómo se abren, cierran y mosaicos las ventanas.

DaveParillo
fuente
0

Funciona bien para mi:

Usé lo siguiente para dos monitores (1280x1024 + 2048x1152):

3
0 0 1280 1024
1280 0 1024 1152
2304 0 1024 1152
codeinthehole
fuente
0

Si está utilizando compiz, puede encontrar que su plugin de cuadrícula es una solución más fácil y flexible. Puede configurarlo para colocar una ventana sobre la mitad izquierda / derecha de la pantalla al arrastrarlo contra el borde.

Esa es la función de ajuste de ventana que se describe en el artículo al que se vincula David. Además, puede configurar accesos directos y hacer que una ventana ocupe la mitad superior / inferior o un cuarto de la pantalla.

Xinerama causa un notable éxito en el rendimiento (ya que replica las acciones X en todas las pantallas de Xinerama) y no funciona bien con los administradores de ventanas compuestas.

kynan
fuente