2

Я использую клавиатуру Apple, которая имеет некоторые неудобства по сравнению с другими клавиатурами. А именно, клавиши Alt_L и Super_L поменялись местами, а клавиши с полосой и меньше поменялись местами («|» и «<»).

Я написал файл Xmodmap для замены ключей:

keycode  49 = less greater less greater onehalf threequarters
keycode  64 = Super_L NoSymbol Super_L
keycode  94 = bar section bar section brokenbar paragraph
keycode 108 = Super_R NoSymbol Super_R
keycode 133 = Alt_L Meta_L Alt_L Meta_L
keycode 134 = Alt_R Meta_R Alt_R Meta_R

Я сделал это, идентифицировав ключи с помощью xev и стандартного modmap xmodmap -pke и поменяв местами коды клавиш. Теперь xev идентифицирует все мои ключи как правильные, и это здорово! Я также могу использовать правильные клавиши для ввода строки и меньше символов. (Я следовал за этим ответом на askubuntu: https://askubuntu.com/q/24916/52719)

Но, похоже, изменения не очень глубокие. Например, супер ключ теперь не работает в диспетчере настроек Compiz. Сочетания клавиш Super не работают (но клавиша Alt работает). Также диалоговое окно настроек для Gnome Do не учитывает изменения в xmodmap, и я больше не могу открыть окно Gnome Do , если использую любой из переназначенных ключей.

Итак, подведем итог, все сломалось.

Я хотел бы глубже рассказать Ubuntu (или любому другому дистрибутиву Linux в этом отношении), какие клавиши находятся на клавиатуре. Есть ли способ редактировать раскладку клавиатуры напрямую? Я использую норвежскую раскладку клавиатуры Bokmål. Он находится в файле где-то, что я мог редактировать?

Любые комментарии, предыдущий опыт или соответствующие шальные мысли будут с благодарностью -

Спасибо

1 ответ1

1

Я, наконец, получил это после нескольких часов попыток. Я нашел файл, в котором скан-коды evdev преобразуются в ключевые коды xfree86 под X11, а именно /usr/share/X11/xkb/keycodes/evdev . Я открыл этот файл как root и переместил коды клавиш, используя стандартные настройки xmodmap в качестве ссылки (xmodmap -pke). Мои последние правки были довольно просты:

<LSGT> = 49; // This was 94
<TLDE> = 94; // This was 49
<LWIN> = 64; // This was 133
<LALT> = 133; // This was 64
<RWIN> = 108; // This was 134
<RALT> = 134; // This was 108

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .