По празниците отново се озовах в София. Използвах случая за да обновя системата на лаптопа на Елена. Без много да му мисля (нали знаех решението на проблема с GNOME) изплющях:
apt-get update
apt-get dist-upgrade
Всичко се обнови както си му е реда, GNOME не се прецака при обновяването, само дето забравих да включа pcmcia-модулите на новото ядро. Дебиан ме предупреди с големи надписи, но аз надменно ги подминах без да съзнавам, че всъщност работя на лаптоп без вградена мрежова карта и мрежата ми зависи изцяло от PCMCIA. Рестартирах системата, оказах се без мрежа, разбрах каква глупост съм сторил и легнах да спя.
Сутринта с помощта на обикновена дискета качих липсващите модули и върнах машината към света. Усмихнах се, изправен пред друг проблем -- превключването между латиница и кирилица в X. Елена (както в прочем и аз) е свикнала да използва десен Alt за превключване на режимите. Но при обновяването на Дебиан идва XFree86 4.3, който не ще да превключва от кирилица на латиница с AltGr. Преди няколко седмици бях изпищял заради това, но тогава Сашо Шопов ми помогна предлагайки да използвам десен Win, който стои точно до Alt. Хубаво, ама клавиатурата на Елена е със 102-клавиша, там няма Win и Menu...
Запретнах ръкави и се зарових в дефинициите и настройките на XKB. Междувременно отидохме на гости у Илия. Елена и Илийката взеха да готвят кокошка на фурна, а аз продължих да хаквам XKB (това му е хубавото на лаптопа, можеш да си го носиш навсякъде и да си го човъркаш без оглед на пространство и време). Илия ми отвори една бира и аз зачетох An Unreliable Guide to XKB Configuration. На втората бира вече го бях прочел и разглеждах файловете в /etc/X11/xkb. Голяма работа върши инструмента xev. С него забелязах, че когато си на латиница (us) и натиснеш десен Alt, системата разбира, че си натиснал ISO_Next_Group и сменя групата на bg. Оттам нататък събитията от този клавиш вече се интерпретират просто като чист RAlt и няма никакъв намек за ISO_Next_Group. (Апропо, очарован съм от програмата xprint. Авторът й определено трябва да обича хората, за да напише тази програма.) Очевидно на десния Alt трябва да е обърнато някакво особено внимание в дефинициите на българската клавиатурна подредба.
След известно боричкане по метода на пробите и грешките, стигнах до следното решение:
Файлът с дефинициите на българсктие символи е /etc/X11/xkb/symbols/pc/bg. Той се отваря с обикновен текстов редактор и редовете, започващи с:
key <RALT>
трябва да се блокират с коментар, ето така:
// key <RALT>
Трябва да има два подобни реда -- по един за bds и phonetic. След това се извиква стандартната команда:
setxkbmap -rules xfree86 -model pc102 -layout "us,bg" -variant "basic,phonetic" -option "grp:toggle,grp_led:scroll"
Оттук нататък клавиатурата се превключва с десен Alt, "Scroll Lock" свети за да индикира български език. :-)
Впрочем Илийката има перфектна клавиатура "Chicony", произведена през 1988 г. Рай за пръстите. Бих му я свил ако бях по-лош човек. ;-)



