Większe czcionki „xterm” na wyświetlaczach HIDPI

16

Po kilku latach szczęśliwego korzystania z różnych emulatorów terminali, takich jak Konsole , Gnome-TERMINAL , a ostatnio Terminal XFCE w odpowiednich środowiskach pulpitu, zdecydowałem się na użycie starej dobrej xterm z czcionkami bitmapowymi . Działa dobrze, obsługuje Unicode, a domyślna stała rodzina czcionek zawiera znaki z prawie wszystkich języków, co jest świetne.

Ale natknąłem się na ważny problem. Czcionki są naprawdę małe. Nawet tak zwany Ogromny rozmiar (czcionka 10 x 20) jest dla mnie bardzo mały i nie nadaje się do użytku.

Moje domyślne ustawienie dla środowiska XFCE to 120 dpi, ale xpdyinfozgłasza 97x97 DPI

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

Próbowałem więc zmienić DPI xrandr, ale to nie pomogło.

$ xrandr --dpi 120

Wynik wydaje się być zastosowany

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

ale wcale nie zmienia rozdzielczości xterm. Próbowałem nawet użyć skalowania, ale wpłynęło to na cały X, a nie na pojedynczą aplikację:

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

Istnieją obejścia dla Qt i Gtk , ale co z Xlibaplikacjami opartymi na Xterm,Xcalc , Xman, Xfige, etc? Czy powinniśmy obserwować, jak zanikają, gdy wzrasta DPI wyświetlacza? Proszę o pomoc, jeśli znasz jakieś obejścia.


To właśnie zrobiłem, co jakoś działało, ale nie mogłem użyć oryginalnej „stałej rodziny czcionek”, więc może teraz działać tylko w niektórych językach.


PS1: Zainstalowałem 100 czcionek DPI dla X, ale nie mogłem ich używać

$ sudo apt-get install xfonts-100dpi

PS2: Fontforgektóry również wykorzystujeXlib , używa ładnego motywu i normalnych rozmiarów czcionek. Nie wiem jak to robi.

PS3: Testuję otf2bdfi bdftopcfnarzędzia do tworzenia eksperymentówPCF czcionek bitmapowych dla HIDPI z TTF/OTFczcionek wektorowych .

PS4: Po zainstalowaniu czcionek 100DPI było to dobre, chociaż brakuje doskonałej obsługi języka domyślnej fixedczcionki.

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

używałem fontsel . To jest naprawdę pomocne.

PS5: To to również przydatne.

PS6: Mógłbym być w stanie stworzyć czcionkę bitmapową 120DPI z Courier New z 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 jest zakodowane na stałe czcionką BDF. Może zmiana pomoże.

PS8: vncdesk to dobre narzędzie do skalowania pojedynczego okna .

Ho1
źródło
Xft.dpi: 120w ~/.Xresourcesnie działa?
ILMostro_7,
xrdb -query | grep dpijuż donosi:Xft.dpi: 120
Ho1
Czy utworzyłeś ~/.Xresourcesplik lub ~/.Xdefaultsczy w / e jest odpowiedni w twoim systemie? Link, który wskazałeś, że był pomocny, nie jest wszechstronnym zestawem opcji dostępnych dla xterm. Na przykład Xft.lcdfilter: lcddefault Xft.antialias: true Xft.hinting: true Xft.hintstyle: hintslighti wiele innych.
ILMostro_7
1
@ MartinSchröder Tak, w rzeczywistości przetestowałem własne czcionki 120dpi wygenerowane z czcionki truetype Courier New . Brakuje jednak wszystkich języków obsługiwanych przez „Stałą rodzinę czcionek bitmapowych”, dlatego szukam lepszego sposobu na zrobienie tego. Obecnie w moim systemie, / etc / X11 / app-defaults / XTerm, jako domyślny VT100.font6 (Huge) jest ustawiony na czcionkę 10x20 z rodziny Fixed font, która jest raczej mała na moim ekranie. Byłbym szczęśliwy, gdybyśmy mieli en.wikipedia.org/wiki/Fixed_%28typeface%29 dla 20x40, ale nie mamy.
Ho1
1
Czy potrzebujesz czcionek bitmapowych? xtermobsługuje również czcionki truetype. xterm -fa 'DejaVu Sans Mono' -fs 40(chociaż nie przełącza się między czcionkami, gdy glify nie są dostępne, jak robią to niektóre inne emulatory terminali)
Stéphane Chazelas

Odpowiedzi:

10

Sam podpowiedziałeś odpowiedź, odwołując się do https://en.wikipedia.org/wiki/Fixed_(typeface)

Jest to standardowa stała czcionka bitmapowa, która została rozwinięta przez Markusa Kuhna w celu uzyskania raczej kompletnego zestawu znaków. Powstaje więc pytanie, jak skalować mapę bitową .

Do tej pory udało Ci się skalować czcionkę wektorową i konwertować ją na mapę bitową (ttf → bdf → pcf) . To dobra strategia, ale jak wspomniałeś, brakuje jej wsparcia językowego. To wydaje się dziwne, ponieważ Courier New jest jedną z bardziej kompletnych czcionek Unicode, ale dygresuję! Może spróbuj użyć Mono, który jest klonem.

Nie mam jednak zrozumieć, dlaczego robisz to jak xterm robi wsparcia TrueType .

Zmodyfikuj ~/.Xresourcestak:

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

Wróćmy jednak do zadania: chcesz mieć większą mapę bitową czcionkę .

Największa dostępna bitmapa jest dostępna:

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

Markus był tak miły, że dostarcza źródłowe pliki BDF. Jeśli Twoja dystrybucja nie zawiera najnowszych aktualizacji (od kwietnia 2009), możesz pobrać pakiet bezpośrednio od niego.

Pakiet czcionek „-misc-fixed- *”:

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

Zamiast konwertować tam iz powrotem między pcf i bdf, możesz / powinieneś trzymać się formatu źródłowego. Do zmiany rozmiaru czcionki można użyć edytora czcionek BDF. Nie spodziewaj się żadnych antyaliasingu lub takich sztuczek - ale przynajmniej możesz uzyskać czytelny rozmiar.

Możesz też użyć bdfresize autorstwa Hiroto Kagotani (również w niektórych systemach pakietów).

AKTUALIZACJA:

Nie znam sposobu na skalowanie tylko jednego okna (nigdy nie miałem takiej potrzeby). Można śledzić ten pytanie Superuser. Kiedy potrzebowałem, przeskalowałem całe środowisko.

Możesz obniżyć ekran 3200x1800 do 1920x1080, używając:

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

Inne sztuczki skalowania ekranu w różnych menedżerach okien można znaleźć tutaj . Sugerują użycie VNC:

Jednym z podejść jest uruchomienie aplikacji na pełnym ekranie i bez dekoracji na własnym pulpicie VNC. Następnie przeskaluj przeglądarkę. Dzięki Vncdesk ( vncdesk-git z AUR) możesz skonfigurować pulpit dla każdej aplikacji, a następnie uruchomić serwer i klienta za pomocą prostej komendy, takiej jak vncdesk 2.

x11vnc ma opcję eksperymentalną -appshare, która otwiera jedną przeglądarkę na okno aplikacji. Być może coś może zostać zhackowane.

Claus Andersen
źródło
Świetna odpowiedź, dzięki. Z radością przyjmuję odpowiedź. Dlaczego nie prawdziwym typem? 1) Chcę go używać na starym wolnym komputerze. 2) Naprawiono rodzinę, która ma świetną obsługę języków, jak opisano w cl.cam.ac.uk/~mgk25/ucs-fonts.html I ostatnia rzecz: czy istnieje sposób na skalowanie pojedynczego okna w X? Myślę, że poprawi to odpowiedź.
Ho1
1
W / R do oryginalnego plakatu potrzeba szerokiej obsługi różnych języków, Vera jest ograniczona, ale jej spinoff DejaVu obsługuje wiele różnych zestawów znaków. Z tego punktu widzenia również mniej lub bardziej swobodnie dostępne czcionki MS o stałej szerokości są bardzo dobre, zarówno Courier10, jak i Calibri. Zakochałem się w Calibri!
gboffi
0

W tej chwili możesz zwiększyć rozmiar czcionki, trzymając wciśnięty klawisz kontrolny i prawy przycisk myszy (tj. ctrl+right mouse button) I wybierz rozmiar czcionki. Aby Xresourcesustawić ją jako domyślną, musisz mieć konfigurację. Próbuję i zaktualizuję odpowiedź, gdy tylko ją otrzymam.

Aktualizacja:

Możesz utworzyć .Xresourcesplik w swoim katalogu domowym i dodać poniższy wiersz xterm*font: *-fixed-*-*-*-18-*. Następnie scal zmiany za pomocą narzędzia do zarządzania zasobami serwera X za pomocą xrdb(tj. xrdb -merge ~/.Xresources) Lub możesz również uruchomić ponownie X. Nowy xtermspowinien mieć zmieniony rozmiar czcionki.

Thushi
źródło
Dzięki za odpowiedź, używam największą czcionkę bitmapy dostępne dla ustalonej rodziny czcionek: 10x20, który jest używany do Huge rozmiaru czcionki, ale jest również bardzo mały na wyświetlaczach HIDIP. Zwróć uwagę, że mówię o czcionkach bitmapowych, a nie czcionkach typu truetype.
Ho1
0

Nie jestem pewien, ale możesz scalić czcionkę i rozmiar w następujący sposób:

xterm -fn helvetica -fs 20x10

mały test czcionek

pozdrowienia, maniat1k

maniat1k
źródło
Dziękuję za Twoją odpowiedź. Zapewnia to większe czcionki: xterm -fs 20x10ale nie jest to „stała rodzina czcionek”: en.wikipedia.org/wiki/Fixed_%28typeface%29 , więc nie zawiera znaków międzynarodowych, które mają ustaloną rodzinę czcionek.
Ho 1