ударено ѝ (и други букви) в X с нестандартна клавиатура

Posted by симо on 2008/03/09

Набързо, за да не забравя как се прави.

  1. Проблем: layout-а на Х за кирилица не работи като хората на японска клавиатура, понеже на нея keycodes са разположени не както “трябва”. Липсват някои не особено важни букви, примерно ю, ш, щ и ь (руските э, ы и ё също не се показват), а ударено ѝ няма и за български компютри. ;)
  2. Алтернативи: има две — да се поправи layout файла или да се пренастроят клавишите с xmodmap. Понеже става дума само за няколко букви (и клавиши по мой вкус), вторият вариант ми се видя по-читав. Така хем четенето е по-малко, хем не се ровя по файлове, инсталирани от package manager-а.
  3. Какво трябва:
    1. инсталация на Х (в моя случай, xorg 7.3)
    2. конфигурация на клавиатурата в xorg.config
    3. xev (1.0.2, в 7.3 идва като отделен пакет)
    4. xmodmap (1.0.3, също)
  4. Как се прави:
    1. Избираме си клавиши
    2. Пускаме xev, проверяваме (като юзерите, с натискане) кои са keycodes за избраните клавиши:
      #xev | grep keycode
      state 0x0, keycode 211 (keysym 0xffe4, Control_R), same_screen YES,
      state 0x4, keycode 109 (keysym 0xfe08, ISO_Next_Group), same_screen YES,
      state 0x0, keycode 61 (keysym 0x2f, slash), same_screen YES,
    3. Намираме имената на символите, които искаме да поставим върху клавишите (в 7.3 може да се ползват директно unicode character codes, форматът е Uxxxx)
    4. Пишем файл .Xmodmap, който се състои от един ред за всеки хардуерен код и кодове на буквите (за всеки режим на въвеждане може да се зададе различна буква):
      keycode [Hardware код на избрания клавиш] = [Име/код на желаната буква]+ 

      keycode 211 = backslash underscore U045D Cyrillic_e
    5. Рестартираме Х-а (аз ползвам startx) и новите букви са си където трябва!

Бих се радвал някой да ме светне дали може да се направи нещо подобно за операционната система на монополистите.

Leave a Comment

If you would like to make a comment, please fill out the form below.

Name (required)

Email (required)

Website

Comments

Powered by WP Hashcash

© Copyright simoivanov.com | Credits: Wordpress | Speckyboy