Ноутбук с Ubuntu 12.04 + Gnome shell (из репозитариев Gnome-team)
К ноутбуку по VGA подключен монитор. Нужно выводить картинку на монитор с родным для него разрешением.
Решил воспользоваться xrandr.
скрипт asus-auto-switch-video.sh:
#!/bin/bash
xrandr | grep VGA1 | grep " connected "
if [ $? -eq 0 ]; then
xrandr --output VGA1 --mode 1920x1080 --output LVDS1 --off
else
xrandr --output LVDS1 --mode 1366x768 --output VGA1 --off
fi
идея скрипта проста, если монитор подключен, то выводим картинку только на него, иначе на монитор ноутбука.
настроил lightdm.conf
[SeatDefaults]
user-session=gnome-shell
greeter-session=unity-greeter
display-setup-script=/etc/acpi/asus-auto-switch-video.sh
greeter-setup-script=/etc/acpi/asus-auto-switch-video.sh
session-setup-script=/etc/acpi/asus-auto-switch-video.sh
session-cleanup-script=/etc/acpi/asus-auto-switch-video.sh
результат следующий:
При окне авторизации LightDM всё ОК, после авторизации выставляется 1024x768 и картинка дублируется на два монитора, завершаю сеанс - возвращаюсь к окну авторизации и снова всё ОК.
Как сделать автоматическое сохранение разрешения после авторизации? странно что LightDM не передаёт установки.
P.S. Да, можно прописать скрипт в автозапуск... но это же костыль, есть ли более красивое решение?