Я должен создать зеркальные поддельные дисплеи в одном физическом мониторе. Я установил fakexrandr, и теперь у меня есть два поддельных дисплея (683x768) на 1366x768 (макс./предпочтенный) монитор моего ноутбука.
Когда я работаю xrandr --output eDP1~1 --same-as eDP1 --verbose
команда я - получение эта ошибка:
*также xrandr --fb 683x768
печатает ту же ошибку.
Phillip Berndt (владелец/создатель fakexrandr) сказал, что "Это до графического драйвера для фактического применения любых настроек". в этой проблеме. Но это не был удовлетворяющий ответ для меня.
Для разыскивают проблему, из которой я записал вывод xrandr --verbose
на двух физических установках монитора. Можно следовать за фиксациями в этом репозитории для наблюдения поведения вывода xrandr --verbose
.
xrandr --output eDP1~1 --same-as eDP1
команда пытается присвоиться current 683x768
кому: Screen 0:
. Но графический драйвер или физический монитор на моем ноутбуке имеют нет 683x768
выходная опция/поддержка. Возможно, это могло быть проблемой. (Я не уверен точность этого абзаца, возможно, это могло быть абсолютно неправильно.)В целом: Какова истинная причина этой ошибки в снимке экрана и обходном решении для этой проблемы?
RandR является расширением сервера X11, который используется для передачи конфигурации выводов между клиентами сервера (= приложения) и графический драйвер. Большинство приложений на самом деле не говорит протокол самих, но вместо этого пользуется названной библиотекой libXrandR
. FakeXRandR заменяет эту библиотеку той, которая все еще просит у графического драйвера конфигурацию, но затем играет с результатом для обмана приложений в веру, что была совершенно другая конфигурация, существующая, чем там, на самом деле. Так как это обязательно приводит к ошибкам, при попытке изменить один из поддельных выводов, он пытается смягчить худшие проблемы путем замены любых запросов конфигурации на поддельных выводах с запросами на изменение против исходного, физического вывода. Но они, конечно, все еще обязаны перестать работать, при попытке применить разрешение, которое только существует на поддельных выводах.
Хорошая аналогия могла бы быть ситуацией, когда у Вас есть довольно старый автомобиль, который может управлять 50 км/ч. Вы теперь хотите управлять на улице, которая требует, чтобы Вы смогли управлять 100 км/ч. Решение, которое преследует FakeXRandR, состоит в том, чтобы заменить числа на тахометре, таким образом, что игла теперь показывает 180 км/ч, когда Вы на самом деле управляете 50. Если Вы останавливаетесь в управлении трафиком, можно сказать, "Видят чиновника, мой спидометр говорит, что я могу пойти 180, так все хорошо", и он, вероятно, примет это. Но Вы на самом деле все еще не можете управлять немного быстрее, потому что, чтобы сделать это необходимо было заменить механизм, не некоторые печатные числа на панели инструментов.
tl; доктор: FakeXRandR является неправильным инструментом для Вашей задачи.
Если действительно необходимо сделать это на уровне RandR, необходимо будет исправить графический драйвер, и в X11 и в коде ядра. Я записал некоторые хиты на том, где посмотреть в другом отчете об ошибках для FakeXRandr. Простое решение, если бы все Вы хотите, состоит в том, чтобы иметь правильную половину Вашего экранного зеркала левые, должен был бы использовать усовершенствованный менеджер окон составления композита как Compiz. Составляющие композит менеджеры добавляют слой перенаправления между окнами приложения и что Вы на самом деле видите. Это позволяет им, в этом случае, потяните каждое окно дважды, сначала на левой стороне вывода, затем на правой стороне; который эффективно клонировал бы Ваш вывод. Там любой уже - плагин, доступный для этого (установите все compiz пакеты, особенно compizconfig-settings-manager, ccsm, и ищите его то, в чем Вы нуждаетесь), или должно, по крайней мере, быть возможно записать то, которое делает то, что Вы хотите с не слишком много усилие.