[РЕШЕНО] Авторасположение экранов при подключении внешнего монитора

Доброго времени всем.

Возможно ли через xorg.conf или другим каким образом сделать, что бы при подключении внешнего монитора вывод на экраны распределялся как обозначено на рис.б
Цифрами на них обозначен экран главный - 1, дополнительный - 2.
На главном располагаются панели xfce4 и plank.
На дополнительный я переношу окна с которыми работаю.
Рис а) такое расположение получается при подключении без настроек, хотя xorg.conf настраивал, но чего то не очень понятно.
Рис б) такое расположение хотелось бы настроить. Сейчас я настраиваю через меню Дисплей -> Настройки экрана



Привожу xorg.conf

Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 1600 0
	Screen      1  "Screen1" LeftOf "Screen0"
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
	ModulePath   "/usr/lib/xorg/modules"
	FontPath     "/usr/share/fonts/misc"
	FontPath     "/usr/share/fonts/TTF"
	FontPath     "/usr/share/fonts/OTF"
	FontPath     "/usr/share/fonts/Type1"
	FontPath     "/usr/share/fonts/100dpi"
	FontPath     "/usr/share/fonts/75dpi"
EndSection

Section "Module"
	Load  "glx"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/input/mice"
	Option	    "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Monitor"
	Identifier   "Monitor1"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
EndSection

Section "Device"
     	Identifier  "Card0"
	Driver      "intel"
	BusID       "PCI:0:2:0"
EndSection

Section "Device"
	Identifier  "Card1"
	Driver      "nvidia"
	BusID       "PCI:1:0:0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

Section "Screen"
	Identifier "Screen1"
	Device     "Card0"
	Monitor    "Monitor1"
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection
 $ cat /etc/udev/rules.d/30-monitor.rules
KERNEL=="card0", ACTION=="change", RUN+="/usr/bin/bash /home/user/script.sh"
 $ cat /home/user/script.sh
#!/bin/bash
export DISPLAY=:0
export XDG_RUNTIME_DIR=/run/user/1000

check_hdmi=`cat /sys/class/drm/card0-HDMI-A-1/status`
check_vga=`cat /sys/class/drm/card0-VGA-1/status`

if [ "$check_hdmi" = connected ];then
    xrandr --output LVDS1 --off  --output HDMI1 --auto --left-of LVDS1
    notify-send '#Connected' 'HDMI(right)'
elif [ "$check_vga" = connected ];then
    xrandr --output LVDS1 --auto --output VGA1 --auto --left-of LVDS1
    notify-send '#Connected' 'VGA(right)'
else
    xrandr --output LVDS1 --auto --output VGA1 --off --output HDMI1 --off
    notify-send '#Disconnected' 'VGA||HDMI'
fi;

но наверно есть и проще способы...
Ошибки в тексте-неповторимый стиль автора©
Почему то не срабатывает правило на card0. (Тестирую на скрипе в котором есть только вызов чего нибудь)
Файл такой есть, он всегда пустой, меняется только время его создания при подключении и отключении монитора по HDMI

Пытаюсь понять как правило запустить, пока без успешно.

Вывод udevadm monitor –environment –udev при коммутации разьема HDMI (одинаковый при включении и отключении)
UDEV  [2435.384031] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVLINKS=/dev/dri/by-path/pci-0000:00:02.0-card
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_00_02_0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
MAJOR=226
MINOR=0
SEQNUM=2967
SUBSYSTEM=drm
TAGS=:uaccess:master-of-seat:seat:
USEC_INITIALIZED=3986242

Вывод udevadm info -a -n /dev/dri/card0 при коммутации разьема HDMI (одинаковый при включении и отключении)
  looking at device '/devices/pci0000:00/0000:00:02.0/drm/card0':
    KERNEL=="card0"
    SUBSYSTEM=="drm"
    DRIVER==""
    ATTR{gt_RP0_freq_mhz}=="1000"
    ATTR{gt_RP1_freq_mhz}=="650"
    ATTR{gt_RPn_freq_mhz}=="350"
    ATTR{gt_act_freq_mhz}=="350"
    ATTR{gt_boost_freq_mhz}=="1000"
    ATTR{gt_cur_freq_mhz}=="350"
    ATTR{gt_max_freq_mhz}=="1000"
    ATTR{gt_min_freq_mhz}=="350"

  looking at parent device '/devices/pci0000:00/0000:00:02.0':
    KERNELS=="0000:00:02.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="i915"
    ATTRS{ari_enabled}=="0"
    ATTRS{boot_vga}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x030000"
    ATTRS{consistent_dma_mask_bits}=="40"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x0166"
    ATTRS{devspec}==""
    ATTRS{dma_mask_bits}=="40"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="28"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{local_cpus}=="0f"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{revision}=="0x09"
    ATTRS{subsystem_device}=="0x5003"
    ATTRS{subsystem_vendor}=="0x17aa"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
# udevadm control --reload-rules
?
dima81
ACTION=change
этого достаточно
dima81
только вызов чего нибудь
вызов чего?)
Ошибки в тексте-неповторимый стиль автора©
Содержание скрипта для теста. Скрипт исполняемым сделал.
$ cat /home/arch/script.sh
#!/bin/bash
mousepad

Правила перезагружал.
Также пробовал udevadm trigger

Не срабатывает правило.
dima81
mousepad
э нее, так не прокатит)))
если хотите создайте файлик там или папочку...
/usr/bin/touch  /tmp/test
/usr/bin/mkdir  /tmp/test
Ошибки в тексте-неповторимый стиль автора©
1) Скрипт срабатывает если его запустить
[dima@arch:~]$ sh ./script.sh
Например с таким содержанием запускается mousepad
$ cat /home/arch/script.sh
#!/bin/bash
mousepad

2) Действительно, если в правилах прописать /usr/bin/mkdir /tmp/test
$ cat /etc/udev/rules.d/30-monitor.rules
KERNEL=="card0", ACTION=="change", RUN+="/usr/bin/mkdir /tmp/test"

то при обновлении правил и вызове
sudo udevadm trigger
в папке tmp создастся папка test
т.е. триггер отрабатывает

3) Если в правилах прописан вызов скрипта
$ cat /etc/udev/rules.d/30-monitor.rules
KERNEL=="card0", ACTION=="change", RUN+="/usr/bin/bash /home/user/script.sh"

А в скрипте прописано

#!/bin/bash
xrandr --output LVDS-1 --mode 1280x720

То вся конструкция не работает.

Или я чего то не понимаю.
Вот здесь и прошу подсказать.
Дополню
Переписал правило
KERNEL=="card0", ACTION=="change", RUN+="/usr/bin/script -c '/bin/fuser -k -10 /home/dima/script.sh' /home/dima/script.log"

Скрипт (script.sh) содержит
#!/bin/bash

DISPLAY=:0
export DISPLAY=:0
export XDG_RUNTIME_DIR=/run/user/1000
xrandr --output LVDS-1 --mode 1280x720

При обновлении правил и вызове
sudo udevadm trigger

Разрешение не изменилось, но зато получил лог файл (/home/dima/script.log), со следующим содержанием
Script started on 2018-12-02 20:18:21+03:00 [<not executed on terminal>]
Script done on 2018-12-02 20:18:21+03:00 [COMMAND_EXIT_CODE="1"]

Значит чего то ещё не верно.
нехватает
export XAUTHORITY=/home/dima/.Xauthority

ну и таймаута в udev не хватает(((
$ cat /etc/udev/rules.d/30-ctrl_monitor.rules
KERNEL=="card0", ACTION=="change", RUN+="/usr/bin/systemctl start ctrlmon"
$ cat /etc/systemd/system/ctrlmon.service
[Unit]
Description=Control Monitor

[Service]
ExecStart=/usr/bin/bash /home/dima/script.sh

[Install]
WantedBy=multi-user.target
Ошибки в тексте-неповторимый стиль автора©
А это куда писать:
export XAUTHORITY=/home/user/.Xauthority
 
Зарегистрироваться или войдите чтобы оставить сообщение.