[Мониторы] xrandr

Искусство написания bash скриптов. Делимся своими наработками
Ответить
Аватара пользователя
nk
Модератор
Сообщения: 413
Зарегистрирован: 14 сен 2014, 00:35
Темы: 78
Статус: Не в сети

[Мониторы] xrandr

Сообщение nk » 30 дек 2014, 22:44

Итак, имеется ноут и монитор подключенный к нему через hdmi.
Ноут слева с разрешением 1600x900 и справа монитор 1280x1024.

Делюсь скриптом:

Код: Выделить всё

#!/bin/bash

# detect
XL="`xrandr | grep connected | grep LVDS | awk {'print $3'} | grep -e x -e +`"
XH="`xrandr | grep connected | grep HDMI | awk {'print $3'} | grep -e x -e +`"
XV="`xrandr | grep connected | grep VGA  | awk {'print $3'} | grep -e x -e +`"

# commands
XLs (){
xrandr --output LVDS1 --mode 1600x900 --pos 0x0 --rotate normal \
--output HDMI1 --off --output VIRTUAL1 --off --output DP1 --off --output VGA1 --off
}
XHs (){
xrandr --output HDMI1 --mode 1280x1024 --pos 0x0 --rotate normal \
--output LVDS1 --off --output VIRTUAL1 --off --output DP1 --off --output VGA1 --off
}

# buttons

2m (){
if [ -z "$XH" ] || [ -z "$XL" ]; then
 xrandr --output DP1 --off --output VGA1 --off \
 --output HDMI1 --mode 1280x1024 --pos 1600x0 	--rotate normal \
 --output LVDS1 --mode 1600x900  --pos 0x0 	--rotate normal
else
 XLs 
fi
}

1m (){
if [ ! -z "$XH" ] && [ ! -z "$XL" ] || [ -z "$XH" ]; then
 XHs
else
 XLs
fi
}

0m (){
#sleep 2s && xset dpms force off
sleep 1s && xset dpms force off
#xset dpms force off
}


# Options
while getopts "m:" Option
do
  case $Option in
    m ) ${OPTARG}m
        ;;
  esac
done


[ ! -z "`pgrep openbox`" ] && [ -x "/usr/bin/nitrogen" ] && nitrogen --restore
Назовем его xrandr2m.sh , сделаем исполняемым: chmod +x xrandr2m.sh и ниже описание, что делает, жирными буквами полная команда до "-":
./xrandr2m.sh -m 1 - выключает один из мониторов, сначала ноут, если опять подать команду сам монитор выкл. и преключает картинку опять на ноут;
./xrandr2m.sh -m 2 - включает 2 монитора, расширяет экран или оставляет активным только ноут;
./xrandr2m.sh -m 0 - выключает питание обеих мониторов.

*последняя команда в скрипте (nitrogen --restore) была мне необходима, когда сидел в Openbox, для восстановления размера обоя, оставил ее пусть будет.

По сути просто скрипт, который переключает по разному экраны и не более,
я же так 2 кнопки повесил на xfce-панель временами вот жму, когда к ноуту подрублен монитор.
В скрипте легко пробежавшись по нему можно изменить разрешение на свое или прописать так для VGA.

PS у кого затруднения рекомендую программу: arandr , с ней легче разобраться, ну и плюсом ее является создание sh-скриптов для текущего состояние картинки, т.е. за Вас команда уже пропишется и сохранится в файл.
• Web: Firefox • Jabber: Gajim • WM: Openbox
Изображение

Аватара пользователя
nk
Модератор
Сообщения: 413
Зарегистрирован: 14 сен 2014, 00:35
Темы: 78
Статус: Не в сети

Re: [Мониторы] xrandr

Сообщение nk » 03 апр 2015, 18:37

еще информации про xrandr: http://www.altlinux.org/%D0%9D%D0%B0%D1 ... 0%BE%D0%BC
И как уже была упомянута прога arandr, хочу еще посоветовать команду unxrandr , которая сразу даст команду в строку с которой можно задействовать текущую настройку через xrandr

Так же хорошая программа ДЕ-(особо-)независмая: lxqt-config-randr (lxqt-config-monitor)

Изображение

тоже легко настроить можно,
но я бы все таки arandr (ARandR: Another XRandR GUI) рекомендовал бы

Изображение
• Web: Firefox • Jabber: Gajim • WM: Openbox
Изображение

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей