Стыдно признаться, но до этого момента я использовал обычно один монитор и серьёзно 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. И?
Как пример
Сейчас я выкрутился так.
С помощью .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 создавался очень давно, но с возможностью расширения. Но как пишут профи типа 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.