Редактирование моего ответа, чтобы упростить настройку.
Установите autorandr для автоматизации макета экрана в xrandr, загрузите последнюю версию .deb с https://github.com/nalipaz/autorandr/releases и запустите:
dpkg -i [file]
Настройка авторандра с сохраненными макетами экрана
autorandr --save [docked|mobile|home|etc]
Например, на моем ноутбуке без подключенных мониторов я настроил arandr так, как хочу, затем запустил:
autorandr --save mobile
Затем подключил мой hdmi и перенастроил arandr, затем запустил:
autorandr --save docked
После настройки каждого макета, который вы можете запустить (замените «mobile» на предыдущее предпочтительное имя, я использовал mobile):
autorandr --default mobile
Теперь, когда autorandr полностью настроен, вы можете автоматизировать процесс, установив пакет, который будет опрашивать подключенные дисплеи и запускаться autorandr --change
при обнаружении. Да, я знаю об udev, и вы можете настроить его, если он работает для вас, но в моем тестировании udev не работал для моего hdmi последовательно. Это работало только 1 из каждых 20 штепселей / отключений или около того, и иногда это просто останавливалось вообще.
Загрузите последнюю версию .deb отсюда: https://github.com/nalipaz/poll-xrandr/releases/, а затем установите с
dpkg -i [file]
Скорее всего, необходимо выполнить больше задач после завершения autorandr --change
, autorandr позволяет вставлять эти команды в файл ~ / .autorandr / postswitch. Сделайте следующее:
cd ~/.autorandr/ && touch postswitch && chmod +x postswitch
Теперь отредактируйте файл postswitch, чтобы он был похож на следующее:
#!/bin/bash
if pidof conky > /dev/null 2>&1; then
killall conky
fi
(sleep 2s && xrandr-adjust-brightness restore -q) &
(sleep 2s && nitrogen --restore) &
(sleep 3s && conky -q) &
Кроме того, вы, вероятно, захотите добавить autorandr и poll-xrandr в свои стартапы, что-то вроде следующих двух команд:
autorandr --change &
poll-xrandr &
Отключите или подключите монитор и наблюдайте за волшебством!
udevadm monitor --property
из терминала и подключить монитор. С моей картой я вижу событие, когда она подключена. Возможно, вы сможете использовать правило + RUN в udev и некоторые сценарии bash, чтобы получить то, что вы хотите. Тем не менее, я не уверен, как вы сможете реализовать это для каждого пользователя с помощью udev.