web-dev-qa-db-fra.com

Maximiser les fenêtres sur l'écran physique lors de l'utilisation d'une résolution virtuelle avec / xrandr

J'ai un netbook avec un petit écran au format écran large (1024x600), ce qui signifie que beaucoup de programmes dont les concepteurs n'imaginaient pas une fenêtre ouverte qui ne peut être redimensionnée et dont le fond est masqué. À travers Ubuntu 10.04, je m'en suis occupé avec une commande xrandr:

xrandr --output LVDS1 --fb 1024x768 --panning 0x768

(notez 0x) qui a eu pour effet de me donner un bureau virtuel de taille normale effectuant un panoramique vertical, mais que le gestionnaire de fenêtres ignorait (en quelque sorte), de sorte que les fenêtres maximisées occupaient uniquement l'écran physique. Le résultat était que je n'avais pas à faire de panoramique à moins qu'une grande boîte de dialogue apparaisse: Nice.

En 11.04, cela ne fonctionne pas tout à fait. Tout ce que j'ai dit ci-dessus est vrai, mais les 168 pixels du bas semblent noircis en permanence, de sorte que si une grande fenêtre s'étend vers le bas, je ne peux pas voir ce qu'il y a dedans (cependant, c'est là: les poignées de redimensionnement apparaissent et sont utiles occasions où le redimensionnement est autorisé). J'imagine que c'est lié à l'Unité. Cela va à l'encontre de l'objectif, alors j'essaie cette commande xrandr:

xrandr --output LVDS1 --fb 1024x768 --panning 1024x768

(notez le 1024x). Hélas, cela ne trompe plus le gestionnaire de fenêtres, et les fenêtres maximisées disparaissent toutes. Question:

Comment est-ce que je configure les choses de sorte qu'une fenêtre "maximisée" occupe uniquement l'écran physique (ou plus généralement un morceau d'écran particulier)?

Une question connexe à laquelle je serais heureux d'avoir répondu à la place est:

Pourquoi la première commande xrandr trompe-t-elle le gestionnaire de fenêtres (le "0x" signifie, selon la page de manuel, que le panoramique sur l'axe horizontal est désactivé; fonctionnellement, cela n'a pas de sens puisque la taille virtuelle est la même que la taille physique)? Qu'est-ce qui ne va pas avec Unity?

Notez que l'action "maximiser" est nécessaire car, dans Unity, une fenêtre agrandie est stylée différemment: sa barre de titre est absorbée par la barre d'outils située en haut de l'écran, ce qui me permet de conserver des pixels précieux. Redimensionner une fenêtre n’est pas une bonne alternative.

Références:

J'ai trouvé cette question: je voudrais empêcher maximiser de couvrir un tiers de l'écran . J'ai été très déçu quand Compiz Maximumize semblait ne rien faire du tout (il y a un bogue Launchpad: https://bugs.launchpad.net/ubuntu/+source/compiz-fusion-plugins-extra/+bug/462158 ).

J'ai également trouvé la même question sur le superutilisateur: https://superuser.com/questions/269966/id-like-to-prevent-maximize-from-covering-one-third-of-the-screen =, qui offre deux alternatives. Le plug-in Compiz Grid n'aide pas car il ne maximise pas, comme je l'ai décrit ci-dessus. Je n'ai pas essayé l'organisateur de fenêtres Python, mais il ressemble à Grid. En général, je ne m'attends pas à ce que des scripts intelligents vous aident, car le sens du terme "maximiser" est contrôlé par le gestionnaire de fenêtres lui-même. La solution doit donc être une solution Compiz. Est-ce qu'il y a un?

5
Ryan Reich

Laissez-moi répondre à ma propre question. la réponse est bizarrement impliquée. Le truc, c’est que le comportement de bureau souhaité (qui se tenait dans 10.04) est maintenant (dans 11.04) contrôlé par Compiz, qui a une notion de "sorties": c’est-à-dire des écrans sur lesquels s’appuyer. Celles-ci sont configurées dans le gestionnaire de paramètres CompizConfig (package compizconfig-backend-gconf ou -kconfig), dans le menu "Options générales", sous l'onglet "Paramètres d'affichage".

Cette chose a trois paramètres, qui sont tous importants. Le plus important est "Détecter les sorties": cela doit être décoché, parce que tout ce que je veux, c'est que je veux créer une configuration d'écran non physique, alors que la détection automatique détectera simplement la taille de mon écran.

Le second élément le plus important est la boîte "Sorties", qui contient une liste de résolutions. À première vue, vous pouvez vous attendre à ce que la chose à insérer ici soit "1024x768", mais c'est faux: cela dit à Compiz d'utiliser l'intégralité de l'écran virtuel afin que les fenêtres maximisées se dirigent vers le bas; c'est le mauvais comportement. Mais écrire "1024x600" ne fonctionne pas non plus, car cela dira à Compiz de prétendre que l'écran n'a que 600 pixels de haut; le résultat contre-intuitif est donc qu'il décide de étirer chaque fenêtre. C’est moche et aussi non fonctionnel, ce qui provoque d’incroyables problèmes graphiques et, mystérieusement, déplace des boutons de l’emplacement sur lequel vous devez cliquer pour les activer. Pas bon.

Une option bien meilleure consiste à écrire "1024x600 + 0-168", ce qui indique à Compiz qu'il y a actuellement 168 pixels inutilisés en bas: cela reproduit le comportement de "barre noire" dont je me plaignais. C'est bien de savoir d'où ça vient, mais je n'en veux toujours pas. Mais cela me dit ce que cela signifie: cela signifie que Compiz ignore simplement ces pixels: il ne dessine pas de fenêtre là-bas. Ma souris y va quand même, car ce comportement est contrôlé par X, qui précède Compiz. Il semble que la chose à faire est de dire à Compiz de dessiner là-bas (donc les fenêtres peut y aller) mais aussi de ne pas dessiner là-bas (donc elles ne le font pas veulent pour y aller Là).

La solution tout à fait correcte consiste donc à décrire deux périphériques de sortie vers Compiz: un "1024x600 + 0-168" et un "1024x768", indiquant ainsi à Compiz de dessiner et non de dessiner sur les pixels du bas, à le même temps. Mais comment s’assurer qu’il sait lequel "vouloir"? C'est la première option de cet onglet: "Gestionnaire de sortie en chevauchement". Réglez-le sur "Préférez une sortie plus petite", ce qui est exactement ce que j'ai dit en haut.

Donc, la réponse: run xrandr --mode 1024x700 --fb 1024x768 --panning 0x768; allez dans les options d’affichage de Compiz et mettez dans les deux sorties "1024x600 + 0-168" et "1024x768"; décochez "Détecter les sorties"; et faites en sorte que "Gestionnaire de sortie se chevauchant" préfère des sorties plus petites. Ouf.

5
Ryan Reich

Cette chose xrandr est très amusant et utile. Merci de partager cette information! Le panoramique fonctionne! Je suis sur une distribution basée sur Lubuntu. Mais il existe une autre solution plus simple trouvée ici http://forums.linuxmint.com/viewtopic.php?f=110&t=146674

En gros, pour les fenêtres trop grandes pour des netbooks comme le nôtre (le mien est également en 1024x600), il vous suffit d'appuyer sur les touches alt et gauche, de faire glisser une fenêtre et de la faire glisser dans la direction souhaitée. De cette façon, nous pouvons voir les pixels du bas facilement.

2
tiubenedict