HIDPI显示屏上的较大“ xterm”字体


16

在适当的桌面环境中愉快地使用了不同的终端仿真器(例如KonsoleGnome-TERMINAL和最近的XFCE Terminal)几年后,我决定使用具有其位图字体的老式xterm。它工作得很好,它支持Unicode,并且默认的固定字体系列包含几乎所有语言的字符,这很棒。

但是我遇到了一个重要问题。字体很小。即使是所谓的“ 巨大尺寸”(10x20位图字体),对我来说也很小,无法使用。

我的XFCE环境默认设置为120 dpi,但xpdyinfo报告为97x97 DPI

$ xdpyinfo |grep resolution
  resolution:    97x97 dots per inch

因此,我尝试使用来更改DPI xrandr,但这没有帮助。

$ xrandr --dpi 120

结果似乎适用

$ xdpyinfo | grep resolution
  resolution:    120x120 dots per inch

但它根本不会改变分辨率xterm。我什至尝试使用缩放,但它影响了整个X,而不是单个应用程序:

$ xrandr --output LVDS1 --scale 0.5x0.5

Qt的和GTK的解决方法,但对于Xlib基于应用程序一样XtermXcalcXmanXfige,等?随着DPI显示的上升,我们是否应该看着它们消失?如果您有任何解决方法,请帮助。


这是我所做的事情,虽然可以正常工作,但是我无法使用原始的“固定字体系列”,因此它现在仅适用于某些语言。


PS1:我已经为X安装了100种DPI字体,但是我无法使用它们

$ sudo apt-get install xfonts-100dpi

PS2:Fontforge也使用Xlib,使用漂亮的主题和正常的字体大小。我不知道它是怎么做到的。

PS3:我正在测试otf2bdfbdftopcf利用PCF矢量TTF/OTF字体为HIDPI 创建实验性的位图字体。

PS4:安装100DPI字体后,这很好,尽管它缺少默认fixed字体的强大语言支持。

$ xterm -font -Adobe-Courier-Bold-r-Normal-*-34-*-100-100-*-*-*-*

我已经习惯了fontsel。这真的很有帮助。

PS5:也很有用。

PS6:我能够从120DPI创建位图字体宋体与20pt

$ otf2bdf -p 20 -r 120 cour.ttf > cour.bdf
$ bdftopcf cour.bdf | gzip - > cour.pcf.gz
$ sudo cp cour.pcf.gz /usr/share/fonts/X11/misc/
$ fc-cache
$ xterm -font -*-*-*-*-*-*-*-*-120-120-*-*-*-*

PS7:75 DPI以BDF字体硬编码。也许更改它会有所帮助。

PS8vncdesk是用于放大单个窗口的好工具。


Xft.dpi: 120~/.Xresources不起作用?
ILMostro_7'7

xrdb -query | grep dpi已经报告:Xft.dpi: 120
Ho1 2015年

您是否在系统上创建了~/.Xresources文件或~/.Xdefaults,或w / e合适?您所指向的链接对您有用,它不是xterm可用的一整套选项。例如,,Xft.lcdfilter: lcddefault Xft.antialias: true Xft.hinting: true Xft.hintstyle: hintslight以及更多。
ILMostro_7

1
@MartinSchröder是的,事实上,我已经测试了我自己从truetype字体Courier New生成的120dpi字体。但这缺少“固定位图字体家族”支持的所有语言,因此我正在寻找一种更好的方法来实现。目前在我的systme,在/ etc / X11 /默认应用程序/的XTerm,默认VT100.font6(巨大)设置为10×20,从固定的字体家庭,这是我的屏幕上,而小字体。如果我们将en.wikipedia.org/wiki/Fixed_%28typeface%29设置为20x40,我会很高兴,但是我们没有。
Ho1 2015年

1
需要使用位图字体吗?xterm也支持truetype字体。xterm -fa 'DejaVu Sans Mono' -fs 40(虽然不是字体之间时字形像其他一些终端仿真器做不可切换)
斯特凡Chazelas

Answers:


10

您已经通过引用https://en.wikipedia.org/wiki/Fixed_(typeface)自己暗示了答案

这是标准的固定位图字体,Markus Kuhn对其进行了扩展,使其具有相当完整的字符集。然后的问题是如何缩放位图

到目前为止,您已经实现了缩放矢量字体并将其转换为位图的功能(ttf→bdf→pcf)。这是一个很好的策略,但是正如您提到的那样,它缺乏一些语言支持。这似乎很奇怪,因为Courier New是更完整Unicode字体之一,但我离题!也许尝试使用Mono,这是一个克隆。

但是我不明白为什么您要这样做,因为xterm 确实 支持truetype

修改~/.Xresources如下:

XTerm*renderFont: true
XTerm*faceName: VeraMono
XTerm*faceSize: 10

但是回到任务:您想要更大的位图字体。

可用的最大可用位图是:

10x20   -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1

Markus非常好,他提供了源BDF文件。如果您的发行版没有最新更新(自2009年4月起),则可以直接从他那里获取软件包。

“ -misc-fixed- *”字体包:

http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz

可以/应该坚持使用源格式,而不是在pcf和bdf之间来回转换。您可以使用BDF字体编辑器来调整字体大小。不要指望任何抗锯齿或这种欺骗手段-但至少您可以获得可读的大小。

或者你可以使用bdfresize由博远Kagotani(在某些封装系统也发现)。

更新:

我不知道仅缩放一个窗口的方式(根本不需要)。您可以跟踪超级用户问题。当我有需要时,我扩展了整个环境。

您可以使用以下方法将3200x1800显示器降级为1920x1080:

xrandr --dpi 141
xrandr --output eDP1 --scale 0.6x0.6

这里可以找到在不同窗口管理器中进行屏幕缩放的其他技巧。他们建议使用VNC:

一种方法是在自己的VNC桌面上全屏运行应用程序,而无需进行修饰。然后缩放查看器。使用Vncdesk(来自AUR的vncdesk-git),您可以为每个应用程序设置一个桌面,然后使用诸如这样的简单命令启动服务器和客户端vncdesk 2

x11vnc有一个实验性选项-appshare,该选项可在每个应用程序窗口中打开一个查看器。也许可以对此进行破解。


好答案,谢谢。我会很乐意接受答案。为什么不使用truetype?1)我想在旧的慢速计算机上使用它。2)固定家庭具有强大的语言支持,如cl.cam.ac.uk/~mgk25/ucs-fonts.html中所述。还有最后一件事:是否有办法在X中缩放单个窗口?我认为这将改善答案。
Ho1 2015年

1
原始海报的W / R需要广泛支持各种语言,Vera受限制,但其衍生产品DejaVu支持许多不同的字符集。从这个角度来看,无论是Courier10还是Calibri,MS或多或少都免费提供的等宽字体都非常好。፨我爱上了Calibri!
gboffi

0

现在,您可以通过按住控件和鼠标右键(即ctrl+right mouse button)并选择字体大小来增加字体大小。要使其成为默认值,您需要进行Xresources配置。我正在尝试,一旦得到我将更新答案。

更新:

您可以.Xresources在主目录中创建文件,并添加以下行xterm*font: *-fixed-*-*-*-18-*。然后使用xrdb(即xrdb -merge ~/.Xresources)将更改与X服务器资源实用程序合并,或者也可以重新启动X。新xterms的字体大小应更改。


感谢您的回答,我使用的是固定字体系列中可用的最大位图字体:10x20,用于巨大的字体,但在HIDIP显示器上也很小。请注意,我在说的是位图字体,而不是truetype字体。
Ho1 2015年

0

我不确定,但是您可以像这样合并字体和siz:

xterm -fn helvetica -fs 20x10

字体的小测试

问候,maniat1k


谢谢您的回答。这提供了更大的字体:xterm -fs 20x10,但不是“固定字体家族”:en.wikipedia.org/wiki/Fixed_%28typeface%29,因此它不包含固定字体家族具有的国际字符。
1
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.