Polskie litery w X Windows

Aby móc widzieć i wpisywać polskie litery w programach pod X Windows należy:
  1. Zainstalować fonty;
  2. Poinformować programy, że mają korzystać z polskich fontów;
  3. Stworzyć odpowiednie "mapowanie" klawiatury, pozwalające wpisywać polskie litery;

Procedura instalacji fontów została opisana tutaj.

Zmiana fontów w konfiguracji programów

Niektóre programy, np. Netscape pozwalają wykonać taką zmianę w konfiguracji w prostszy sposób - poprzez odpowiednią zmianę w menu "Options". Jeśli jednak program tego nie potrafi (sprawdź!), to można postąpić następująco:


W systemie X Windows programy zwykle czytają informacje konfiguracyjne w następujący sposób:
  1. Odpytują X serwer, czy przypadkiem on nie zna wartości odpowiednich zmiennych konfiguracyjnych. Do serwera ładuje sie informacje konfiguracyjne z plików komendą xrdb:
    xrdb -merge plik_z_opcjami
    Zwykle załadowanie odpowiednich plików z opcjami odbywa się w trakcie operacji "logowywania się" do systemu - odpowiednie komendy xrdb można wpisać np. do pliku ~/.xinitrc.
  2. Jeśli serwer nie ma załadowanych zmiennych konfiguracyjnych dla danego programu, to program szuka pliku konfiguracyjnego na dysku - najpierw w katalogu domowym użytkownika, a następnie w katalogach systemowych - wyliczonych w zmiennej środowiskowej XAPPLRESDIR albo w katalogu standardowym (np. w systemie Solaris jest to /usr/openwin/lib/app-defaults).
    Nazwa pliku konfiguracyjna zwykle jest podobna do nazwy programu - np. plik konfiguracyjny dla programu xterm nosi nazwę "XTerm", dla netscape "Netscape", itp.

W pliku konfiguracyjnym znajdują się linie postaci:
nazwa_zmiennej: wartość
ewentualnie przeplatane liniami pustymi lub komentarzami (linie zaczynające się od wykrzyknika).
Zarówno w nazwie zmiennej jak i w wartości mogą występować gwiazdki, które oznaczają dopasowywanie do wzorca - dla nazw zmiennych pozwala to skracać nazwy, a dla wartości: wybierz pierwsze zgodne z podanym wzorcem.

Aby zmienić fonty stosowane dla danego programu należy we wszystkich liniach zawierających zmienne odnoszące się do fontów (zwykle w nazwie jest słowo "font") zmienić: "8859-1" lub "8859-*" na "8859-2".

Po takiej zmianie (i ewentualnie przeładowaniu wartości w serwerze za pomocą polecenia xrdb -merge) należy jeszcze uruchomić dany program i sprawdzić czy wszystko jest w porządku - czy np. teraz nie są "łapane" fonty o innej wielkości, itp. Jeśli tak się zdarzy (raczej rzadko), to przy odrobinie uwagi zwykle można to poprawić w pliku konfiguracyjnym - np. zmieniając dla odpowiednich wartości gwiazdki na właściwie dobrane liczby.


Wpisywanie polskich liter z klawiatury

Chyba najnaturalniejszy sposób wprowadzania polskich liter, to tzw. układ "programisty", gdzie polskie litery wprowadza się naciskając "japko" (klawisz obok klawisza ALT - zwykle go dublujący; nieortograficznej nazwy "japko" użyłem celowo - jakiś klawisz koło ALT zwykle jest, tylko opisany przeróżnie (SUN: poduszeczka, pecet; deadkey lub W95, itp.) - "japka" nie ma nigdzie i może dlatego nie będzie nieporozumień) i odpowiednią literę, np. ą, to japko-a. Aby to uzyskać, należy, najlepiej automatycznie podczas "logowania się" wykonać:

xmodmap .xmodmaprc
gdzie plik .xmodmaprc powinien zawierać:
add mod1 = Mode_switch

keysym A = a A plusminus exclamdown
keysym L = l L threesuperior sterling
keysym S = s S paragraph brokenbar
keysym C = c C ae AE
keysym O = o O oacute Oacute
keysym N = n N ntilde Ntilde
keysym E = e E ecircumflex Ecircumflex
keysym Z = z Z questiondown macron
keysym X = x X onequarter notsign

UWAGA
zawartość pliku .xmodmaprc jest silnie zależna od systemu i od konkretnej klawiatury - np. Mode_switch to systemowa nazwa "japka" na klawiaturze SUN'owskiej.

Dla XFree (systemy Linux i FreeBSD) odpowiedniejszy będzie .xmodmaprc opisany tutaj

Patrz także opis problemów z używaniem japka pod Netscape.


Po dokonaniu powyższych zmian będziesz mógł uzyskiwać polskie litery nie tylko w programach graficznych, ale także w tekstowych uruchamianych np. w okienku xterm'a (jeśli będziesz miał problemy - sprawdź czy masz dobrze ustawione parametry terminala stty -a powinno wypisać że terminal jest obsługiwany ośmiobitowo (cs8).

Problemy mogą się jeszcze pojawić jeśli program uruchamiany w okienku xterm'a będzie się ekstra bronił przed znakami ośmiobitowymi - np. program vi w standardowej konfiguracji słowo "móc" wyświetla jako "m\163c". Dzieje się tak z powodu niewłaściwego ustawienia w systemie tzw. NLS (National Language Support). Wlaściwie NLS powinien być ustawiony na język polski, ale jako że ciągle jeszcze jest to dość trudne do zrobienia, to wystarczy jeśli ustawisz NLS na któryś z jezyków europejskich - wtedy np. vi nie będzie specjalnie traktował kodów ośmiobitowych.

A jeśli nie chce Ci się bawić z NLS, to w emacs'ie lub Allegro nie ma tych problemów - może to jest właściwy moment na pożegnanie się ze staruszkiem vi?


JS