如何缩放HiDPI显示的i3窗口管理器?


36

我有一个分辨率为3200x1800像素的Dell XPS 13 9343 2015。

我正在尝试在其上使用i3 Windows Manager,但所有内容都很小且几乎不可读。

我设法使用以下方法扩展了每个应用程序(Firefox,终端等).Xresources

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

但是i3界面仍然无法扩展...


我知道xrandr --dpi 220可以解决此问题,但是我不知道如何/在哪里使用它。

有人可以启发我这个问题吗?

Answers:


25

您可以像运行X会话的任何用户一样运行xrandr。Xrandr是一个命令行程序,因此您可以在终端中运行它。

因此,您将在用户终端中运行类似的内容

$ xrandr --dpi 220

您能解释一下为什么其他所有应用程序都可以在Xft.dpi上运行而i3要求xrandr设置dpi的原因吗?
maletor

1
有些程序从Xresources文件读取,但是i3直接从X服务器读取DPI。
丹尼斯·陈

4
似乎对于4.13不再是这种情况。发行说明指出它可以与Xresources一起使用(应该如此)。
maletor

1
@maletor正确,4.13及更高版本阅读Xft.dpi。不过,“应有的”是夸大其词,因为i3通常会将其用于DPI,而Xft应该应用于字体。通常,这种方式通常更适合用户。:-)
IngoBürk16年

21

如果您只想在i3中更改DPI,则可以将以下命令放在i3配置文件中:

exec xrandr --dpi 220

根据您的发行版,您会在不同位置找到配置文件,但通常位于 ~/.config/i3/config


16

恕我直言@maletor对批准的答案的评论证明了新的答案是正确的。从4.13版开始,i3从Xft.dpi()读取DPI信息。因此,要将i3设置为可在高DPI屏幕上使用,您可能需要修改两个文件。

将此行添加到~/.Xresources您的首选值:

Xft.dpi: 120

确保X在您的~/.xinitrcsource)中启动时正确加载了设置:

xrdb -merge ~/.Xresources
exec i3

请注意,这将影响从X资源读取DPI设置的其他应用程序(例如,您的终端)。


1
在Ubuntu 18.04上,我不需要~/.xinitrc文件即可运行。
aparkerlue

0

由于我的问题中的编辑已删除(不确定原因),因此我将其修复:

我通过简单地解决:

xrandr --dpi 220
exec i3

在我的.xinitrc


0

坦率地说,在VirtualBox上,我通过标准ubuntu / linux环境解决了配置分辨率的I3问题,因为在使用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"


这可能应该是评论,而不是答案。

好的一点,将其作为评论,将删除此评论,尽管不能完全确定,因为这种方法对我不起作用,如果像我这样的人来了,他可能不会阅读我的评论,反正我让它交给了你做出决定,并在诸如“您的方法不起作用,(因此,您的观点是错误的”)之类的答案上加一个评论,这对我来说很难喘息,最后一次编辑,此外,我意识到我还没有评论的权限,
哎呀

1
如果您唯一要说的是“使用VirtualBox时,此处选择的答案对我不起作用”,那么添加注释将是正确的选择。但是,如果您知道一个适合您的答案(使用VirtualBox时),而在此处不能接受的答案(此处),则应将其发布为答案。但是,不要仅仅发布链接。在此处复制答案。(1:另一个答案可能被删除,2:我们不知道另一个问题的答案是哪个对您有所帮助。)通过(用户名)标识原始作者并保留链接。
G-Man说'Resstate Monica''18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.