Chaque fois que j'allume mon ordinateur portable et que je branche mon moniteur externe via HDMI, je dois accéder aux paramètres d'affichage pour régler les paramètres par défaut. Au démarrage, j'obtiens un écran dupliqué au lieu de l'écran étendu que je veux. J'ai aussi mon moniteur externe à droite quand je le mets toujours à gauche. Comment puis-je faire en sorte que par défaut il reste étendu et à gauche? Oui, je mets toujours "appliquer" et "conserver cette configuration", mais il semble se réinitialiser au démarrage.
xrandr
sortie avec le moniteur configuré exactement comme je veux:
Screen 0: minimum 8 x 8, current 3520 x 1080, maximum 32767 x 32767
LVDS1 connected primary 1600x900+1920+180 (normal left inverted right x axis y axis) 382mm x 215mm
1600x900 60.01*+ 40.03
1440x900 59.89
1368x768 60.00
1360x768 59.80 59.96
1152x864 60.00
1280x720 60.00
1024x768 60.00
1024x576 60.00
960x540 60.00
800x600 60.32 56.25
864x486 60.00
800x450 60.00
640x480 59.94
720x405 60.00
640x360 60.00
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
DP-1-4 disconnected
HDMI-1-4 disconnected
HDMI-1-5 connected 1920x1080+0+0 510mm x 287mm
1920x1080 60.00*+ 50.00 59.94
1920x1080i 60.00 50.00 59.94
1280x1024 75.02 60.02
1280x960 60.00
1280x800 59.91
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.08 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
720x576 50.00
720x480 60.00 59.94
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
1024x768 (0x55) 65.000MHz -HSync -VSync
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz
v: height 768 start 771 end 777 total 806 clock 60.00Hz
800x600 (0x59) 40.000MHz +HSync +VSync
h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz
v: height 600 start 601 end 605 total 628 clock 60.32Hz
800x600 (0x5a) 36.000MHz +HSync +VSync
h: width 800 start 824 end 896 total 1024 skew 0 clock 35.16KHz
v: height 600 start 601 end 603 total 625 clock 56.25Hz
640x480 (0x62) 25.175MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz
v: height 480 start 490 end 492 total 525 clock 59.94Hz
Les dispositions d'écran qui ne collent pas se produisent souvent lorsque le pilote graphique et l'écran ne communiquent pas de manière suffisante. Cependant , cela ne signifie pas qu'il n'y a pas de solution.
La commande pour faire votre configuration comme vous le souhaitez, est (si je n'ai fait aucune erreur ou faute de frappe):
xrandr --output HDMI-1-5 --pos 0x0 --output LVDS1 --pos 1920x180
Pourquoi cette commande est-elle expliquée a.o. ici .
Vous pouvez utiliser cette commande de deux manières:
Ajoutez-le à une touche de raccourci pour appuyer une fois le deuxième écran connecté: choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande:
xrandr --output HDMI-1-5 --pos 0x0 --output LVDS1 --pos 1920x180
Exécutez cette commande automatiquement si le deuxième écran est connecté:
Copiez le script ci-dessous dans un fichier vide, enregistrez-le sous set_screen.py
#!/usr/bin/env python3
import subprocess
import time
def numscreens():
scrdata = subprocess.check_output("xrandr").decode("utf-8").splitlines()
return len([l for l in scrdata if " connected" in l])
nscr1 = None
while True:
time.sleep(5)
nscr2 = numscreens()
if nscr2 != nscr1:
if nscr2 == 2:
subprocess.Popen(["xrandr", "--output", "HDMI-1-5", "--pos", "0x0",
"--output", "LVDS1", "--pos", "1920x180"])
nscr1 = nscr2
Testez l'exécution du script en l'exécutant à partir d'un terminal:
python3 /path/to/set_screen.py
Si tout fonctionne bien, ajoutez-le aux applications de démarrage: Dash> Applications de démarrage> Ajouter. Ajoutez la commande:
/bin/bash -c "sleep 30 && python3 /path/to/set_screen.py"