Как я могу автоматически обновлять макет монитора в XFCE?

У меня есть ноутбук, который обычно пристыкован к большому монитору. Когда я пристыкован, я хочу использовать большой монитор в качестве основного дисплея, а экран ноутбука – в качестве вторичного дисплея справа. Когда отстыкован, экран ноутбука является единственным дисплеем.

У XFCE, похоже, нет встроенной поддержки нескольких мониторов. Я нашел ARandR , который позволил мне настроить мои мониторы так, как я хочу. Я могу использовать ARandR для сохранения профилей для закрепленных и отстыкованных конфигураций (которые на самом деле являются только сценариями оболочки, которые вызывают xrandr ).

Но как я могу получить эти профили автоматически, когда ноутбук застыл и отстыкован? Должен ли я попытаться создать правило udev, которое обнаруживает док-станцию? Есть ли способ лучше?

Один из способов – создать правило udev, но поскольку я хотел что-то более портативное, у меня есть этот сценарий bash. Он полагается на поддержку inotifywait, не имеет каких-то петель и считается эффективным.

external-lcd.sh

#!/bin/sh # inspired of: # http://unix.stackexchange.com/questions/4489/a-tool-for-automatically-applying-randr-configuration- when-external-display-is-p # http://ozlabs.org/~jk/docs/mergefb/ # http://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes/181543#181543 export MONITOR2=/sys/class/drm/card0-VGA-1/status while inotifywait -e modify,create,delete,open,close,close_write,access $MONITOR2; dmode="$(cat $MONITOR2)" do if [ "${dmode}" = disconnected ]; then /usr/bin/xrandr --auto echo "${dmode}" elif [ "${dmode}" = connected ];then /usr/bin/xrandr --output VGA1 --auto --right-of LVDS1 echo "${dmode}" else /usr/bin/xrandr --auto echo "${dmode}" fi done 

Не забудьте сделать исполняемый файл ( chmod +x external-lcd.sh ). Тогда просто начните его всякий раз, когда вы запустите свой DE.

Я использую это на archlinux, поэтому я думаю, что он должен работать. Вы можете изменить параметры xrandr или обменять его на использование конфигураций arandr.