- XRandR: настройка режимов работы с дисплеями (мониторами) в GNU/Linux
- Как настроить монитор в Linux?
- А если несколько мониторов?
- HiDPI в Linux, в частности в KDE
- О DPI вообще и HiDPI в частности
- А как у других?
- А в Linux?
- Настройка Иксов
- Настройка в KDE
- Настраиваем другие приложения
- Chrome, Atom и другие
- QtCreator, Yakuake, и другие приложения на Qt5
- Приложения на Qt4
- Приложения на GTK3
- Приложения на GTK2
- Приложения на Qt3, Gtk1, Motif
XRandR: настройка режимов работы с дисплеями (мониторами) в GNU/Linux
Дата добавления: 31 марта 2012
Возможные названия интерфейсов:
- LVDS1 — экран ноутбука;
- VGA1 — экран, подключаемый через VGA;
- DVI1 — экран, подключаемый через DVI;
Названия интерфейсов могут отличаться в зависимости от используемой видеокарты. Для последующей работы с конкретным интерфейсом, необходимо запомнить его название (например, VGA1 если мы работам на видео от Intel и подключаем монитор по VGA, который и хотим настроить через XRandR).
Изменение разрешения
Лучше всего рассмотреть пример:
Режимы работы с несколькими мониторами
Отключение дисплея
Отключить не нужный в данный момент дисплей можно с помощью опции —off:
После этого у вас будет виртуальное разрешение 1280×720 при 1024×600 физическом.
Поворот
Используйте следующие опции применительно к нужному интерфейсу:
- —rotate normal
- —rotate left
- —rotate right
- —rotate inverted (поворот на 180°)
Сохранение настроек
Для активации необходимых настроек при старте, создайте файл
/ указывает на расположение в домашней директории) и внесите в него необходимые строки команд xrandr.
Статья частично основана по материалам англоязычной документации.
Автор: Alex, дата: 13 августа 2013 , время: 20:02:58 (MSK).
Добрый день. Вот что мек выдает xrandr:
«Screen 0: minimum 320 x 200, current 3280 x 1200, maximum 3120 x 3120
DFP1 disconnected (normal left inverted right x axis y axis)
DFP2 disconnected (normal left inverted right x axis y axis)
DFP3 disconnected (normal left inverted right x axis y axis)
DFP4 disconnected (normal left inverted right x axis y axis)
DFP5 disconnected (normal left inverted right x axis y axis)
DFP6 disconnected (normal left inverted right x axis y axis)
DFP7 disconnected (normal left inverted right x axis y axis)
DFP8 disconnected (normal left inverted right x axis y axis)
DFP9 connected 1680×1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
1680×1050 60.0*+
1400×1050 60.0
1280×1024 75.0 60.0
1440×900 75.0 59.9
1280×960 60.0
1280×800 60.0
1152×864 60.0 75.0
1280×768 60.0
1280×720 60.0
1024×768 75.0 70.1 60.0
800×600 72.2 75.0 60.3 56.2
640×480 75.0 72.8 67.0 59.9
DFP10 disconnected (normal left inverted right x axis y axis)
CRT1 connected 1600×1200+1680+0 (normal left inverted right x axis y axis) 0mm x 0mm
1600×1200 60.0*+
1400×1050 60.0
1600×900 60.0
1280×1024 60.0
1440×900 59.9
1280×960 60.0
1366×768 59.8
1360×768 60.0
1280×800 59.8
1152×864 60.0
1280×768 59.9
1280×720 60.0
1024×768 60.0
800×600 60.3
720×480 60.0
640×480 59.9″
что и как мне надо изменить, чтобы CRT1 работал в резолюции 1920х1080. В данный момент 1600 — это максимальная резолюция.
/.xprofile должен быть исполняемым. В англоязычной версии это описано. Я, как новичок, этого не сделал. И, как следствие, при запуске системы разрешение не устанавливается на нужное автоматически. А таких новичков много в сети.
/.xprofile (можно использовать редактор nano).
Автор: Margo, дата: 05 января 2016 , время: 20:54:07 (MSK).
Спасибо за быстрый ответ,
в консоль перешла, но у меня такого файла нет.
Где еще оно может быть закопано?
Сходила логическим путем: если у вас «Отключить не нужный в данный момент дисплей можно с помощью опции —off:
xrandr —output LVDS1 —off»
— то включить решила с помощью «всё то же самое —on». Ан нет, размечталась, не так просто.
xrandr вообще отвечает Can’t open display.
А вот как xrandr выглядит в другой системе (зашла со спас.диска):
$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 4096 x 4096
VGA-1 connected 1024×768+0+0 (normal left inverted right x axis y axis) 350mm x 260mm
1600×1200 60.0 60.0
1280×1024 75.0 59.9
1024×768 85.0 75.1 60.0*
800×600 100.0 85.1 75.0 60.3
640×480 85.0 60.0
720×400 70.1
DVI-I-1 disconnected (normal left inverted right x axis y axis)
TV-1 connected 1024×768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
720×576 50.0 +
1024×768 50.0*
800×600 50.0
720×480 50.0
640×480 50.0
400×300 100.0
320×240 100.0
320×200 100.0
Я так понимаю, VGA-1 это и есть тот монитор, который я убила в своей основной системе? черт побери, один случайный клик мышкой. 🙁
/.xprofile с командой xrandr —output VGA-1 —mode 1600×1200 и перезагрузить.
Автор: Margo, дата: 06 января 2016 , время: 03:14:50 (MSK).
Вроде выкрутилась.
Первый способ:
в начале загрузки выбрать recovery mode,
в recovery mode выбрать resume normal boot,
выйдет предупреждение, что это типа Safe mode и не все графические драйверы могут работать,
кликнула ОК, загрузка продолжилась, пришла куда хотела, всё работает как всегда.
Правда, при перезагрузке та же засада, монитор отключается, т.е. recovery mode теперь пожизненно, если не переписать config файл (но КАКОЙ именно. ).
Ну и ладно, всё равно новую ставить пора, сейчас у меня Минт14 Надя, если кому интересно.
Второй способ:
дождаться конца загрузки, перейти в терминал Ctrl+Alt+F2 (у меня F1 тоже годится, да и остальные, наверно, просто не проверяла),
залогиниться, зайти под рутом, скомандовать startx
(если не под рутом, то монитор опять выключится),
далее имею первозданное окно Линукс Минт как только что с диска, т.е. без моих гламурных настроек и почему-то. без мозиллы! Все остальное, установленное за последний год, на месте (включая игры), и всё работает штатно. Исчезла только мозилла, а она-то самое главное, сотни закладок и паролей. Не исключаю, впрочем, что получила бы свою мозиллу со всеми закладками, если б попробовала ее заново установить через синаптик или Оперу — через recovery mode она же загружается! значит, она где-то тут — просто уже не было времени на эксперименты.
Теперь спокойненько, с кофе и булочкой, бэкапнула закладки и попробую создать файл по вашему совету. 🙂
Спасибо, что поддержали!
$ xrandr
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
user@ubuntu:
$ xrandr -s 1600×900
Size 1600×900 not found in available modes
user@ubuntu:
Источник
Как настроить монитор в Linux?
Чтобы настроить экран в Linux, нужно открыть в меню команды Система | Параметры | Экран (System | Preferences | Display). Настройка монитора в Linux не сложнее, чем в Windows и не должна вызвать у вас проблем. Как настроить монитор в Linux?
В этом окне доступен целый ряд конфигурируемых параметров, но на данный момент наибольший интерес для нас представляет раскрывающийся список Разрешение (Resolution). Щелкнув по нему кнопкой мыши, вы увидите все возможные разрешения, с которыми ваша видеокарта и монитор (по «мнению» Ubuntu) способны отображать данные.
Кроме того, в данном окне можно изменить частоту обновления экрана вашего монитора (обычно в этом нет необходимости) и его ориентацию экрана (если эта возможность поддерживается). Наконец, можно решить, следует ли дублировать (или отображать) изображение с главного монитора на любые другие мониторы, подключенные к вашему компьютеру.
А если несколько мониторов?
Если у вас несколько мониторов, и получение одинакового изображения на всех мониторах отключено, вы можете перетащить мониторы, изменив их взаимное расположение. Если у вас действительно имеется несколько мониторов, но не все из них отображены в данном окне, можно щелкнуть мышью кнопку Определить мониторы (Detect Monitors) и заставить Ubuntu найти их все. На этом настройка монитора не заканчивается.
Я обычно после установки новой версии Ubuntu устанавливаю флажок Показывать экраны на панели (Show displays in panel), чтобы поместить на верхней панели рабочего стола, справа вверху, маленькую пиктограмму, похожую на монитор компьютера, и иметь возможность использовать ее для быстрой настройки параметров экрана. А если вы решили купить сплит систему, то лучше выбрать Samsung. Скоро лето, так что лучшие сплит системы Samsung с установкой ждут вас. Это небольшое лирическое отступление, продолжим.
Но, как я уже писал, наибольший интерес для нас сразу же после установки Ubuntu имеет настройка Разрешение (Resolution), которая может указывать совсем не то разрешение, с которым вы предпочитаете работать. Щелчок кнопкой мыши по нужному вам разрешению переведет Ubuntu в требуемый экранный режим.
В некоторых случаях в этом окне может отсутствовать возможность установки нужного вам разрешения. Это происходит потому, что подходящие для этого драйверы еще не загружены. Если вы их загрузите, то нужное разрешение появится в списке, и вы сможете его выбрать. Вот так всё просто, не сложнее чем в Windows и Mac, правда?
Источник
HiDPI в Linux, в частности в KDE
О DPI вообще и HiDPI в частности
DPI (dots per inch) — это величина, говорящая, сколько пикселей экрана приходится физический сантиметр его площади. Если монитор работает в неродном разрешении, то речь идёт о виртуальных пикселях разрешения. С античных времён и до совсем недавно, величина в 96 DPI была стандартом — то есть, обычные мониторы если и отличались от неё, то настолько, что этим можно было пренебречь. 120 DPI когда-то была максимальной величиной, которую обычно тестировали.
Не удивительно, что за столько лет разработчики программ приняли эту величину за незыблемую постоянную. Вдруг пришли мониторы с 160-192 DPI и началось. Все программы, которые хоть какой-то размер в интерфейсе задавали в пикселях, получили наезжающие друг на друга панели, подписи, обрезанные до первой буквы, и кнопки, за успешное нажатие которых надо давать денежный приз.
Словом HiDPI называют ситуацию на мониторах с DPI>160. DPI операционной системы не обязательно равна DPI экрана. Напротив, DPI системы можно крутить для того, чтобы делать интерфейс крупнее-мельче. Мало того, системы различают DPI всего, DPI шрифтов и DPI, отдаваемую полноэкранным приложениям.
А как у других?
Макось выручило её авторитарное правление. Поскольку почти все программы создают свой интерфейс через одно и то же API, его просто поправили, и получилось сразу хорошо. Отдельные неистребимые косяки только подчёркивают, насколько в целом всё хорошо.
Android родился на системах с большим разбросом DPI, поэтому умел всё с самых пелёнок, и учебники для программистов это всё учитывали.
Windows позволяло крутить DPI шрифтов всегда. Вот только DPI графики от этого не менялась. Отдельные элементы меняли размер оттого, что привязаны к размеру шрифта, или экрана. Но размеры, заданные в пикселях, от этого не сдвигались. В Win 10, наконец, появилась нормальная поддержка HiDPI, но только для программ, написанных для Win 10. Для остальных написан костыль, делающий просто графическое увеличение окна программы с трансляцией положения кликов. Увеличение делает окно размытым, а трансляция работает криво. Хуже то, что это увеличение пробует запуститься для полноэкранных приложений тоже, поэтому, чтобы поиграть, его нужно выключить, а чтобы поработать — включить.
А в Linux?
А в Linux, как всегда, вакханалия. У нас есть два мажорных набора для GUI (Qt и GTK), каждый из которых относительно недавно пережил переписывание с нуля, поэтому до сих пор в ходу старая и новая версия. Плюс несколько наборов поменьше(EFL, wxWidgets). Плюс несколько языков, которые используют для этого свои средства, например Java. Плюс несколько древних библиотек, на которых уже никто не пишет, но нужный софт на них ещё бывает. (GTK 1, Motif) Даже если X сервер и оконный менеджер правильно обрабатывают DPI, не факт, что весь этот зоопарк воспримет эту информацию и будет работать нормально.
Можно много за что не любить Ubuntu с Unity, но одну вещь я должен сказать. Я не знаю, как в Unity настраивать HiDPI потому, что всё всегда работало само из коробки. Все остальные DE: Cinnamon, KDE, XFCE, тоже имеют соответствующий флажок. Этот флажок настраивает саму DE, приложения, написанные на её главной библиотеке(только новой версии) и пару флагов для Qt/GTK. А остальное всё побоку. В результате, например, в плеерах кнопка Play остаётся крошечной. И значки в трее маленькие, но не все. Годик за такой системой — и человек в Overwatch играет только за МакКряка, потому что у человека попиксельная меткость на мышке и он всех ненавидит.
Я буду рассказывать, как настроить KDE. Не так, как по инструкции, а так, чтобы работало всё. Deadbeef, Yakuake, Blender. Я проверял это, в основном, в Арче. В других дистрибутивах может быть, что что-то из того, что я опишу, уже сделано или сделано по-другому. Думайте головой или пишите в комментариях — разберёмся.
Настройка Иксов
Первым делом нужно проверить, а знают ли Иксы, что у нас HiDPI? Для этого нам нужна софтинка xdpyinfo — она есть в репе. Установите, если не установлено, родное разрешение монитора, (и перезапустите Иксы). Запускайте в консоли внутри иксов (то есть не по Ctrl-Alt-F*).
Видим три пары значений — разрешение экрана, реальные размеры экрана, и DPI (отдельно по вертикали и горизонтали) Если все три пары похожи на правду, то отвернитесь от монитора и воздайте хвалу высшей сущности по вашему выбору; ибо если же xdpyinfo возвращает ерунду и DPI=96, значит ваша высшая сущность посылает вам мытарства.
Самые частые причины неправильной DPI — кривые EDID и фирменные дрова видеокарты. Про видеокарты ATi не скажу ничего, так как сторонюсь их. Не то, чтобы они чем-то плохи, но ATi + Linux = лишние проблемы. C Intel всё само должно работать. NVidia же до недавнего времени упорно поганила DPI. Сначала отключите G-sync в nvidia-settings , всё равно никакой композитный менеджер с ним не дружит. Если не помогло, включите KMS. Kernel Mode Setting — это метод, по которому разрешением экрана заведует ядро Linux, а не Иксы. Кроме прямого назначения, это позволяет обойти много глючного кода 20-летней давности в Иксах. К сожалению, процедура включения KMS на фирменных драйверах Nvidia дистрибутивозависима, поэтому опишу только в общих чертах. Нужно добавить модули nvidia, nvidia_modeset, nvidia_uvm, nvidia_drm в initramfs, пересобрать его, а затем добавить ядру параметр nvidia-drm.modeset=1 . Гуглите.
Если в предыдущем абзаце вы ничего не поняли, то можно просто отказаться от фирменных дров NVidia и использовать пока что Nouveau — там KMS из коробки. В Кубунте это делается через программу, управляющую драйверами.
Если всё вышеописанное не помогло и xdpyinfo по прежнему пишет фигню, то, может быть, виноваты не драйверы видео, а кривые EDID монитора. Сначала запустите в той же консоли xrandr —dpi 192 . И запустите какую-нибудь программку. Если она стала больше, то способ работает. Вставляйте эту команду в .xprofile и перезапускайте Иксы. В дальнейшем я буду много говорить про .xprofile . Это файл в домашней папке каждого пользователя, который настраивает работу графических приложений. Если его нет — просто создайте его: touch
/.xprofile . Если всё заработало — Ура! Если нет, сначала проверьте, что в вашем дистрибутиве из KDE не вырезали поддержку .xprofile . Для чего добавьте туда что-то вроде touch
/net_ne_vyrezali и перезагрузите ещё раз.
Всё равно не работает? Пропишем DPI в Иксы вручную. Создайте, если уже нет, файл /etc/X11/xorg.conf.d/90-monitor.conf и в него напишите:
А для фирменных дров Nvidia
Обратите внимание, что везде принудительное значение DPI я ставлю в 192, точнее в любое значение, кратное 96. Оно работает точнее, чем реальная DPI, потому что гладиолус. Тут работает парадокс дизайнера:
- Если DPI кратна 96, лучше рендерятся шрифты в приложениях, работающих с текстом. Особенно в приложениях на Cairo.
- Если DPI равна настоящей DPI монитора, то масштаб 1:1 на экране будет иметь тот же размер, что и на бумаге.
Глупое название монитора я написал, чтобы во всех графических утилитах было видно, что настройка наша читается и пробует примениться.
Сохраняем, перезапускаем Иксы и ликуем. Или пьём горькую и ждём, когда Wayland доделают.
Настройка в KDE
Итак, наконец, настраиваем HiDPI в KDE правильно. В меню → System Settings → Display and Monitor в самом внизу есть большая кнопка Scale Display. По её нажатию вылезает окно с единственным слайдером Scale. Теперь внимание! Если вам так и не удалось настроить DPI в иксах, закрывайте эту статью, ставьте значение ползунка по вкусу, и радуйтесь тому, что работает. А что не работает — смиритесь (Это обычно Хром, Скайп, QtCreator, Yakuake, GTK).
Если же DPI в Иксах у вас правильная — то не трогайте этот ползунок! В идеале, даже, не крутите его туда-сюда, потому что, кажется, он где-то что-то пишет при этом. Закрывайте это окно нафиг. Согласно статье в блоге создателя этого ползунка (соль в комментах) он переопределяет системную DPI и ставит ещё несколько переменных. Проблема в том, что это переопределение видят не все программы, и получается каша. Поэтому мы не будет трогать ползунок, а всё настроим вручную.
Вообще, на данном этапе, если DPI правильная, то всё должно быть уже достаточно крупно. Проходим в System Settings → Fonts. По умолчанию там стоит размер шрифта 11. Если для достижения гармонии вам хватит 10-14 — ставьте, приложения подтянутся. Если больше или меньше — имеет смысл попробовать подшаманить системную DPI как указано выше. Ниже стоит поле Force Font DPI. Можете его подкрутить, если хотите, но учтите, что не все приложения читают эту величину. Даже не так. Некоторые приложения читают эту величину не всеми своими частями. Так что если попытаться здесь исправить системную DPI в 96, будет каша. А вот поднять DPI 167 монитора до идеальных 192 можно.
Закрывайте окно Fonts. Вообще, сейчас самое время перезагрузить Иксы и посмотреть, что получилось. Должны работать и иметь удобный размер KDE, все его настройки и приложения. Панель плазмы, кстати, сама не вырастет. Но она векторная, и её всегда можно растянуть — кликните бутерброд слева и появятся кнопки. Так же размер в Долфине надо поставить вручную. Если же где-то ещё в KDE-приложениях кнопки и панели слишком мелкие, надо пошаманить размеры иконок в System Settings → Icons.
Настраиваем другие приложения
Chrome, Atom и другие
Эти приложения читают DPI напрямую из откуда получится и следуют ей как рыцарь кодексу. Если они читают что-то не то, то и выглядеть будут как-то не так. Обычно они игнорируют настройки в System Settings и следуют той DPI, которую возвращает xdpyinfo. Если там 96, то для Хрома можно использовать аргумент —force-device-scale-factor=2 , для Атома есть кривой плагин hidpi в официальной репе, для других программ свои костыли.
QtCreator, Yakuake, и другие приложения на Qt5
Вообще, они должны работать. Но у QtCreator бывает не масштабируется полоса инструментов, а у Yakuake полоса с табами. Причина в баге и в переменной окружения QT_AUTO_SCREEN_SCALE_FACTOR . Когда она равна 1 , Qt5 пытается сам найти значение DPI, а когда 0 — ждёт, что это значение ему дадут в других переменных. Баг в том, что KDE передаёт фигню.
Короче, нужно этим приложениям установить переменную QT_AUTO_SCREEN_SCALE_FACTOR=1 и всё заработает. Это можно сделать либо выборочно, либо глобально. Выборочно — в Menu Editor. Только не забудьте потом добавить заново приложение на панель и в автозапуск. Это нужно потому, что .desktop записи копируются, а не линкуются. Второй вариант — установить эту переменную всесистемно, в .xprofile или даже /etc/environment, или куда там в вашем дистрибутиве переменные пишут. Тут два нюанса. Во-первых, KDE принудительно сбрасывает эту переменную в 0 в скрипте /usr/bin/startkde. Его придётся открыть, и отредактировать, закомментив строчку #export QT_AUTO_SCREEN_SCALE_FACTOR=0 . После этого нужно не забывать повторять это исправление каждый раз, когда KDE обновляется. Второй нюанс в том, что разработчики KDE предупреждают в комментах: установка этой переменной глобально может привести к тому, что некоторые приложения Qt5 будут увеличены дважды. Но у меня этого не происходит. Далее, если системная DPI неправильная, надо установить переменную QT_SCALE_FACTOR=2 в .xprofile.
Не забудьте, что переменная QT_DEVICE_PIXEL_RATIO устарела. Если вы её где-то ставили, то надо убрать.
Приложения на Qt4
Эти приложения, в общем, плохо умеют HiDPI. Но не всё потеряно. Qt4 создаёт очень гибкий интерфейс. Запускайте qtconfig-qt4 . Сначала смотрите шрифт и выставляйте удобный размер. Затем на вкладке Interface найдите костыль под названием «Global strut» (в переводе — глобальный костыль. ) Эта настройка означает, что инстансы QWidget и его потомков не могут быть меньше этого размера в пикселях, что бы с ними не делали. C помощью Minimum Width можно задать ширину скроллбаров, а с помощью Minimum Height — высоту панелей инструментов.
Приложения на GTK3
Здесь всё просто. Нужно установить в .xprofile две переменные:
GDK_SCALE=2 Командует GTK увеличить всё в 2 раза. Значение должно быть целым. GDK_DPI_SCALE регулирует увеличение шрифтов. Если после GDK_SCALE шрифты получились огромные, надо поставить GDK_DPI_SCALE=0.5
Приложения на GTK2
Здесь всё сложно. GTK2 вообще никак не умеет HiDPI. Но есть хак. Софтина под названием Oomox является генератором тем (скинов) для GTK. В том числе, с её помощью можно собрать такую тему под GTK2, которая будет имитировать HiDPI. Или найти такую тему готовую.
Приложения на Qt3, Gtk1, Motif
Здесь всё совсем сложно. Есть два возможных хака. Во-первых, можно воспользоваться способностью Kwin увеличивать весь экран. System Settings → Desktop Effects → Desktop Effects → Zoom. Средняя кнопка слева — это настройки, в том числе клавиши для включения и выключения. Второй способ — это запустить приложение в сервере удалённого рабочего стола и локально к нему подключиться. Я просто вставлю ссылку на скрипт, потому что настраивать это — вопрос отдельной статьи.
Источник