Авторские статьи

Многомониторные конфигурации Xorg или нужно что-то новое.


Стыдно признаться, но до этого момента я использовал обычно один монитор и серьёзно Xorg "не копал". Только относительно недавно, с приобретением FullHD TV Samsung UE40EH5000 я получил дома "многомониторную" конфигурацию. Всплыла проблема.

Один монитор с соотношением сторон 4:3 и разрешением 1280x1024, второй "монитор" Samsung UE40EH5000 с соотношением сторон 16:9 и разрешением 1920x1080.

Разные соотношения сторон и разные разрешения и вот я уже смотрю запущенный с компьютера фильм через HDMI не в FullHD на своём Samsung UE40EH5000.

Вначале я пошёл не туда. Запускал фильмы через скрипт, "перенаправляя" на другой screen у Xorg и звук в HDMI порт. Что-то типа vlc --alsa-audio-device iec958 --x11-display :0.1. Изврат ещё тот и кроме плееров на экран мало что выведешь.

Стал подробнее разбираться в работе Xorg. И?

  • Исторически так получилось, что Xorg, как дисплейный сервер, обладает одним или более screens, но не умеет их комбинировать.
  • Такое древнее расширение Xorg как Xinerama не работает с современными compositor'ами типа Compiz, а он часть моей Убунту системы. Xinerama идёт на свалку истории.
  • Два полностью раздельных (separated) Xorg - неудобно в работе. Использовал раньше отдельный Xorg для игр. Нельзя перемещать между ними окна. В топку.
  • Twinview от NVIDIA может помочь, но получаем проблему слепых зон у монитора с меньшим разрешением.

    Как пример

    Разные разрешения мониторов
  • Попробовал простое "зеркало" мониторов. В режиме "зеркало" мой второй "монитор" FullHD TV становится в плане разрешения совсем не FullHD.

Сейчас я выкрутился так.

С помощью .desktop файла, размещённого на Unity Launcher в виде понятного и красивого значка, во время просмотра фильма я вызываю xrandr --output HDMI-0 --mode 1920x1080 --rate 60.


[Desktop Entry]
Name=HDMI_FullHD
Name[ru]=HDMI_FullHD
Exec=xrandr --output HDMI-0 --mode 1920x1080 --rate 60
Icon=/home/vasilisc/picture/tv.png
Terminal=false
Type=Application
OnlyShowIn=Unity;
Categories=System;
Version=1.0

Команда выставляет FullHD разрешение для Samsung UE40EH5000, но тут же "портится" разрешения монитора у компьютера. Восстанавливаю обратно прежнее состояние в виде "зеркала" через закреплённый значок на Unity Launcher программы Параметры системы -> Настройка экранов.

Итоговые мысли.

Данная ситуация в очередной раз показывает, что всё не так радужно в стане 30 летнего X. Например, я застал ещё время когда Xorg был просто X и нужно было создавать полностью рабочий вариант нынешнего аналога /etc/X11/xorg.conf и это было серьёзным испытанием для новичка, если что-то шло не так и графика не могла стартовать. Сейчас можно стереть /etc/X11/xorg.conf и попробовать положиться на автомат.

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

Архитектура X и Wayland

Старый дисплейный сервер X создавался очень давно, но с возможностью расширения. Но как пишут профи типа Julien Danjou, разработчик оконного менеджера Awesome, у X очень-очень-очень много проблем. X11 старел с годами и его пытались только поддержать на плаву или пичкать расширениями, 25% которых уже не используются, а остальные созданы с нарушением стандартов или спецификаций. Например, в сетеориентированный X добавили не сетевой Dbus чтобы получить Status Notifier (реализация системного трея, основанного на XEmbed). Теперь запуск графического приложения с компьютера А на компьютере В обновит трей на неправильном хосте!

Всем нам уже давным давно нужно что-то новое в мире дисплейных серверов. Список желаемого составлялся в X12, но он только рос и никто не начинал хоть какой-нибудь работы.

Всё выше перечисленное - благодатная почва для появления новых дисплейных серверов типа Wayland и Mir, которые более приспособлены к современным реалиям.
Будет ли это Wayland или Mir или они оба будут бороться за наши устройства - покажет время!

Информация о дисплейных серверах:
Wayland, Mir, X - разные проекты.
Зачем Canonical создала Мир? 5 причин от Кристофера Роджерса.
Mir и Android GPU.
Небольшой FAQ от Kevin, который поможет разобраться в Mir и Ubuntu Touch.

Дата последней правки: 2013-08-12 11:21:33

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта