Comment changer automatiquement de moniteur avec ma station d'accueil pour ordinateur portable
11
J'ai un Dell Precision M4300 avec un Dell Dock PRO1X exécutant Ubuntu Natty.
Lorsque mon ordinateur portable est ancré, l'écran LCD est éteint et j'utilise deux moniteurs externes, mais lorsque je déconnecte l'ordinateur portable, il ne passe pas à l'écran de l'ordinateur portable. La même chose se produit lorsque je connecte l'ordinateur portable, il ne passe pas aux moniteurs externes.
Si je redémarre l'ordinateur portable, il choisira la configuration correcte mais ne changera pas automatiquement les moniteurs avec Ubuntu en cours d'exécution.
J'ai finalement mis en place une configuration de script complète qui détectera mon statut de station d'accueil et commutera les moniteurs automatiquement.
La première chose que j'ai faite a été de me débarrasser de mon Xorg.conf car cela a causé plus de problèmes qu'il a résolu. Depuis que j'utilise une carte nvdia, j'ai finalement découvert que l'utilisation de disper était la meilleure solution. Je l'avais déjà actualisé car ses commandes standard ne pouvaient pas réaliser ma configuration dualview, mais j'ai découvert que je pouvais créer un métamode personnalisé à utiliser avec disper.
Pour créer le métamode personnalisé, j'ai utilisé les valeurs stockées dans Xorg.conf avec les tests précédents avec nv-control-dpy et xrandr comme guide. Ce métamode et d'autres valeurs twinview ont été ajoutés à un fichier qui peut être transmis pour disparaître via stdin .
En raison de moniteurs de tailles différentes avec Twinview, je dois utiliser XCreateMouseVoid , comme décrit dans cette question .
Vous trouverez ci-dessous une ventilation complète des scripts et des fichiers avec leur contenu.
#!/bin/bash
# Export the dbus session address on startup so it can be used by any other environment
sleep 5
touch $HOME/.Xdbus
chmod 600 $HOME/.Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.Xdbus
# Export XAUTHORITY value on startup so it can be used by cron
env | grep XAUTHORITY >> $HOME/.Xdbus
echo 'export XAUTHORITY' >> $HOME/.Xdbus
Défini sur l'exécutable utilisateur uniquement: chmod 700 ~/.export_x_info
Ensuite, mettez-le dans les applications de démarrage:
Name: X Environment Variables
Command: /home/your_user/.export_x_info
À moins que vous ne redémarriez, vous devez exécuter ~ / .export_x_info pour créer le fichier .Xdbus
Créez la règle udev qui s'exécutera avec lors d'un événement de dock:
Nom du script: /etc/udev/rules.d/81-dell-dock.rules
#!/bin/sh
# wait for the dock state to change
sleep 0.5
DOCKED=$(cat /sys/devices/platform/dock.0/docked)
case "$DOCKED" in
"0")
echo "Run UnDocking Script..."
/usr/local/sbin/undock
;;
"1")
echo "Run Docking Script..."
/usr/local/sbin/dock
;;
esac
exit 0
chmod +x /usr/local/sbin/dell-dock
Créez le script de désancrage (changez votre_utilisateur pour qu'il corresponde à votre nom d'utilisateur):
Oui, il semble que ce fichier n'existe pas: $ cat /sys/devices/platform/dock.0/docked cat: /sys/devices/platform/dock.0/docked: No such file or directory
$ cat /sys/devices/platform/dock.0/docked cat: /sys/devices/platform/dock.0/docked: No such file or directory
Vous pouvez utiliser autorandr .
Voir également:
la source