5 votes

xrandr : comment déplacer la sortie dont la résolution est inférieure à la résolution native de l'écran dans la zone d'affichage

J'ai eu un accident, et mon ordinateur portable avec moi. Résultat, j'ai mal aux côtes et mon ordinateur portable a mal à l'écran : les ~25% les plus à droite de l'écran intégré de mon ordinateur portable n'affichent rien, de haut en bas.

Comment convaincre Ubuntu que mon écran n'est pas plus grand que la partie active, soit environ 75 % de la partie gauche de l'écran ?

J'avais réussi à générer une modélisation en utilisant cvt et de l'utiliser ensuite avec xrandr (à partir d'informations provenant de aquí y aquí ), ce qui a malheureusement permis à Ubuntu de prétendre au titre d'utilisateur final. gauche de mon écran ne fonctionnait pas, plutôt que le côté de l'écran. droit Ce qui n'a fait qu'aggraver la situation.

J'ai essayé de déplacer la zone d'affichage de l'écran à l'aide de la fonction --pos pour les xrandr --output (par exemple, à titre de test, j'ai exécuté xrandr --output eDP-1 --mode 1504x1080 --pos 100x100 mais les valeurs que j'introduis dans les --pos ne semblent pas avoir d'effet.

Oui, il est peut-être temps d'acheter un nouvel ordinateur portable (ou au moins un écran), mais je suis actuellement en voyage et j'ai besoin de faire fonctionner cet ordinateur portable pendant au moins quelques mois. Merci pour votre aide !

EDIT :

Voici plus d'informations sur ce que j'ai essayé.

Étape 1 : Générer un modèle avec la résolution souhaitée :

$ cvt 1440 1080
# 1440x1080 59.99 Hz (CVT 1.56M3) hsync: 67.19 kHz; pclk: 129.00 MHz
Modeline "1440x1080_60.00"  129.00  1440 1528 1680 1920  1080 1083 1087 1120 -hsync +vsync

Je parviens à définir ce résultat en utilisant xrandr . Mais cela ne fait qu'abaisser la résolution - ce que je dois faire, c'est décaler la sortie finale vers la gauche.

Suivant les instructions de aquí y aquí Je pense que je devrais pouvoir le faire en paramétrant l'option porche arrière horizontal à zéro pour indiquer qu'il ne doit pas y avoir de pixels vides sur le côté gauche de l'écran.

Pour ce faire, il convient d'ajuster les troisième et quatrième chiffres de ma maquette, ce qui donne celui-ci :

Modeline "1440x1080_60.00_p240"  129.00  1440 1768 1920 1920  1080 1083 1087 1120 -hsync +vsync

En choisissant ce mode de sortie via xrandr, l'écran scintillait fortement avant de cesser de fonctionner.

Il est intéressant de noter que j'ai également essayé cette modélisation qui, selon moi, réduirait le porche arrière à seulement 40 pixels :

xrandr --newmode "1440x1080_60.00_p200"  129.00  1440 1728 1880 1920  1080 1083 1087 1120 -hsync +vsync

...mais cela n'a pas du tout décalé la sortie, mais n'a pas non plus provoqué de scintillement. Le résultat était exactement le même qu'avec la modélisation originale que j'avais générée (qui n'était pas censée être décalée du tout).

Quelqu'un comprend-il ce qui se passe ?

2voto

UnKNOWn Points 19980

Travailler autour

vous pouvez y parvenir avec xrandr à l'aide de --fb --panning que vous avez omis dans votre entraînement

Voici les commandes qui ont fonctionné dans mon système et qui s'expliquent d'elles-mêmes.

La résolution originale de mon écran est de 1366x768 (eDP-1) et j'ai essayé d'utiliser 1000x768 en laissant un espace vide à droite.

cvt 1000 766
xrandr --newmode BROKEN 62.00  1000 1056 1152 1304  766 769 779 796 -hsync +vsync
xrandr --addmode eDP-1 BROKEN
xrandr --output eDP-1 --fb 1000x766 --panning 1000x766 --mode BROKEN
xrandr --fb 1000x766 --output eDP-1 --mode 1366x768

enter image description here

enter image description here

enter image description here

1voto

WinEunuuchs2Unix Points 91128

Les fbset peut appliquer une marge à n'importe quelle bordure. xrandr d'autre part, ne gère que les bordures gauche et droite simultanément et/ou les bordures supérieure et inférieure simultanément pour l'overscan / underscan.

Vous pouvez lire le page de manuel sur l'internet :

Display timings:

-pixclock <value>
    set the length of one pixel (in picoseconds). Note that the frame buffer device may only support some pixel lengths

-left <value>
    set left margin (in pixels)

-right <value>
    set right margin (in pixels)

-upper <value>
    set upper margin (in pixel lines)

-lower <value>
    set lower margin (in pixel lines)

-hslen <value>
    set horizontal sync length (in pixels)

-vslen <value>
    set vertical sync length (in pixel lines)

--timings, -t ...
    set all timing parameters at once in the order <pixclock> <left> <right> <upper> <lower> <hslen> <vslen>, e.g. -t 35242 64 96 35 12 112 2

1voto

Gawiga Points 11

Excellente réponse de UnKNOWn. Je voudrais juste ajouter que dans mon cas, j'ai dû changer la position de mon moniteur avec transform Je n'ai pas eu le temps d'en parler, car mon écran s'est cassé à un autre endroit.

xrandr --fb 1096x768 --output LVDS-1 --mode 1280x800 --transform 1,0,-184,0,1,-32,0,0,1

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X