web-dev-qa-db-fra.com

Configuration dual du moniteur avec XRandr: s'étendant sans / avec défilement désactivé

Ce n'est pas une question, mais plutôt un travail pour un problème sous Ubuntu, j'ai rencontré.

Installer:
[.____] donné un écran d'ordinateur portable (par exemple, "LVDS-1-0") et un deuxième écran (par exemple, "DP-1") avec le deuxième écran étant votre écran principal et votre moniteur étant à droite de votre Écran primaire (ou gauche) comme extension (voir photo). Le premier écran a toujours été étendu pratiquement malgré des instructions explicites sur XRandr pour ne pas le faire. Lors de la saisie de cela, j'ai pu éviter le défilement ennuyeux lors du déplacement de mon curseur de la souris sur la droite sur le moniteur principal.

xrandr --output LVDS-1-0 --off
xrandr --output DP-1 --mode 1920x1080 --primary --pos 0x0 --output LVDS-1-0 --mode 1920x1080 --pos 1920x0

Après cela, cela passe juste d'un moniteur à l'autre sans faire défiler l'écran.

Mise à jour

Après avoir commuté sur une carte graphique discrète (NVIDIA est discrète et Intel est intégré à mon ordinateur portable), l'ordre des résultats devait être modifié:

output_DP=$(xrandr | grep " connected" | grep DP | awk '{print $1}')
output_LVDS=$(xrandr | grep " connected" | grep LVDS | awk '{print $1}')

xrandr --output $output_LVDS --off
xrandr --output $output_LVDS --mode 1920x1080 --pos 1920x0 --output $output_DP --mode 1920x1080 --pos 0x0  --primary

Pour plus de commodité, j'ai fabriqué ces variables pour avoir plus de flexibilité puisque la commutation entre les cartes graphiques discrètes et intégrées change la désignation des périphériques de sortie (par exemple, LVDS-1-0 VS LVDS-1).

Monitor layout

11
rocky_hiker

J'ai rencontré le même bug. Votre solution de contournement n'a pas fonctionné pour moi. Votre truc est simplement une gâchette qui rend le bug de ne pas tomber dans. Je me suis creusé un peu et trouvé un gentil gars avec un Solution Cela pourrait aider les autres ici aussi.

Le problème principal est que le bogue que nous avons rencontré ici entraîne le défilement de l'autre pour avoir un écran virtuel avec la taille des deux écrans résumés. La solution peut donc sembler désactiver cet espace virtuel supplémentaire sur cet écran pour adapter la résolution des moniteurs. Ceci est généralement fait avec le --panning AxB Argument - Nous l'utilisons pour définir la taille de l'espace virtuel.

Voici comment vous pourriez le faire:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 --panning 1920x1080 --pos 1920x0 \
  --output HDMI-0   --mode 1920x1080 --panning 1920x1080 --pos 0x0    --primary

(barré \ Ajouté pour utiliser les nouvelles lignes dans la commande.)

Malheureusement, le problème ici est que le pilote (c'est le bogue) Semble écraser le panoramique que nous avons défini (ou non défini). Mais ce qu'il ne consiste pas à définir une autre partie du panoramique: la zone de suivi! La zone de suivi est en fait cette partie de l'écran que la caméra suit le curseur sur ce moniteur.

TL; DR: L'idée est donc de définir le panoramique comme pilote mais restreindre la zone de suivi.

Ceci est fait avec la commande suivante:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 \
  --output HDMI-0   --mode 1920x1080 --panning 3840x1080+0+0/1920x1080+1920+0/0/0/0/0    --primary

"Les quatre premiers paramètres [de l'argument panning] Spécifiez la zone de panoramique totale, les quatre suivants suivant la zone de suivi du pointeur (qui défaut dans la même zone). Les quatre derniers Paramètres spécifient la bordure et la valeur par défaut à 0. " [ homme xrandr ]

6
Sebastian Barth