X11

HIDPI 顯示器上更大的“xterm”字型

  • June 6, 2020

經過幾年在適當的桌面環境中愉快地使用不同的終端仿真器(如KonsoleGnome-TERMINAL和最近的XFCE 終端)後,我決定使用帶有點陣圖字型的好舊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基於應用程序(如Xterm, Xcalc, Xman,Xfige等)呢?隨著顯示 DPI 的上升,我們是否應該看著它們逐漸消失?如果您知道任何解決方法,請提供幫助。


這就是我所做的,它以某種方式起作用,但我無法使用原始的“固定字型系列”,所以它現在可能只適用於某些語言。


PS1:我為 X 安裝了 100 種 DPI 字型,但我無法使用它們

$ sudo apt-get install xfonts-100dpi

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

PS3:我正在測試otf2bdf並利用矢量字型為 HIDPIbdftopcf創建實驗性點陣圖字型。PCF``TTF/OTF

PS4:安裝 100DPI 字型後,這很好,雖然它缺乏對預設fixed字型的強大語言支持。

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

我用過fontsel。這真的很有幫助。

PS5:也很有用。

PS6:我可以用 20pt 從 Courier New 創建 120DPI 位圖字型

$ 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 字型。也許改變它會有所幫助。

PS8 :vncdesk是一個用來放大單個視窗的好工具。

您已經通過參考https://en.wikipedia.org/wiki/Fixed_(typeface)自己暗示了答案

這是標準的固定點陣圖字型,由Markus Kuhn擴展以具有相當完整的字元集。那麼問題是如何縮放點陣圖

到目前為止,您已經實現了縮放矢量字型並將其轉換為點陣圖*(ttf → bdf → pcf)*。這是一個很好的策略,但正如你提到的那樣,它缺乏一些語言支持。這似乎很奇怪,因為 Courier New 是更完整的 unicode 字型之一,但我離題了!也許嘗試使用複製的Mono 。

但是,我不明白您為什麼要這樣做,因為 xterm確實 支持 truetype

像這樣進行修改~/.Xresources(請注意,您需要使用 xrdb 重新載入它,如該問題的另一個答案所示):

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 字型編輯器來調整字型大小。不要指望任何抗鋸齒或這樣的詭計 - 但至少你可以獲得可讀的大小。

或者您可以使用Hiroto Kagotani的 bdfresize(也可以在某些軟體包系統中找到)。

更新:

我不知道只縮放一個視窗的方法(從來沒有需要)。您可以跟踪這個超級使用者問題。當我有需要時,我已經擴展了整個環境。

您可以使用以下命令將 3200x1800 顯示器降級為 1920x1080:

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

可以在此處找到在不同視窗管理器中進行螢幕縮放的其他技巧。他們建議使用 VNC:

一種方法是在它自己的 VNC 桌面上全屏執行應用程序,並且不加修飾。然後縮放查看器。使用 Vncdesk(來自 AUR 的vncdesk-git),您可以為每個應用程序設置一個桌面,然後使用簡單的命令啟動伺服器和客戶端,例如vncdesk 2.

x11vnc有一個實驗選項-appshare,每個應用程序視窗打開一個查看器。也許可以用它來破解一些東西。

引用自:https://unix.stackexchange.com/questions/219370