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

$ cat /home/dima/script.sh
export DISPLAY=:0
export XDG_RUNTIME_DIR=/run/user/1000
export XAUTHORITY=/home/dima/.Xauthority
xrandr --output LVDS-1 --mode 1280x720
Ошибки в тексте-неповторимый стиль автора©
Т.е. это, я так понимаю вообще убрать:
$ cat /etc/udev/rules.d/30-monitor.rules
KERNEL=="card0", ACTION=="change", RUN+="/usr/bin/bash /home/user/script.sh"

Вместо него будет:
$ cat /etc/udev/rules.d/30-ctrl_monitor.rules
KERNEL=="card0", ACTION=="change", RUN+="/usr/bin/systemctl start ctrlmon"
dima81
Вместо него будет
верно
Ошибки в тексте-неповторимый стиль автора©
Благодарю!!!!!!
Заработало )
Подведу итог )
Создаём скрипт с содержимым по пути /home/USER/script.sh
#!/bin/bash
DISPLAY=:0
export DISPLAY=:0
export XDG_RUNTIME_DIR=/run/user/1000
export XAUTHORITY=/home/dima/.Xauthority
# xrandr --output LVDS-1 --mode 1366x768 --output HDMI-1 --mode 1600x900 --left-of LVDS-1
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 LVDS-1 --auto  --output HDMI-1 --auto --left-of LVDS-1
    notify-send -t 5000 'Connected' 'HDMI'
elif [ "$check_vga" = connected ];then
    xrandr --output LVDS-1 --auto --output VGA1 --auto --left-of LVDS-1
    notify-send -t 5000 'Connected' 'VGA'
else
    xrandr --output LVDS-1 --mode 1366x768 --output VGA-1 --off --output HDMI-1 --off
    notify-send -t 5000 'Disconnected' 'VGA||HDMI'
fi;

Вот только notify-send у меня так и не хочет отправлять сообщения, у же не первый раз с этим сталкиваюсь, в бубунте тоже самое было при вызове команды из других скриптов. В консоли команда работает.

Делаем скрипт исполняемым.

Создаём правило с содержимым по пути /etc/udev/rules.d/30-ctrl_monitor.rules
KERNEL=="card0", ACTION=="change", RUN+="/usr/bin/systemctl start ctrlmon"

Перезагружаем правила
$sudo udevadm control --reload-rules

Создаём сервис с содержимым по пути /etc/systemd/system/ctrlmon.service
[Unit]
Description=Control Monitor

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

[Install]
WantedBy=multi-user.target

Запускаем сервис
$sudo systemctl start ctrlmon

Включаем сервис для запуска при старте системы
$sudo systemctl enable ctrlmon
dima81
Включаем сервис для запуска при старте системы
А тогда нафига тебе правило, если ты активировал юнит? Он будет работать независимо от правила, будет запущен при старте системы в любом случае.
Проверил, можно и без
$sudo systemctl enable ctrlmon
Не можно, а нужно исходя из твоей потребности.
Иначе независимо от карты скрипт будет стартовать при загрузке.
Спасибо, кстати всем,- не мог запилить запуск powertop при работе ноута от батарейки.
Может кто ещё подскажет, почему
notify-send -t 5000 'Connected' 'VGA'
не приводит к появления уведомления, если прописан в скрипте.
Может потому, что работа скрипта происходит на стадии определения оборудования и notify-send еще не существует?
Но это не точно)
 
Зарегистрироваться или войдите чтобы оставить сообщение.