Используйте setxkbmap для свопинга Сдвига влево и Контроля, из-под Которого выходят,

В Debian и пакетах Ubuntu, версия указана в debian/changelog файл, и это разработано так, чтобы все пакеты, сгенерированные исходным пакетом, имели ту же самую версию.

17
05.03.2013, 11:58
1 ответ

xmodmap является устаревшим; так действительно это должно быть, покончили xkb инструменты.

Подкачка, которую Вы хотите, кажется, не включена по умолчанию файлы wth X11; таким образом, необходимо записать это сами.

Страница http://madduck.net/docs/extending-xkb/ помогла мне понять и найти способ сделать это.

Создайте файл ~/.xkb/keymap/mykbd куда Вы помещаете вывод setxkbmap, это будет Ваше основное определение клавиатуры; например:

setxkbmap -print > ~/.xkb/keymap/mykbd

затем, создайте файл символов, чтобы определить Ваш ключевой свопинг, поместить его, например, в ~/.xkb/symbols/myswap

там, поместите следующие строки:

partial modifier_keys
xkb_symbols "swap_l_shift_ctrl" {
    replace key <LCTL>  { [ Shift_L ] };
    replace key <LFSH> { [ Control_L ] };
};

затем, отредактируйте ~/.xkb/keymap/mykbd файл и изменение xkb_symbols строка для добавления

+myswap(swap_l_shift_ctrl)

наконец, можно загрузить его xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY (Вы не можете использовать "~" для -I параметр). Это, вероятно, плюнет большим количеством предупреждений о неопределенных символах для некоторых редких ключей, но можно проигнорировать их (например, ошибка перенаправления к dave: 2> /dev/null).

Если Вы хотите смочь легко подкачать между нормальным и Вашим инвертированным ctrl/shift один; просто создайте под ~/.xkb/keymap/ другой файл, без дополнительной "myswap" опции и загрузки это с xkbcomp. Можно сделать два маленьких сценария для загрузки их.

28
27.01.2020, 19:46
  • 1
    Спасибо. Это действительно работает, но на этот раз. Проблема состоит в том, что я использую входной механизм под названием IBus. Каждый раз, когда я переключил метод ввода и затем обратно нажатием клавиши "Ctrl + Space", Сдвиг влево и Контроль, из-под Которого выходят, переключаются назад. Любое предложение о том, как избежать его. –  day 21.02.2013, 16:44
  • 2
    mmn, возможно, IBus делает самостоятельно некоторые переопределения действия клавиши. попробовать xkbcomp $DISPLAY some.dump после и прежде, чем назвать IBus, и делают разность двух дампов (это - полное определение клавиатуры); Вы будете, вероятно, видеть различия. –  Pablo Saratxaga 22.02.2013, 12:09
  • 3
    Хм, это делает, как раздражающий. Какая-либо идея избавиться от проблемы? Заметьте что команда setxkbmap -option caps:escape работы. IBus помнил подкачанные ключи Esc и ключи Caps_Lock, Но он не делает для подкачанного Сдвига влево и Левых Клавиш CTRL. –  day 22.02.2013, 19:14
  • 4
    , возможно, IBus читают клавиатуру при запуске. Попытайтесь разгрузить IBus, изменив Вашу клавиатуру, и загрузив его снова. Если проблема сохраняется, то конкретный вопрос IBus должен быть сделан (и возможно сообщить об ошибке; по моему скромному мнению, это, IBus должен обнаружить изменения клавиатуры и соблюдать их) –  Pablo Saratxaga 24.02.2013, 09:11
  • 5
    Привет. Кто-либо может сказать мне, как я использовал бы ту же технику для свопинга оставленный клавишу Alt с левой Клавишей CTRL? Я пытался изменить myswap файл на: частичные modifier_keys xkb_symbols "swap_l_shift_ctrl" {заменяют ключ <LCTL> {[Alt_L]}; замените ключ <LALT> {[Control_L]};}; но это не работало. TIA!!! –  Neil Girardi 29.03.2016, 18:56

Теги

Похожие вопросы