The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"Вышел менеджер настроек экрана randrctl 1.2 "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от opennews (??) on 10-Сен-16, 22:59 
Состоялся релиз randrctl 1.2 (http://github.com/edio/randrctl), менеджера настроек экрана для мульти-мониторных конфигураций. В рамках проекта randrctl развивается утилита, написанная на языке Python, которая позволяет сохранить текущие настройки экрана в файл с тем чтобы применить их позже (вручную либо автоматически), когда к компьютеру будет подключен тот же или подобный набор мониторов.

Для определения момента подключения мониторов, а также для считывания текущих настроек и применения настроек из профилей в randrctl используются функции udev и xrandr. С момента релиза 1.0 добавлена поддержка  конфигураций  HiDPI (опции scale), исправлена обработка XDG_CONFIG_HOME,  обновлено описание проекта на Github и проведена чистка кода и исправление мелких ошибок.

URL: http://github.com/edio/randrctl
Новость: http://www.opennet.ru/opennews/art.shtml?num=45116

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Вышел менеджер настроек экрана randrctl 1.2 "  +2 +/
Сообщение от Аноним (??) on 10-Сен-16, 22:59 
Так а в чём собственно отличие от xrandr?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Вышел менеджер настроек экрана randrctl 1.2 "  –1 +/
Сообщение от Андрей (??) on 10-Сен-16, 23:47 
А он умеет сохранять в файл (и восстанвливать)?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Вышел менеджер настроек экрана randrctl 1.2 "  +5 +/
Сообщение от Аноним84701 on 10-Сен-16, 23:50 
> Так а в чём собственно отличие от xrandr?

Это обвязка. Внутри используется xrandr. Задумка в автоматизации – настроил один раз, сохранил в файл и можешь в следующий раз загрузить готовое.
Ваш Кэп.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

10. "Вышел менеджер настроек экрана randrctl 1.2 "  +2 +/
Сообщение от X2asd (ok) on 11-Сен-16, 10:20 
>  настроил один раз, сохранил в файл и можешь в следующий раз загрузить готовое.

Вот ты сейчас описал работу randr..

Настроил 1 раз

Записал в файл (.sh)

Следующий раз просто запускаешь файл (.sh)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

11. "Вышел менеджер настроек экрана randrctl 1.2 "  +1 +/
Сообщение от edio on 11-Сен-16, 11:17 
Со скриптов все и началось. Но когда их стало >3, и когда я начал забывать, где и какой надо запустить, понял, что это не очень удобно.

randrctl умеет автоматически выбирать среди сохраненных профилей тот, который больше всего подходит (умеет по edid и по разрешению). А использование udev позволяет вообще ничего не запускать: раз сохранил профиль, дальше при подключении он активируется автоматически.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от derlafff (ok) on 11-Сен-16, 11:26 
Ну это нужно вручную опознавать нужный .sh

А тут оно смотрит на мониторы и подгружает соответствующий конфиг

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

15. "Вышел менеджер настроек экрана randrctl 1.2 "  –1 +/
Сообщение от rshadow (ok) on 11-Сен-16, 15:37 
Один фиг иксы не умеют в идентификатор монитора. Оперируют выходами. Выходы перепутал и вся конфигурация по *** пошла.

Обвязка нужна, чтобы из кучки утилит и гуя сделать простую настройку.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

16. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от Аноним84701 on 11-Сен-16, 16:23 
>>  настроил один раз, сохранил в файл и можешь в следующий раз загрузить готовое.
> Вот ты сейчас описал работу randr..
> Настроил 1 раз
> Записал в файл (.sh)
> Следующий раз просто запускаешь файл (.sh)

Под это описание подходит и обвязка arandr, которая с графикой и записью настроек в шелл-скрипт. Признаю сразу свое неосиляторство и недостаточную крутизну, но настраивать позицию экранов относительно друг друга мышевозя и имея "картинку" мне как-то проще и удобнее, чем методом тыка с подбором подходящих значений.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

3. "Вышел менеджер настроек экрана randrctl 1.2 "  +2 +/
Сообщение от Андрей (??) on 10-Сен-16, 23:49 
А вот зачем эту системную утилитку нужно было писать на питоне?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Вышел менеджер настроек экрана randrctl 1.2 "  +4 +/
Сообщение от Avari email on 11-Сен-16, 00:04 
Затем, что _обвязку_ к системной утилитке xrandr вполне разумно писать на каком-нибудь скриптовом языке.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Вышел менеджер настроек экрана randrctl 1.2 "  +4 +/
Сообщение от Neurotic on 11-Сен-16, 00:16 
Если кому надо подобное на bash, https://github.com/Vladimir-csp/rerandr3
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

34. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от freehck email(ok) on 13-Сен-16, 01:45 
> Если кому надо подобное на bash, https://github.com/Vladimir-csp/rerandr3

Спасибо!

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

17. "Вышел менеджер настроек экрана randrctl 1.2 "  +1 +/
Сообщение от Андрей (??) on 11-Сен-16, 17:03 
> _обвязку_ к системной утилитке xrandr

Так всё таки обвязку. Вот так бы в новости прямо и написали. Тогда бы и вопроса не было.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

21. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от edio on 11-Сен-16, 19:21 
Вроде, именно так и написано

> Для определения момента подключения мониторов, а также для считывания текущих настроек и применения настроек из профилей в randrctl используются функции udev и xrandr

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

7. "Вышел менеджер настроек экрана randrctl 1.2 "  –2 +/
Сообщение от EuPhobos (ok) on 11-Сен-16, 00:33 
Кто-то не осилил конфигурацию иксов?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Вышел менеджер настроек экрана randrctl 1.2 "  –5 +/
Сообщение от Аноним (??) on 11-Сен-16, 01:10 
Кто-то юзает иксы? лично мы используем радугу на OSX
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Вышел менеджер настроек экрана randrctl 1.2 "  +1 +/
Сообщение от Аноним (??) on 11-Сен-16, 09:20 
Ага а ещё Metal вместо OpenGL и Swift вместо С\С++. Велосипедисты ненужны.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

13. "Вышел менеджер настроек экрана randrctl 1.2 "  –2 +/
Сообщение от Аноним (??) on 11-Сен-16, 12:49 
Поддержка wayland планируется?
Очень не хватает утилиты вроде xrandr для него, которая работала бы в разных композиторах.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от Аноним (??) on 11-Сен-16, 23:12 
Нет и не будет в силу его убогой негибкой архитектуры.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

14. "Вышел менеджер настроек экрана randrctl 1.2 "  +2 +/
Сообщение от Аноним (??) on 11-Сен-16, 13:13 
> Очень не хватает утилиты вроде xrandr для него, которая работала бы в разных композиторах.

Вы не тех пинаете, это невозможно в дефолтном протоколе wayland.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Вышел менеджер настроек экрана randrctl 1.2 "  –1 +/
Сообщение от Аноним (??) on 11-Сен-16, 17:21 
а systemd-randrctld обещают?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "Вышел менеджер настроек экрана randrctl 1.2 "  +6 +/
Сообщение от Аноним (??) on 11-Сен-16, 23:29 
Обещают systemd-opennet-anonymous-commentd.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

19. "Вышел менеджер настроек экрана randrctl 1.2 "  –1 +/
Сообщение от Wladmis (ok) on 11-Сен-16, 18:11 
Вот уж по-настоящему большое ненужно. Мало того, что это просто обвязка вокруг xrandr(1) и оно не умеет RandR 1.2 в Wayland, так и то, что оно делает, решается использованием xrandr(1) + правилами udev.

P.S. Код поражает воображение своей серьёзностью, с которой написан.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

20. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от аноним123 on 11-Сен-16, 19:17 
> решается использованием xrandr(1) + правилами udev.

Это и есть решение с использованием xrandr и udev. Готовое, легкое в использовании решение.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

22. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от Wladmis (ok) on 11-Сен-16, 19:25 
>> решается использованием xrandr(1) + правилами udev.
> Это и есть решение с использованием xrandr и udev. Готовое, легкое в
> использовании решение.

Готовое — возможно, лёгкое в использовании — сомнительно. Но возникает вопрос: кто им будет пользоваться? Пользователи DE используют средства настройки экрана своей DE. А у пользователей маленьких оконных менеджеров, если им это надо, уже всё давно настроено. Или скриптик написан в несколько строчек, или правила udev'а.

Тем более, для такой простой утилиты код написан чересчур сложновато на мой взгляд.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

23. "Вышел менеджер настроек экрана randrctl 1.2 "  +3 +/
Сообщение от edio on 11-Сен-16, 20:14 
> А у пользователей маленьких оконных менеджеров, если им это надо, уже всё давно настроено.

Я, как раз, пользователь маленького оконного менеджера. Мне было надо, настроил себе — предлагаю свое решение другим.

И мне кажется, что решение, таки, легкое в использовании: мне было бы гораздо сложнее переносить какой-то набор своих скриптов с машины на машину, не забывая при этом править названия аутпутов и пр.. Хотелось сразу чего-то более-менее универсального и, кажется, получилось.

По поводу кода: почувствовал сам, что написан не лучшим образом, когда захотел добавить HiDPI после того, как почти год не смотрел на код. Начиналось все как хелловорлд на питоне...

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

26. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от freehck email(ok) on 12-Сен-16, 09:22 
> позволяет сохранить текущие настройки экрана в файл с тем чтобы применить их позже (вручную либо автоматически), когда к компьютеру будет подключен тот же или подобный набор мониторов.

Интересно. Гипотетическая ситуация: я сохранил настройку для двух мониторов, но потом решил переключить один из мониторов с VGA на DVI. Настройки всё равно подхватятся?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от edio on 12-Сен-16, 11:20 
Нет, только на том же аутпуте.

Мог бы заняться тем, чтоб подхватывало для конкретных дисплеев, но только если функция действительно востребована, это не будет быстрофикс.

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

28. "Вышел менеджер настроек экрана randrctl 1.2 "  +1 +/
Сообщение от Аноним (??) on 12-Сен-16, 22:00 
А что если настроил, а потом внешний моник отключил? А потом снова подключил? А потом перезагрузился без моника и подключил его позже? Или загрузился сразу с ним? Мне вот сейчас каждый раз приходится с помощью xrandr вручную добавлять (что вызывает ошибку если он не подключен в этот момент, на сколько я помню) полноценное разрешение 1280x1024 для внешнего монитора (автоматом система его распознаёт только на 1024x768). ОС Ubuntu 16.04 (в прочем, проблеме больше 5 лет точно), моник подключен через D-Sub, видеокарта Intel.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

31. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от edio on 13-Сен-16, 00:10 
> А что если настроил, а потом внешний моник отключил? А потом снова
> подключил? А потом перезагрузился без моника и подключил его позже? Или
> загрузился сразу с ним? Мне вот сейчас каждый раз приходится с
> помощью xrandr вручную добавлять (что вызывает ошибку если он не подключен
> в этот момент, на сколько я помню) полноценное разрешение 1280x1024 для
> внешнего монитора (автоматом система его распознаёт только на 1024x768). ОС Ubuntu
> 16.04 (в прочем, проблеме больше 5 лет точно), моник подключен через
> D-Sub, видеокарта Intel.

все зависит от udev. Если он триггерит для d-sub выхода событие (по идее, должен), то будет работать.

в prior-switch hook надо будет добавлять к монитору разрешение. Правда, на данном этапе, в prior-switch надо будет самому проверять edid монитора.

Я мог бы передавать в prior-switch md5 от edid (если вам эта опция подходит, заведите issue, пожалуйста, займусь в ближайший свободный вечер), тогда проверка была бы простая:

.config/randrct/config.ini
prior_switch = /path/to/add_resolution.sh

/path/to/add_resolution.sh
if [ "$edid" -eq "$my_monitor_edid" ]; then xrandr ... ; fi

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

32. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от edio on 13-Сен-16, 00:18 
Пример по поводу udev и отключений/подключений.

У меня есть профиль default без внешних мониторов, и, например office.
В офисе я могу снять работающий ноут с докстанции, и тогда сразу активируется default.
А могу сначала усыпить ноут, а потом снять с докстанции. Тогда default активируется при пробуждении.

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

29. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от freehck email(ok) on 12-Сен-16, 22:31 
> Нет, только на том же аутпуте.

Тогда Вы меня окончательно запутали. В сообщении №23 Вы написали, что:

> мне было бы гораздо сложнее переносить какой-то набор своих скриптов с машины на машину, не забывая при этом править названия аутпутов и пр..

Значит, при смене output-а всё равно конфигурация мониторов не подхватится? Тогда я не очень уяснил, в чём суть. Если для каждой конфигурации мониторов на каждом месте мне придётся настраивать всё это дело заново, так не легче ли сразу xrandr?

Вот у меня, например, в настройках lightdm.conf прописано следующее:
display-setup-script=/etc/lightdm/monitor-setup.sh

А monitor-setup.sh - скрипт в две строчки:
xrandr --auto --output VGA-1 --mode 1680x1050 --primary
xrandr --auto --output DVI-I-1 --mode 1680x1050 --left-of VGA-1

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

С другой стороны, для подобной проверки лично мне бы, конечно, было бы проще написать обвязку одной строчкой, наподобие:

if xrandr | grep -q 'DVI-I-1 connected' ; then <DVI-I-1 command> ; fi

UPD:
Да и касательно udev, можно ведь вышеописанный трёхстрочник скормить ему примерно так:
ACTION=="change", SUBSYSTEM=="drm", ENV{HOTPLUG}=="1", RUN+="/path/to/monitor-setup.sh"

В общем, я пока всё никак по-видимому не пойму use-case Вашего скрипта, извините.

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

30. "Вышел менеджер настроек экрана randrctl 1.2 "  –1 +/
Сообщение от edio on 12-Сен-16, 23:58 
юзкейз такой: у меня один ноутбук, но 4 "рабочих" места: мониторы через докстанцию в офисе, телевизор в офисе, монитор дома, проектор дома. А, и еще просто лептоп, без мониторов, итого — 5.

randrctl позволяет не вызывать 5 скриптов вручную.

> if xrandr | grep -q 'DVI-I-1 connected' ; then <DVI-I-1 command> ; fi

К displayport я подключаю и проектор, и монитор, два разных устройства и два разных конфига.
randrctl проверяет edid устройства, подключенного к аутпуту, и выбирает нужный конфиг.

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

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

33. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от freehck email(ok) on 13-Сен-16, 01:39 
> юзкейз такой: у меня один ноутбук, но 4 "рабочих" места: мониторы через докстанцию в офисе, телевизор в офисе, монитор дома, проектор дома. А, и еще просто лептоп, без мониторов, итого — 5.

Вооооот. Вот об этом и *нужно* было писать в новости, edio.

> randrctl позволяет не вызывать 5 скриптов вручную.

Ну зачем же 5 скриптов, да к тому же вручную...
Можно же в shell проверять содержимое /sys, например так:

% find /sys/devices/ -name edid
/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-1/edid
/sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-VGA-1/edid

На эти файлы можно натравить base64, и запомнить edid в текстовом формате.
Ну а дальше - применение настроек тем же самым xrandr, и правило в udev. :)

Возьмите этот метод на заметку, кстати. Всяко лучше, нежели вывод xrandr --verbose парсить. ;)

> randrctl проверяет edid устройства, подключенного к аутпуту, и выбирает нужный конфиг.

По-моему лучше было бы применять настройки к соответствующему output исходя из edid монитора, который к нему подключён.

Резюмируя, скажу, что идея у скрипта хорошая. Я бы наваял на bash, имхо надёжней было. Вашей тулзе желаю успеха. Нужный инструмент всегда найдёт своего пользователя.

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

35. "Вышел менеджер настроек экрана randrctl 1.2 "  +/
Сообщение от edio on 13-Сен-16, 11:31 
в самом начале рассматривал вариант использования /sys, но почему-то тогда от него отказался. Возможно, amd не умели тогда в /sys.

Но вообще, да, идея хорошая, надо будет подумать над ней, спасибо!

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2020 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру