Как поменять местами клавиши Z и Y на клавиатуре?

12

Большую часть времени я использую американскую раскладку qwerty, но время от времени мне также приходится использовать немецкую раскладку qwertz, и это очень раздражает.

Как поменять местами клавиши y и z на немецком макете?


Решение было по этой ссылке: пользовательская раскладка клавиатуры в Ubuntu (или просто Linux :) любезно предоставлена ​​gertvdijk в своем ответе.

NB. В последних версиях Ubuntu вы должны оформить sudo dpkg-reconfigure xkb-dataизменения, чтобы изменения вступили в силу. Смотрите этот ответ .

Али
источник

Ответы:

10

Это практическое руководство должно помочь в общесистемном переназначении клавиатуры для отдельных клавиш: FAQ: Как отключить / переназначить клавиатуру в Linux?

И это руководство о создании ваших собственных пользовательских раскладок клавиатуры: Custom Keyboard Layout в Ubuntu (или просто Linux :)

Это не позволит вам изменить его быстро с помощью ярлыка. Я думаю, тебе понадобятся сценарии.


Однако с первой редакции вашего вопроса я предположил, что вы хотите изменить макеты. Вы пересмотрели свой вопрос, но вот как изменить макеты:

Исходя из тегов, я предполагаю, что вы используете Kubuntu (KDE) 12.04, довольно просто меняя макеты:

  1. Откройте «Системные настройки»
  2. Откройте «Устройства ввода»
  3. Выберите «Клавиатура» на левой вертикальной вкладке.
  4. Выберите «Макеты» на горизонтальной вкладке.
  5. Установите флажок «Настроить макеты».
  6. Добавьте предпочитаемые раскладки клавиатуры, нажав кнопку «Добавить» и заполнив поля в диалоговом окне. Выбор английского (США) макета приведет к «qwerty». - При необходимости настройте сочетание клавиш для быстрого изменения раскладок.
  7. Нажмите применить.

Диалог настройки клавиатуры KDE

Это должно охватывать раскладку клавиатуры и поведение в вашей пользовательской сессии. Для общесистемных настроек, включая текстовую консоль, см. Этот вопрос .

gertvdijk
источник
Да, вот как я добавил немецкую клавиатуру. Но это не отвечает на мой вопрос: как я могу изменить раскладку qwertz German на qwerty?
Али
@ Али: Добавить макет на английском (США) и активировать его?
gertvdijk
1
Извините, я не следую. Я доволен макетом в США, и когда я перехожу на макет DE, у меня следует менять местами y и z, как в макете в США. Это мой вопрос.
Али
@ Али: Тогда я не слежу за твоим вопросом. Переключение раскладок, как это работает для меня.
gertvdijk
Я не хочу менять макет. Учитывая расположение (немецкий), как я могу переключать клавиши y и z?
Али
4

Это очень просто. Вы должны отредактировать немецкий файл макета; так что откройте его через терминал ( Ctrl+ Alt+ T):

sudo gedit /usr/share/X11/xkb/symbols/de

В открывшемся файле вы можете увидеть «z» в 27-й строке:

    key <AD06>  { [         z,          Z,    leftarrow,          yen ] };

и «у» на 38-й строке:

    key <AB01>  { [         y,          Y,       guillemotright,    U203A   ] };

Все , что вам нужно сделать , это переключатель у «ы и г «с. Затем сохраните файл и закройте его.

Выйдите из системы один раз и войдите снова, чтобы увидеть результат.

Алиня
источник
Иногда это изменение не имеет никакого эффекта. Удалите *.xkmфайлы, /var/lib/xkbчтобы новая таблица ключей перекомпилировалась. Смотрите эту ссылку .
Janosdivenyi
@janosdivenyi, в последних версиях Ubuntu, конечно. Смотрите этот ответ .
AliN
3

Теперь я могу выбрать немецкий язык (qwerty) на рабочем столе Unity в 14.04:

введите описание изображения здесь

Это дает мне именно то , что я хочу.

Также возможно переключиться на эту конкретную раскладку в терминале:

setxkbmap -layout de -variant qwerty

Нет необходимости возиться с файлами раскладки клавиатуры системы!

Али
источник
@mrk Пожалуйста, разместите его как новый вопрос. Я не могу рассказать, что произошло в вашей системе, не зная деталей. Не оставляйте это в комментариях, разместите новый вопрос.
Али
2

Для включения zи yклавиши в вашем X (графический) сессии, выполните следующую команду в терминале в сессии:

a=52;b=29;c=xmodmap;d="$c -e '";$c -pke | sed -nr "s/^(keycode *)$b(.*)/$d\1$a\2'/p;t;s/^(keycode *)$a(.*)/$d\1$b\2'/p" | sh

user4514
источник
Работает сначала, увижу после перезагрузки.
Goran_Ilic_Ilke