Автоматическое изменение размера дисплея X11 при подключении внешнего монитора
Вопрос
У меня есть ноутбук под управлением Ubuntu, к которому я подключаю внешний монитор, когда нахожусь в офисе.Обычно для этого мне нужно запустить xrandr --auto
для того, чтобы ноутбук изменил размер дисплея в соответствии с размером внешнего монитора.Было бы неплохо, если бы это можно было делать автоматически, либо запускать при подключении монитора, но для фактического запуска этого было бы достаточно. xrandr --auto
когда ноутбук выходит из режима ожидания/гибернации.
Я создал сценарий /etc/pm/sleep.d/00xrandr.sh
содержащий строку
xrandr --auto
но это не удается, поскольку сценарий не имеет доступа к дисплею X.
Есть идеи?
Решение
Я предполагаю, что проблема в том, что скрипт запускается от имени пользователя root без доступа к вашим данным xauth.В зависимости от вашей настройки может работать что-то вроде этого:
xauth merge /home/your_username/.Xauthority
export DISPLAY=:0.0
xrandr --auto
Вы могли бы использовать что-то более умное, чтобы узнать, от какого пользователя вам нужно извлечь данные xauth, если вам нужно.
Другие советы
Пробовали ли вы правильно установить переменную DISPLAY в скрипте и предоставить доступ другим пользователям к вашему ДИСПЛЕЮ с помощью xhost + localhost?Не знаю, поможет ли это, но попробовать стоит.