Більші "xterm" шрифти на дисплеях HIDPI


16

Після декількох років щасливого використання різних емуляторів терміналів, таких як Konsole , Gnome-TERMINAL і останнім часом XFCE Terminal у відповідних робочих середовищах, я вирішив використовувати старий хороший xterm з його растровими шрифтами . Він працює чудово, він підтримує Unicode, а фіксований шрифт за замовчуванням містить символи майже з усіх мов, що чудово.

Але я зіткнувся з важливою проблемою. Шрифтів дійсно мало. Навіть так званий величезний розмір (який є шрифтом 10х20 растрових зображень) для мене дуже маленький і непридатний.

Моє налаштування за умовчанням для середовища 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: Я встановив 100 шрифтів DPI для X, але я не міг їх використовувати

$ sudo apt-get install xfonts-100dpi

PS2: Fontforgeякий також використовує Xlib, використовує приємну тему і нормальні розміри шрифту. Я не знаю, як це робиться.

PS3: Я тестую otf2bdfі bdftopcfвикористовую для створення експериментальних PCFшрифтів растрових зображень для HIDPI з векторних TTF/OTFшрифтів.

PS4: Після встановлення 100DPI шрифтів це було добре, хоча йому не вистачає великої мовної підтримки fixedшрифту за замовчуванням .

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

Я звик fontsel. Це дуже корисно.

PS5: Це також корисно.

PS6: Я міг би створити 120DPI шрифт растрової карти від Courier New з 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. Можливо, змінити це допоможе.

PS8: vncdesk - це хороший інструмент, який можна використовувати для масштабування одного вікна .


Xft.dpi: 120в ~/.Xresourcesне працює?
ILMostro_7

xrdb -query | grep dpiвже повідомляє:Xft.dpi: 120
Ho1

Ви створили ~/.Xresourcesфайл або ~/.Xdefaults, чи w / e підходить у вашій системі? Посилання, на яке ви вказали, на яке ви сказали, було корисним, не є всеосяжним набором опцій, доступних для xterm. Наприклад, Xft.lcdfilter: lcddefault Xft.antialias: true Xft.hinting: true Xft.hintstyle: hintslightта багато іншого.
ILMostro_7

1
@ MartinSchröder Так, насправді я перевірив власні шрифти 120dpi, створені з шрифту truetype Courier New . Але цього не вистачає всіх мов, які підтримує "Фіксована сімейство шрифтів растрових зображень", тому я шукаю кращого способу зробити це. Наразі в моїй системі, / etc / X11 / app-defaults / XTerm, за замовчуванням VT100.font6 (Huge) встановлено шрифт 10x20 із сімейства фіксованих шрифтів, що на моєму екрані досить мало. Я був би радий, якби ми мали en.wikipedia.org/wiki/Fixed_%28typeface%29 на 20x40, але цього не робимо.
Ho1,

1
Чи потрібно використовувати растрові шрифти? xtermтакож підтримує шрифти Truetype. xterm -fa 'DejaVu Sans Mono' -fs 40(хоча не перемикатися між шрифтами, коли гліфи недоступні, як це роблять інші емулятори терміналів)
Stéphane Chazelas

Відповіді:


10

Ви самі натякали на відповідь, посилаючись на https://en.wikipedia.org/wiki/Fixed_(typeface)

Це стандартний фіксований шрифт растрового зображення, який було розширено Маркусом Куном, щоб мати досить повний набір символів. Тоді питання полягає в тому, як масштабувати растрову карту .

Досягнуто досі - масштабувати векторний шрифт та перетворити його на растрову карту (ttf → bdf → pcf) . Це прекрасна стратегія, але, як ви згадуєте, їй не вистачає мовної підтримки. Це здається дивним, оскільки Courier New - це один з більш унікодних повних шрифтів, але я відступаю! Можливо, спробуйте використовувати 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

Маркусу було так приємно, що він постачає вихідні файли BDF. Якщо у вашому дистрибутиві немає останніх оновлень (з квітня 2009 р.), Ви можете взяти пакет безпосередньо з нього.

Пакет шрифтів "-misc-fix- *":

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

Замість того, щоб перетворювати вперед і назад між pcf ​​та bdf, ви могли / повинні дотримуватися вихідного формату. Ви можете використовувати редактор шрифтів BDF, щоб змінити розмір шрифту. Не чекайте жодного антиялізингу чи подібних хитрощів - але принаймні ви можете отримати читабельний розмір.

Або ви можете використовувати bdfresize від Hiroto Kagotani (також його можна знайти в деяких пакетних системах).

ОНОВЛЕННЯ:

Я не знаю способу масштабування лише одного вікна (ніколи не було потреби). Ви можете відстежити це питання про суперпользователя. Коли у мене була потреба, я розширив все середовище.

Можна зменшити дисплей 3200x1800 до 1920x1080, використовуючи:

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

Інші підказки щодо масштабування екрана в різних менеджерах вікон можна знайти тут . Вони пропонують використовувати VNC:

Один із підходів полягає у запуску програми на весь екран і без прикрас на власному робочому столі VNC. Потім масштабуйте глядача. За допомогою Vncdesk ( vncdesk-git від AUR) ви можете налаштувати робочий стіл для програми, а потім запустити сервер і клієнт за допомогою простої команди, наприклад vncdesk 2.

x11vnc має експериментальний варіант -appshare, який відкриває один переглядач у вікні програми. Можливо, щось із цим можна зламати.


Чудова відповідь, спасибі Я з радістю прийму відповідь. Чому б не триети? 1) Я хочу використовувати його на старому повільному комп'ютері. 2) Виправлена ​​сім'я має чудову підтримку мови, як описано в cl.cam.ac.uk/~mgk25/ucs-fonts.html І останнє: Чи є спосіб просто масштабувати одне вікно в X? Я думаю, що це покращить відповідь.
Ho1

1
Згідно з оригінальним плакатом необхідна широка підтримка різних мов, Віра обмежена, але її спіноф DejaVu підтримує безліч різних наборів символів. З цієї точки зору також більш-менш вільно доступні однорозмірні шрифти від MS є дуже хорошими, як Courier10, так і Calibri. Я закохався, начебто, в Калібри!
gboffi

0

Зараз ви можете збільшити розмір шрифту, утримуючи клавішу управління та праву кнопку миші (тобто ctrl+right mouse button) та вибрати розмір шрифту. Щоб зробити його за замовчуванням, вам потрібно мати Xresourcesконфігурацію. Я намагаюсь, і відповідь я оновлю, як тільки отримаю.

Оновлення:

Ви можете створити .Xresourcesфайл всередині домашнього каталогу та додати рядок нижче xterm*font: *-fixed-*-*-*-18-*. Потім об'єднайте свої зміни з утилітою ресурсу сервера X за допомогою xrdb(тобто xrdb -merge ~/.Xresources), або ви також можете перезапустити Xтакож. Новий xtermsповинен мати змінений розмір шрифту.


Дякую за вашу відповідь, я використовую найбільший шрифт растрових зображень, доступний для фіксованого сімейства шрифтів: 10x20, який використовується для величезного розміру шрифту, але він також дуже маленький на дисплеях HIDIP. Зверніть увагу, що я кажу про растрові шрифти, а не на шрифти "truetype".
Ho1

0

Я не впевнений, але ви можете, можливо, об'єднати шрифт і розмір так:

xterm -fn helvetica -fs 20x10

невеликий тест шрифтів

з повагою, maniat1k


Спасибі за вашу відповідь. Це забезпечує більші шрифти:, xterm -fs 20x10але це не "фіксована сім'я шрифтів": en.wikipedia.org/wiki/Fixed_%28typeface%29 , тому він не містить міжнародних символів, які мають фіксовану сім'ю шрифтів.
Ho1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.