Naša latinica i ћирилица (ćirilica) pod konzolom

Uputstva, saveti i trikovi

Moderator: Urednik

Post Reply

Administrator
Administrator
offline
User avatar

Posts: 4713
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 08 Aug 2020, 15:44


IMG_20200808_170349.jpg
Slika: Midnight Commander na ćirlici (sr_RS lokalitet) prikazuje direktorijume i sa latiničnim i sa ćirilićnim nazivima.

Pod desktop okruženjem nemamo problema sa latinicom i ćirlicom (ako je sistem podešen na UTF-8 kodnu stranu), ali pod konzolom "č,ć,đ,ž" i ćirlica se prikazuju kao kockice. Srećom, ovo je moguće jednostavno postići promenom fonta. S druge strane, nažalost, izbor fontova koji uključuju i ćirilicu i latinicu je mali.

PITANJE: Kako se menja font pod konzolom?

ODGOVOR: Za promenu fonta pod konzolom koristimo komandu setfont. Ona se može pokrenuti samo pod konzolom, ne i pod emulatorima terminala u X ili Waylandu. Osnovna sintaksa bi bila:

Code: Select all

setfont font
Ovde font može biti puna putanja fonta ili samo ime fonta bez putanje i nastavka. Primer

Code: Select all

setfont term-v14n
Ovo će postaviti ovu varijantu Terminusa (Slack 14.2 i noviji) u trenutnom prozoru konzole. Ovaj font se nalazi u /usr/share/kbd/consolefonts pa nije potrebno navesti punu putanju ili nastavak fonta. U slučaju da se željeni font nalazi negde drugde na disku, možete navesti i punu putanju:

Code: Select all

setfont /usr/local/share/consolefonts/customfont.psf.gz
Fontovi koji podržavaju naša slova

Ako se poigrate malo sa fontovima koji se već nalaze u sistemu, videćete da ima dosta fontova koji podržavaju našu latinicu ili ćirilicu. Većina fontova su ili/ili. Osim gore pomenute varijante Terminus fonta (imena datoteka počinu sa term-v) koji podržava oba pisma istovremeno. Ako nemate potrebu pregleda tekstova na ćirlici ili nemate lokalizaciju koja koristi ćirlicu, onda je izbor fontova mnogo veći. Moja preporuka je da eskperimentišete. Ali ako hoćete da idete na sigurno, proverite Terminus varijante. Mislim da "ter-2" varijanta podržava našu latinicu (napr: ter-212n).

Veličina i podebljanost slova Terminus fonta

Naziv terminus fonta nam daju informaciju i o veličini i podebljanosti slova.

Recimo: "term-v16n" je "v" varijanta Terminusa veličine 16 i normalne debljine. "term-v14b" je "v" varijanta Terminusa veličine 14 sa podebljanim slovima (b). Takođe postoji i "v" nivo podebljanosti, ali kod mene ima isti efekat kao "b".

Menjanje rasporeda tastature pod konzolom

Menjanje rasporeda tastature se vrši komandom loadkeys, ali... Definisani rasporedi tastature su praistorijski i možda neće raditi pod UTF8 konzolom. Recimo, srpski raspored "sr-cy" koristi ISO 8859-5 kodnu stranu i podržava samo ćirlicu i englesku latinicu, ali ne i naša latinična slova, nažalost, neće raditi pod UTF-8 konzolom.

Mada, ako vam nije potreban unos ćirlice, "croat" (hrvatski) i "slovene" (slovenački) rade bez problema:

Code: Select all

loadkeys croat
Izmena:

Istraživao sam još malo. Najpribližnija našoj ćirlici je makedonska. Za makedonski jezik postoji mk-utf raspored koji radi bez problema, ali ne rešava problem pošto ne sadrži sva slova koja se koriste u srpskom jeziku. Iako se verovatno može koristiti kao osnova za pravljenje mape za srpsku ćirilicu.

Alternative

Postoje alternative korišćenju međunarodnih mogućnosti Linuks konzole. FBTerm, FBPad, JFBTerm i slični "emulatori terminala" koji rade pod konzolom često omogućavaju proširene mogućnosti internacionalizacije. FBTerm, recimo, podržava TTF fontove i alternativne metode unosa.

Mane ovog pristupa je što ovi programi koriste mogućnosti Linuks framebuffer interfejsa, pa framebuffer programi (fbpdf, fbi, fbida, itd) često ne rade pod njima. Biće ih neophodno pokrenuti u drugoj virtualnoj konzoli (CTRL+ALT+BROJ), u kojoj nije pokrenut "terminal emulator". Naravno, takođe neće raditi ni SVGAlib programi kao što je "seejpeg" koji dolazi uz Slack. I njih je potrebno pokrenuti u drugoj virtualnoj konzoli.



Administrator
Administrator
offline
User avatar

Posts: 4713
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 08 Aug 2020, 16:17


Čuvanje podešavanja fonta

Podešavanje fonta komandom setfont neće biti sačuvano nakon sledećeg restarta. Potrebno je da našu setfont liniju dodamo u /etc/rc.d/rc.font. Podrazumevana vrednost je "setfont -v". Opciju "-v" možemo zameniti sa imenom našeg fonta.

Code: Select all

setfont ter-v16b
Čuvanje podešavanja mape tastature

Isto važi i za podešavanje rasporeda tastature komandom 'loadkeys'. Da bi se ova podešavanja primenila i pri sledećem restartu, možemo je dodati u /etc/rc.d/rc.local.



Administrator
Administrator
offline
User avatar

Posts: 4713
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 13 Mar 2026, 08:59


Ova priča je ostala nedorečena: setfont samo menja font. Ono što je preostalo je raspored tastature (keymap). Rasporedi tastature su domen paketa kbd. Uz njega dolaze 2 rasporeda za srpski: sr-latin i sr-cyr. Oba pretpostavljaju ISO-8859-2, pa ne funkcionišu pod UTF-8 konzolom.

Kada sam pisao ovu temu sam pokušao da to rešim. Bio sam blizu uspeha, ali sam naišao na veliki problem. Pokazalo se da je mapa sa 3 nivoa (engleski, srpska latinica i srpska ćirilica) vrlo komplikovana za menjanje, održavanje i prilagođavanje, pa sam privremeno batalio ideju.

Ovih dana sam ponovo pokušao i ovog puta sam bio bolje sreće. Možda zato što sam ograničio projekat na 2 nivoa. Mada, tehnički je ovo zapravo više nivoa: obično tastatura (mala slova), tastatura kada je pritsnut shift ili shift_lock (velika slova), tastatura kad je pritisnut altgr ili altgr_lock (mala ćirlica) i tastatura kad je pritisnut shift+altgr (velika ćirilica). Treći nivo još nisam kodirao, ali to će biti tasteri koji su pod X-om ili Windowsom dostupni pomoću altgr (@, ÷, ×, ß, ¤, etc). Moja trenutna ideja da za to koristim Windows dugme.

Karakteristike:
  • Mapa sadrži srpsku latinicu + srpsku ćirilicu po standardnom rasporedu tastature (ono što vidite na fizičkim tastaturama)
  • Prebacivanje rasporeda se vrši putem alt+caps_lock
  • Posebni karakteri (@, ÷, ×, ß, ¤, etc) su dostupni preko Windows dugmeta
Testirao sam sve konzolne fontove koji dolaze uz Slackware i Terminus fontovi su jedini koji imaju i našu latinicu i našu ćirilicu. Ali ne sve varijante. Postoji ograničen broj fontova koji podržavaju oba skupa karaktera. Napisaću tačna imena kada budem bio pri kućnom računaru.

Elem, za ljude iz komšiluka: Ako su dobro napisane, stare mape tastatura će često raditi na konzoli bez prevelikih promena. Recimo u mapi za Slovenački jezik (SLO: Slovenski) dovoljno je samo skinuti definiciju kodne strane (ISO-8559-2) i tastatura će raditi pod UTF-8 konzolom. Hrvatska i slovenačka mapa se nalaze u /usr/share/kbd/keymaps/i386/qwertz.

Danas/sutra kačim srpsku mapu i neke sličice kako to izgleda u praksi.



Administrator
Administrator
offline
User avatar

Posts: 4713
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 14 Mar 2026, 10:33


Evo je serbian-uni mapa bez trećeg nivoa. Okačiću i tu verziju kad je dopunim.

Dakle prebacivanje između ćirlice i latinice se vrši istovremenim pritiskom "alt" i "caps lock" tastera.

Da biste koristili ovaj raspored morate podesiti font koji podržava i naša latinična i ćirilićna slova (vidi prvi post za sintaksu komande setfont. Od fontova koji dolaze uz Slackware to je tačno samo za Terminus fontove i to ter-v* seriju fontova.

Prema Terminus dokumentaciji:
  • ter-v* sadrži veliki broj kodnih strana, ukupno oko 110 setova jezika.
ovi fontovi obično imaju 3 varijacije:
  • ter-v*n - normalni
  • ter-v*b - podebljani (bold)
  • ter-v*v - CRT VGA podebljani (bold)
Druge verzije terminus fontova pokrivaju sledeće kodne strane:

Code: Select all

names	mappings		covered codepage(s)

ter-1*	iso01, iso15, cp1252	ISO8859-1, ISO8859-15, Windows-1252
ter-2*	iso02, cp1250		ISO8859-2, Windows-1250
ter-7*	iso07, cp1253		ISO8859-7, Windows-1253
ter-9*	iso09, cp1254		ISO8859-9, Windows-1254
ter-c*	cp1251, iso05		Windows-1251, ISO8859-5
ter-d*	iso13, cp1257		ISO8859-13, Windows-1257
ter-g*	iso16			ISO8859-16
ter-h*	cp1255, iso08		Windows-1258, ISO8859-8
ter-i*	cp437			IBM-437
ter-k*	koi8r			KOI8-R
ter-m*	mik			Bulgarian-MIK
ter-p*	pt154			Paratype-PT154
ter-u*	koi8u			KOI8-U



Administrator
Administrator
offline
User avatar

Posts: 4713
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 14 Mar 2026, 21:40


Naišao sam na problem.

Glavna ideja je da se definiše taster koji će "zaključati" ćirilićni raspored. Ovo je jednostavna stvar. Ali kada se ovo uradi, kada je taj taster "zaključan" nije dostupan nijedan karakter osim onih koji su eksplicitno definisani sa tim tasterom - u ovom slučaju samo ćirlica. To je nepraktično iz više razloga. Jedan je da onda većina tastera više ne radi, uključujći tastere za prebacivanje konzola (alt+Fn i ctrl+alt+Fn), tastere za pomeranje kursora ili ostali posebni tasteri. Isto tako, prebacivanje jezika radi samo na jednom nivou ako nije dodata odgovarajuća definicija. U tom slučaju ovo je neupotrebljivo.

Dakle, da bi prebačen raspored bio koristan, mora se redefinisati ceo raspored tastature kada je taster za zaključavanje aktivan.

Tako da ne mogu da objavim raspored dok ne definišem koliko-toliko koristan raspored koji će raditi sa obe abecede/azbuke.


Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest