Subsections

XFree86: Графична среда

XKB: Клавиатура

Следните текстове могат да ви помогнат ако искате да разберете повече за разширението XKB на X:

xserver-xfree86: Конфигуриране при инсталиране

При инсталирането на пакета xserver-xfree86 трябва да отговорите на следните въпроси:

Въпрос Опция

Отговори за българска среда

Please select your keyboard layout XkbLayout
  • bg
Please select your keyboard variant XkbVariant
  • phonetic
  • bds
Please select your keyboard options XkbOptions
  • grp:shift_toggle
  • grp:ctrl_shift_toggle
  • grp:caps_toggle
  • grp:ctrl_alt_toggle
  • grp:alt_shift_toggle
  • grp:menu_toggle

Списък на всички опции, задавани чрез Option, може да се намери в /etc/X11/xkb/rules/xfree86.lst.

XF86Config: Редактиране на конфигурацията на X

Редактирайте файла /etc/X11/XF86Config-4, като копирате секцията InputDevice за клавиатурата преди реда

### BEGIN DEBCONF SECTION

ако го има. След това в копието се добавят или променят следните настройки:

Section "InputDevice"
        .. 
        ..
        Option  "XkbLayout"     "bg"
        Option  "XkbVariant"    "phonetic"
        Option  "XkbOptions"    "grp:alt_shift_toggle,grp_led:scroll"
EndSection

Различните възможности за стойностите на опциите могат да се видят от предишната секция.

Ако ползвате XFree86 версия 4.3 или по-голяма, трябва да употребите малко по-друг синтаксис, който позволява повече от две подреждания (layouts). Примерите по-долу засягат само XkbLayout и XkbVariant, защото останалите неща са същите.

# едновременно фонетична и БДС наредба
        Option "XkbLayout" "us,bg,bg"
        Option "XkbVariant" ",phonetic,bds"

# или само фонетична
        Option "XkbLayout" "us,bg"
        Option "XkbVariant" ",phonetic"

setxkbmap: Различна подредба за отделен потребител

Командата setxkbmap(1) позволява конфигуриране на клавиатурата от команден ред или скрипт. Например:

За фонетична подредба с превключване на кирилица/латиница с десен Alt:

# setxkbmap bg phonetic_enhanced grp:toggle,grp_led:scroll

За БДС подредба подредба с превключване на кирилица/латиница с десен Alt:

# setxkbmap bg bds_enhanced grp:toggle,grp_led:scroll

(Не забравяйте, че от XFree86 4.3 нататък има малко по-друг синтаксис, както е показано по-горе.)

Такъв скрипт може да се използва при начално зареждане на потребителска X сесия, променяйки глобалните настройки за подредба на клавиатурата. Файлът ~/.xsession (в Дебиан вместо ~/.xinitrc трябва да се използва ~/.xsession) е подходящ за тази цел. Забележете, че този файл може и да не се изпълни от display manager-и, различни от xdm, като kdm или gdm например. Използвайки горните променливи, командата изглежда по следния начин (в квадратни скоби се отбелязват части, които могат да се пропуснат):

# setxkbmap [ -layout XkbLayout ]
            [ -variant XkbVariant ]
            [ -option XkbOptions ]
            [ -compat XkbCompat ]

Като графични превключватели на подредбата на клавиатурата може да ползвате kxkb, xxkbd и др.

Важна корекция

Проверете дали имате този файл, и ако не то непременно трябва да изпълните командата:

# touch /usr/lib/X11/locale/microsoft-cp1251/Compose

понеже някои програми не могат да тръгнат, ако този файл не съществува.

Шрифтове

Ако искате да разберете повече за шрифтовете в X, следните текстове може да ви помогнат:

Имайте впредвид, че в X кодирането на знаците на нашата кирилица се именува microsoft-cp1251, по специално в имената на шрифтовете, и windows-1251 на всички други места, като поща например. Последното име е и официалното на това кодиране.

В X широко се използват някои предефинирани имена на шрифтове, като fixed или 10x20 например. Версиите на тези шрифтове с кодировка windows-1251 са с префикс w-, като w-fixed и w-10x20 например. Префиксът c- се използва за шрифтове с Уникод кодиране, което в X се именува iso10646-1. Всички такива кратки имена (alias-и, псевдоними) могат да се видят с командата xlsfonts:

$ xlsfonts | grep ^w-

Пълен списък на всички псевдоними се намира във файловете *.alias от поддиректориите на /etc/X11/fonts. За да видите образите на знаците на някой шрифт, използвайте командата xfd от вида:

$ xfd -fn w-10x20

За търсене и разглеждане на шрифт използвайте xfontsel. Една комбинация от двете команди, която използвам за Уникод шрифтове (в X ги именуват с кодиране iso10646-1), е

$ xfd -fn "`xfontsel -print`"

Пакети с шрифтове, съдържащи кирилица

(FIXME: Тази част още не е прехвърлена.)

Препоръчвани пакети с шрифтове

Ето списък на най-често използваните пакети с кирилски шрифтове:

Забележка Ако не знаете точното предназначение на кривите скоби, използвани тук, моля прочетете частта Brace Expansion от секцията Basic Shell Features в ръководството на Bash. Тук те няма да се обясняват, защото и без друго това е една от ценните възможности на Bash, която си струва да се знае.

TrueType шрифтове

Има два основни начина, с които една програма може да използва шрифтове. Първият е класическият: дават се команди на X сървъра да изобрази определени знаци от определен шрифт. Наричаме този начин използване на X шрифтовете (X core fonts). Вторият начин е самата програма да направи изображение на знаците, които иска да покаже, и да прати тези готови образи на X сървъра чрез разширението RENDER на XFree86. За тази цел се използва библиотеката FreeType. Самата библиотека не прави повече от построяване на образи на знаци. Задачата да се прехвърлят тези образи в X сървъра се изпълнява от библиотеката Xft, последната версия 2 на която е част от по-общата система FontConfig за използване на шрифтове. Този начин наричаме използване на Xft шрифтовете. (В бъдеще по-добре е да се наричат FontConfig шрифтове, но в Дебиан 3.0 това няма да е адекватно, защото там има само Xft1.) От потребителска гледна точка вторият начин има няколко предимства: способността да се изглаждат знаците на шрифтовете (anti-aliasing, X шрифтовете нямат тази способност), много по-разбираемото именуване на шрифтовете (сравнете Lucida Sans 14 с -b&h-lucida-medium-r-normal-sans-14-100-100-100-p-80-iso10646-1) и способността за фино конфигуриране на Xft. Вторият начин е по-нов и само по-новите програми (например тези на KDE2 и GNOME2) са способни да го използват.

И по двата начина могат да се използват TrueType шрифтове. Като X шрифтове те се изобразяват чрез вариант на FreeType, или чрез друга библиотека за изобразяване на знаци -- XTT, но това е само за съвместимост с по-старите програми.

Инсталиране на TrueType шрифтове

Понякога се разпространяват TrueType шрифтове за определено кодиране, например windows-1251. Много вероятно е да имате проблеми с тях, защото те ще се възприемат като с кодиране iso8859-1. Използвайте Уникод шрифтове.

  1. Вземете отнякъде TrueType шрифтове
  2. Инсталирайте пакета ttmkfdir
  3. Сложете *.ttf файловете в някаква временна директория.
  4. Изпълнете там командата
    $ ttmkfdir -о име.scale
    
    където име е специфично за тази група шрифтове име.
  5. Копирайте *.ttf файловете в директорията /usr/lib/X11/fonts/TrueType. Създайте я, ако не съществува.
  6. Копирайте файла име.scale в директорията /etc/X11/fonts/TrueType. Създайте я, ако не съществува.
  7. Изпълнете командите:
    # update-fonts-scale TrueType
    # update-fonts-dir TrueType
    

Използване като X шрифтове

Ако използвате шрифтовия сървър xfs, трябва да добавите директорията /usr/lib/X11/fonts/TrueType към параметъра catalogue във файла /etc/X11/fs/config. В шрифтовия сървър xfs-xtt това е файлът /etc/X11/fs-xtt/config. За да видите резултат веднага след като инсталирате шрифтовете, изпълнете командата

# /etc/init.d/xfs reload

или ако използвате xfs-xtt:

# /etc/init.d/xfs-xtt reload

Ако не използвате шрифтов сървър, копирайте цялата секция Files на /etc/X11/XF86Config-4 в края на файла, задължително след реда (ако го има):

### END DEBCONF SECTION

Добавете /usr/lib/X11/fonts/TrueType в началото на списъка с директориите.

Използване като Xft шрифтове

Не е нужно да правите каквото и да е -- директорията на шрифтовете е част от подразбиращата се конфигурация. Между другото във FontConfig, която система не е част от Дебиан 3.0, инсталирането на TrueType шрифтове се свежда до копиране на *.ttf файловете в директорията ~/.fonts.

Възможно е обаче да искате да конфигурирате Xft. Подробности могат да се намерят в XFree86 Font De-uglification HOWTO. Обикновено най-желаната конфигурация се свежда до добавяне на следните редове към /etc/X11/XftConfig:

match
        any size > 8
        any size < 15
edit 
        antialias = false;

Това забранява изглаждането на шрифтове с големина между 8 и 15 пункта.

xfs: Шрифтов сървър

Инсталирането на шрифтов сървър, като например xfs или xfs-xtt, е препоръчително. Изпoлзвайте xfs. За да получите по-добри резултати, в края на файла /etc/X11/XF86Config-4, задължително след реда (ако го има)

### END DEBCONF SECTION

вмъкнете следното:

Section "Files"
        FontPath        "unix:/7100"    # xfs port
EndSection "Files"


Nikola Antonov 2004-10-31