2008-09-24 7 views
4

J'ai un ordinateur portable sous Ubuntu auquel je connecte un moniteur externe lorsque je suis au bureau. Habituellement, cela m'oblige à exécuter xrandr --auto pour que l'ordinateur portable redimensionne l'affichage afin qu'il corresponde au moniteur externe. Ce serait bien si cela pouvait être fait automatiquement, soit déclenché quand le moniteur est connecté, mais il suffirait en fait d'exécuter xrandr --auto lorsque l'ordinateur portable se réveillera de suspension/mise en veille prolongée.Redimensionnement automatique de l'affichage X11 lors de la connexion d'un moniteur externe

J'ai créé un script /etc/pm/sleep.d/00xrandr.sh contenant la ligne

xrandr --auto 

mais cela échoue car le script n'a pas accès à l'affichage X.

Des idées?

Répondre

2

Je sais que le problème est que le script est exécuté en tant que root, sans accès à vos données xauth. En fonction de votre configuration, quelque chose comme cela pourrait fonctionner:

xauth merge /home/your_username/.Xauthority 
export DISPLAY=:0.0 
xrandr --auto 

Vous pouvez utiliser quelque chose de plus intelligent pour savoir quel utilisateur vous devez extraire les données de xauth si vous avez besoin.

0

Avez-vous essayé de définir correctement la variable DISPLAY dans le script et accordé l'accès à d'autres utilisateurs à votre DISPLAY avec xhost + localhost? Je ne sais pas si cela aide, mais ça vaut le coup d'essayer.

+0

Je pourrais probablement le faire, mais je suis un peu réticent à utiliser xhost pour accorder un accès local à l'affichage. Peut-être que je suis inutilement paranoïaque. – JesperE

+0

C'est vrai, c'est un peu un hack, mais si quelqu'un est déjà connecté à votre ordinateur portable, ce que je suppose que vous êtes le seul utilisateur, vous avez un problème, je suppose. –

Questions connexes