Configurer Xorg pour n'utiliser qu'une partie de l'écran

13

Mon écran a une résolution de 1280 x 1024. Mais malheureusement, la ceinture de droite de 200 pixels est endommagée et ne peut afficher aucune image.

Comment puis-je définir que le Xorg traitera mon écran comme un périphérique 1080 x 1024?

Maintenant, j'ai essayé:

Virtual 1080 1024
Viewport 0 0

Cela ne fonctionne pas correctement - l'image est mise à l'échelle pour s'adapter verticalement et horizontalement, je peux faire un panoramique avec la souris.

Rok Kralj
la source
2
J'ai ouvert la prime à la recherche de nouvelles solutions, peut-être plus simples. Merci tout le monde!
Rok Kralj

Réponses:

8

Consultez: http://howto-pages.org/ModeLines/ , ils ont une bonne explication des modelines Xorg. Ensuite, accédez à http://xtiming.sourceforge.net/cgi-bin/xtiming.pl et entrez les spécifications de la taille de l'écran que vous pouvez utiliser. Cela vous donnera une Modeline que vous pouvez ajouter à votre fichier xorg.conf.

Les champs 4, 5, 6 et 7 correspondent aux valeurs suivantes: HDisplay HSyncStart HSyncEnd HTotal.

En jouant avec les champs 5 et 6, vous pourrez déplacer la partie visible de votre écran vers la gauche ou la droite, selon vos besoins.

Tim Kennedy
la source
Pourriez-vous expliquer cela plus en détail?
Rok Kralj
sûr. pensez à hsync comme le retour chariot sur une machine à écrire. rappelez-vous, comment X contrôle les écrans a été développé à l'époque du CRT. HSyncStart dit de commencer à dessiner des pixels à un endroit et de continuer à dessiner jusqu'à HSyncEnd, auquel point le signal HSync est défini, en disant au CRT de tracer la ligne suivante sur l'écran. À l'ère du LCD, c'est un héritage, mais c'est toujours comme ça que ça fonctionne. En jouant avec les champs de début et de fin des lignes horizontales, vous pouvez contrôler la largeur de votre écran et la portion du support physique. Le lien dans le post a une bonne explication.
Tim Kennedy
2

Vous devrez jouer avec la meilleure façon de faire en sorte que les gestionnaires d'affichage l'utilisent, mais:

Vous pouvez démarrer votre Xorg normalement qui utilisera tout votre écran en pleine résolution, par exemple

Xorg :123 -ac

Le commutateur -ac désactive certaines (toutes?) Des restrictions Xorg qu'il peut avoir sur l'autorisation des clients. Ensuite, vous démarrez Xephyr en tant que seul client (vous souhaiterez peut-être adapter la résolution passée en tant qu'argument -screen à vos besoins):

DISPLAY=:123 Xephyr :0 -screen 1720x1200

Xephyr est une sorte de "superposition Xserver" qui interagit avec les clients comme n'importe quel Xserver, mais au lieu de s'occuper du rendu et de la saisie (la partie face à l'utilisateur), Xephyr s'appuie sur un autre Xserver pour ce faire.

La façon dont vous combinez ces commandes dépend grandement de votre cas d'utilisation. En général, les applications telles que les gestionnaires de session vous donnent la possibilité de fournir une commande pour appeler un Xserver.

Ce que j'ai fait pour l'essayer:

Créer /root/.xinitrcavec le contenu

Xephyr :0 -ac -once -query myxdmcphost -screen 1400x1200`

où 1400 est ma largeur d'écran -200 pixels.

Ensuite, je cours xinit -- :123 -my -usual -xorg -options -for -my -computeret en conséquence, j'obtiens un écran de connexion et une session qui utilise réellement tout mon écran mais une colonne de 200 pixels de large sur le côté droit.

Pour avoir le même effet, par exemple pour GDM, vous devez fournir la xinitcommande plusieurs fois dans la en gdm.conftant que méthode pour appeler un Xserver. Mais je ne peux pas vous dire du fond de ma tête comment faire cela.

Bananguin
la source
1
Xephyr ne prend pas en charge l'accélération matérielle opengl, ne convient à aucun DE ou jeu moderne.
Rok Kralj