Как масштабировать оконный менеджер i3 для моего дисплея HiDPI?


36

У меня Dell XPS 13 9343 2015 с разрешением 3200x1800 пикселей.

Я пытаюсь использовать диспетчер окон i3 на нем, но все крошечные и трудно читаемые.

Мне удалось масштабировать каждое приложение (firefox, терминал и т. Д.), Используя .Xresources:

! Fonts {{{
Xft.antialias: true
Xft.hinting:   true
Xft.rgba:      rgb
Xft.hintstyle: hintfull
Xft.dpi:       220
! }}}

но интерфейс i3 все равно не масштабируется ...


Я понял, что это xrandr --dpi 220может решить проблему, но я не знаю, как / где это использовать.

Может кто-нибудь просветить меня по этому вопросу?

Ответы:


25

Вы можете запустить xrandr как любой пользователь, выполняющий сеанс X. Xrandr - это программа командной строки, поэтому вы запускаете ее в своем терминале.

Таким образом, вы будете запускать что-то подобное в своем пользовательском терминале

$ xrandr --dpi 220

Можете ли вы объяснить, почему кажется, что все другие приложения работают с Xft.dpi, в то время как i3 требует, чтобы xrandr установил dpi?
maletor

1
Некоторые программы читают из файла Xresources, но i3 получает чтение DPI непосредственно с X-сервера.
Деннис Чен

4
Кажется, что это больше не относится к 4.13. В примечаниях к выпуску говорится, что он работает с Xresources (как и должно быть).
maletor

1
@maletor Correct, 4.13 и более поздние версии Xft.dpi. «Как следует», однако, преувеличивает, поскольку i3 будет использовать его для DPI в целом, в то время Xftкак предполагается, что он применяется к шрифтам. Хотя, как правило, лучше подходит для пользователей. :-)
Инго Бюрк

21

Если вы хотите изменить только DPI в i3, вы можете поместить команду в свой конфигурационный файл i3 со строкой:

exec xrandr --dpi 220

В зависимости от вашего дистрибутива вы найдете файл конфигурации в разных местах, но часто в ~/.config/i3/config


16

ИМХО комментарий @maletor к утвержденному ответу оправдывает новый ответ. Начиная с версии 4.13 i3 читает информацию о DPI из Xft.dpi ( источник ). Итак, чтобы настроить i3 для работы с экранами с высоким разрешением, вам, вероятно, потребуется изменить два файла.

Добавьте эту строку ~/.Xresourcesс вашим предпочтительным значением:

Xft.dpi: 120

Убедитесь, что настройки загружены правильно, когда X запускается в вашем ~/.xinitrc( источнике ):

xrdb -merge ~/.Xresources
exec i3

Обратите внимание, что это повлияет на другие приложения (например, ваш терминал), которые читают настройки DPI из X-ресурсов.


1
В Ubuntu 18.04 мне не нужен ~/.xinitrcфайл, чтобы это работало.
aparkerlue

0

Так как редактирование в моем вопросе удалено (не знаю почему), вот как я это исправил:

Я решил это, просто положив:

xrandr --dpi 220
exec i3

По моему .xinitrc.


0

Честно говоря, на VirtualBox я решил проблему с I3 при настройке разрешения стандартным способом среды ubuntu / linux, потому что выбранный здесь ответ не работал для меня при использовании VirtualBox ('xrandr --dpi 220') - окна сеанса i3 были просто закрыто Поэтому я использовал следующую стандартную последовательность команд для настройки разрешения:

cvt 3840 2160 60
// Output: -> Modeline "3840x2160_60.00"  712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync

Использование части вывода (после слова Modeline) в качестве параметра новой команды

xrandr --newmode "3840x2160_60.00"  3840x2160_60.00"  712.75  3840 4160 4576 5312  2160 2163 2168 2237 -hsync +vsync
xrandr --addmode VGA-1 3840x2160_60.00

// эта последняя команда активирует созданное разрешение

xrandr -s 3840x2160

Чтобы сохранить конфигурацию между сеансами регистрации пользователей, нужно, конечно, поместить следующие команды в файл инициализации .bashrc.

После настройки, чтобы избавиться от пространств полос прокрутки в 1 пиксель, в меню «Вид» - «Масштабированный режим» можно выбрать вариант. Я также хотел бы настроить мой дисплей UltraHd в качестве основного дисплея на хосте Windows.

Мое решение представляет собой комбинацию из двух ответов по следующей ссылке: Ссылка: https://askubuntu.com/questions/377937/how-to-set-a-custom-resolution

Изменить: Упрощенное устройство, связанное с одним вкладышем

eval $(cvt 2220 1250 60 |sed 's/Modeline/xrandr --newmode /g'|sed -n '1!p')

поскольку правильное соотношение размеров экрана разрешения результата может быть впоследствии переоценено / скорректировано, поэтому найдите созданное разрешение с помощью команды xrand - добавленной в конце вывода,

1) назначить разрешение для конкретного дисплея -

xrandr --addmode VGA-1 "2224x1250_60.00"

2) вывести желаемое разрешение на дисплей

xrandr --output VGA-1 --mode "2224x1250_60.00"


Вероятно, это должен быть комментарий, а не ответ.

Хорошая мысль, добавлю это в качестве комментария, удалю этот, хотя и не совсем уверен, потому что этот подход не сработал для меня, если кто-то, как я, придет, он может не прочитать мой комментарий, в любом случае, я оставлю его вам принять решение и поместить комментарий к ответу типа: «Ваш подход не сработал, мои работы ((поэтому вы ошибаетесь») »затрудняется для меня, последнее редактирование, более того, я понимаю, что у меня еще нет права комментировать , уч
FantomX1

1
Если «выбранный здесь ответ не сработал для меня при использовании VirtualBox» - это единственное, что вы должны были сказать, тогда комментарий будет правильным местом для него. Но если вы знаете ответ, который работает для вас (при использовании VirtualBox), где принятый ответ (здесь) не работает, тогда его следует опубликовать как ответ. Но не размещайте просто ссылку; Скопируйте ответ здесь. (1: другой ответ может быть удален, а 2: мы не знаем, какой из ответов на другой вопрос вам помог.) Определите оригинального автора по имени (пользователя) и сохраните ссылку.
G-Man говорит: «Восстановите Монику»
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.