2008-09-24 6 views
4

У меня есть ноутбук под управлением Ubuntu, к которому я подключаю внешний монитор, когда я нахожусь в офисе. Обычно для этого требуется запустить xrandr --auto, чтобы ноутбук мог изменить размер дисплея в соответствии с внешним монитором. Было бы неплохо, если бы это можно было сделать автоматически, либо инициировалось при подключении монитора, но было бы достаточно, чтобы на самом деле запустить xrandr --auto, когда ноутбук просыпается из режима ожидания/спящего режима.Автоматическое изменение размера дисплея X11 при подключении внешнего монитора

Я создал скрипт /etc/pm/sleep.d/00xrandr.sh, содержащий строку

xrandr --auto 

, но это не удается, так как сценарий не имеет доступа к дисплею X.

Любые идеи?

ответ

2

Я чувствую, что проблема заключается в том, что скрипт запускается от имени root, без доступа к вашим данным xauth. В зависимости от вашей установки, что-то подобное может работать:

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

Вы могли бы использовать что-то более умное, чтобы узнать, какой пользователь вы должны извлечь XAUTH данных, если это необходимо.

0

Вы пытались правильно установить переменную DISPLAY в сценарии и предоставили доступ для других пользователей к вашему DISPLAY с помощью xhost + localhost? Не знаю, помогает ли это, но стоит попробовать.

+0

Возможно, я мог бы это сделать, но я немного неохотно использую xhost для предоставления локального доступа к дисплею. Может быть, я бесполезен параноиком. – JesperE 2008-09-24 20:17:38