Configuration double moniteur avec xrandr: extension sans / avec défilement désactivé

11

Ce n'est pas une question, mais plutôt un moyen de contourner un problème sous Ubuntu, que j'ai rencontré.

Configuration: étant
donné un écran d'ordinateur portable (par exemple, "LVDS-1-0") et un deuxième écran (par exemple, "DP-1"), le deuxième écran étant votre écran principal et votre moniteur à droite de votre écran principal ( ou à gauche) comme extension (voir photo). Le premier écran a toujours été étendu virtuellement malgré les instructions explicites de xrandr de ne pas le faire. En entrant ceci, j'ai pu éviter le défilement ennuyeux en déplaçant le curseur de ma souris vers 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, il passe simplement d'un moniteur à l'autre sans faire défiler l'écran.

Mettre à jour

Après le passage à une carte graphique discrète (nvidia est discret et Intel est intégré pour mon ordinateur portable), l'ordre des sorties devait être changé:

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 fait ces variables pour avoir plus de flexibilité depuis le basculement entre les cartes graphiques discrètes et intégrées modifie la désignation des périphériques de sortie (par exemple, LVDS-1-0 vs LVDS-1).

Disposition du moniteur

rocky_hiker
la source

Réponses:

6

J'ai rencontré le même bug. Votre solution de contournement n'a pas fonctionné pour moi. Votre astuce est simplement un déclencheur qui empêche le bug de tomber. J'ai creusé un peu et j'ai trouvé un gars sympa avec une solution qui pourrait aussi aider les autres ici.

Le problème principal est que le bogue que nous avons rencontré ici fait que le moniteur qui défile dans l'autre a un écran virtuel avec la taille des deux écrans additionnée. La solution peut donc sembler désactiver cet espace virtuel supplémentaire sur cet écran pour s'adapter à la résolution des moniteurs. Cela se fait généralement avec l' --panning AxBargument - Nous l'utilisons pour définir la taille de l'espace virtuel.

Voici comment vous pouvez le faire:

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

(Barre oblique \ajoutée pour utiliser des sauts de ligne dans la commande.)

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

tl; dr: L'idée est donc de définir le panoramique comme pilote mais de restreindre la zone de suivi à la place.

Cela se 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' panningargument] spécifient la zone de panoramique totale, les quatre suivants la zone de suivi du pointeur (qui par défaut est la même zone). Les quatre derniers paramètres spécifient la bordure et la valeur par défaut à 0." [ homme xrandr ]

Sebastian Barth
la source
Je mets la dernière commande dans un script shell que j'appelle via le clavier (lors du changement de matériel d'affichage) et quelques secondes après la connexion automatiquement.
Sebastian Barth
La définition de la zone de suivi était également cruciale dans ma configuration.
krlmlr
À la fin, votre solution ne m'a pas aidé, mais j'ai trouvé une solution en laissant les résolutions tranquilles. Commande pour miroir: xrandr --output HDMI1 --same-as Laptop1et pour étendu:xrandr --output Laptop1 --auto --output HDMI1 --auto --left-of Laptop1
Edenshaw