Comment diviser verticalement le grand écran en deux espaces de travail virtuels sur Ubuntu / Gnome?

23

Mon nouvel ordinateur portable a un grand écran 16: 9, et j'ai du mal à l'utiliser pleinement pendant 95% du temps où je ne regarde pas de films HD dessus.

Je voudrais le configurer comme une sorte d'écran double virtuel en divisant l'écran physique en deux espaces de travail. Je sais que je pourrais organiser mes fenêtres manuellement, mais j'aimerais pouvoir maximiser une fenêtre et la faire consommer seulement la moitié du moniteur, et avoir ses boîtes de dialogue contextuelles centrées sur son demi-écran, ce genre de chose.

Existe-t-il une sorte de plug-in disponible pour ce faire?

David
la source
Si vous utilisez compiz, vous pouvez trouver le plugin de grille plus simple, voir ma réponse ci-dessous.
kynan

Réponses:

24

vous pouvez utiliser ' fakexinerama ' pour réaliser ce que vous voulez:

 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
la source
1
Merci, cela fonctionne parfaitement et mieux que je ne l'avais espéré. Mes quais, barres de panneaux et fenêtres flottantes s'étendent sur l'écran physique, mais les applications maximisées et «plein écran» (y compris mes instances invitées vmware) respectent poliment leur moitié d'écran. Je suis assez nouveau sur Linux, donc pirater mes paramètres d'affichage était un peu risqué, mais il n'y a pas vraiment beaucoup de travail. Je documente mes étapes exactes pour d'autres amateurs de Linux (comme moi) dans une réponse supplémentaire ci-dessous.
David
2
Le lien est rompu. Une idée où je pourrais trouver ce logiciel?
Maxime
17

Pour développer l'astuce d'Akira ci-dessus sur l'utilisation du "faux xinerama" de Lubos Lunak, voici exactement comment je l'ai fait fonctionner pour moi:

  1. J'ai téléchargé ce fichier Xinerama.c sur le site Fake Xinerama .
  2. J'ai ouvert un terminal et j'ai accédé au dossier du dossier où j'ai enregistré Xinerama.c.
  3. J'ai exécuté:
    gcc -O2 -Wall Xinerama.c -fPIC -o libXinerama.so.1.0.0 -shared
  4. J'ai ouvert nautilus (l'explorateur de fichiers gnome) en tant que root, en tapant Alt-F2 puis:
    gksu nautilus
  5. J'ai accédé à / usr / lib, trouvé libXinerama.so.1.0.0 et en ai fait une copie de sauvegarde.
  6. J'ai copié le libXinerama.so.1.0.0 de mon répertoire de téléchargement dans le répertoire / usr / lib, en remplaçant la copie là-bas (que je venais de sauvegarder à l'étape 5, donc je pourrais l'annuler plus tard si nécessaire). les choses sont claires, il était utile de noter que la taille du fichier de la "fausse" version était plus grande (12,6 ko) que la "vraie" version que je remplaçais (8,6 ko).
  7. J'ai créé un nouveau fichier texte appelé .fakexinerama dans mon répertoire / home / dave et l'ai mis dedans: (basé sur ma taille d'écran physique de 1440x900)
    2
    0 0 720 900
    720 0 720 900

Fake Xinerama vous permet de définir tout type d'écran virtuel que vous souhaitez, mais je veux juste un écran partagé vertical. Pour y parvenir sur votre moniteur, taille X par Y pixels, en regardant mon exemple de fichier, remplacez simplement 720 par X / 2 et remplacez 900 par Y.

C'est ça. Je me suis déconnecté et reconnecté, et j'étais opérationnel.

Merci encore à Lubos Lunak d'avoir créé ce mod et à Akira de m'avoir pointé dessus.

David
la source
Cela m'a beaucoup aidé avec un écran à trois têtes. Xinerama est assez lent avec trois bureaux, donc cela m'a permis de mettre deux d'entre eux en twinview sans maximiser ennuyeux à la fois et d'avoir le troisième comme un écran X séparé joint à la twinview avec Xinerama. Merci d'avoir pris le temps d'écrire les étapes David!
Kyle Brandt
7

Il y a maintenant un nouveau projet appelé FakeXRandR qui fonctionne vraiment directement.

Ceci est un outil pour tromper un serveur X11 pour croire qu'il y a plus de moniteurs qu'il n'y en a réellement. Il se connecte à libXRandR et libXinerama et remplace certaines configurations de moniteur configurables par plusieurs moniteurs virtuels. Un outil fourni avec ce package peut être utilisé pour configurer la répartition des moniteurs.

mperrin
la source
J'ai utilisé fakexrandr avec succès de temps en temps. Malheureusement, mon écran devient brouillé lorsque j'ai xorg.conf (dont j'ai besoin pour une résolution personnalisée pour mon moniteur ultra large). Je suis obligé de supprimer la configuration de fakexrandr, de redémarrer X et de reconfigurer fakexrandr.
JAponte
3

Cela peut être fait dans XRandR 1.5 sans logiciel supplémentaire. Bien que ni fakexinerama ni FakeXRandR n'aient travaillé pour moi sur Xubuntu, cette solution a finalement divisé l'écran en deux.

Pour diviser le moniteur, procédez comme suit:

  1. Entrez xrandrdans le terminal pour vérifier le nom de sortie et la résolution actuelle de l'écran que vous souhaitez diviser.
    Sur mon système, le résultat était:

    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)
    

    Nous pouvons voir que mon moniteur est connecté à HDMI2 et que la résolution est réglée sur 1920x1080.

  2. Ajoutez 2 moniteurs virtuels avec la xrandr --setmonitorcommande en vous assurant qu'ils se chevauchent avec votre écran physique et sont placés l'un à côté de l'autre. La syntaxe de la commande est (sans guillemets):

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

    Pour mon système, c'était:

    xrandr --setmonitor HDMI2~1 960/254x1080/286+0+0 HDMI2
    xrandr --setmonitor HDMI2~2 960/255x1080/286+960+0 none
    
  3. Bien que ce qui précède ait déjà configuré les moniteurs virtuels sur mon système, les modifications n'ont pas été appliquées tant que je n'ai pas exécuté (il semble rafraîchir xrandr):

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

Pour conserver les modifications après le redémarrage, vous souhaitez exécuter ces commandes lorsque vous vous connectez. Vous pouvez le faire en ajoutant les commandes à la fin de votre ~/.profilefichier.

Strachu
la source
1
C'est bien qu'il existe en plein xrandr, super. Mais cela ne rend utilisable que le côté gauche de mon moniteur, la partie droite ne montre rien. Et je n'ai aucune erreur affichée. - Oh, il semble que Awesome WM ne prend pas en charge les moniteurs, mais utilise uniquement les sorties. Vous avez donc également besoin d'une assistance dans le WM.
nert
Oh, peu importe, génial a un support pour les moniteurs de xrandr, cela n'a tout simplement pas fonctionné pour moi. Mais génial peut le faire par lui-même: awesomewm.org/apidoc/classes/screen.html#screen:fake_add
nert le
1

Je suis tombé sur un article sur omgubuntu qui donne un moyen assez simple d'imiter la fonctionnalité Windows Snap dans Ubuntu / Gnome à l'aide du panneau de configuration Compiz. Ce composant logiciel enfichable Windows me laisse un seul bureau à écran large, mais les fenêtres elles-mêmes peuvent être facilement ancrées pour remplir l'un ou l'autre demi-écran. (Ce n'est pas exactement ce que je cherchais à l'origine, mais toujours assez pratique.)

David
la source
1

J'utilise une solution à ces questions précises depuis plusieurs années en utilisant un triplehead2go. Cet appareil fusionnera jusqu'à 3 moniteurs et signalera un énorme moniteur à X.

Voici comment diviser cet énorme moniteur en espaces de travail virtuels dans xorg.conf:

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

Et si vous utilisez les derniers pilotes nvidia, ces pilotes fournissent leur propre extension xinerama qui semble ignorer le paramètre ci-dessus, vous devez donc ajouter les éléments suivants dans cette section de l'appareil:

Option         "NoTwinViewXineramaInfo" "true"
bksunday
la source
0

Je suis assez sûr que vous pouvez le faire en peaufinant votre fichier de configuration X , mais je ne le ferais pas simplement parce que je briserais probablement ma configuration d'affichage. Si vous essayez ceci, soyez très prudent, sauvegardez votre configuration d'affichage et assurez-vous d'avoir une connexion alternative que vous pouvez utiliser au cas où vous devriez réparer votre affichage.

Vous pouvez obtenir plus de satisfaction avec un gestionnaire de fenêtres en mosaïque comme xmonad , ou même en exécutant compiz pour contrôler la façon dont les fenêtres s'ouvrent, se ferment et se tuillent.

DaveParillo
la source
0

Fonctionne bien pour moi:

J'ai utilisé ce qui suit pour deux moniteurs (1280x1024 + 2048x1152):

3
0 0 1280 1024
1280 0 1024 1152
2304 0 1024 1152
code dans le trou
la source
0

Si vous utilisez compiz, vous pouvez trouver son plugin de grille une solution plus facile et plus flexible. Vous pouvez le configurer pour afficher une fenêtre sur la moitié gauche / droite de l'écran lorsque vous la faites glisser contre le bord.

Il s'agit de la fonction d'accrochage aux fenêtres décrite dans l'article auquel David renvoie. De plus, vous pouvez configurer des raccourcis et faire en sorte qu'une fenêtre occupe la moitié supérieure / inférieure ou le quart de l'écran.

Xinerama provoque un impact notable sur les performances (car il réplique les actions X sur tous les écrans Xinerama) et ne fonctionne pas bien avec les gestionnaires de fenêtres composites.

kynan
la source