Как сделать ключ Caps Lock третьим ключом Shift?

16

Как заставить ключ Caps Lock работать как другой ключ Shift?

Здесь много вопросов о переназначении или запуске пользовательской команды. Я просто хочу, чтобы он работал как другой клавиша Shift. Я не хочу, чтобы какие-либо другие ключи меняли то, что они делают, только один.

Keyboard Layout / Caps Lock не работает, я не понимаю, как переназначить его в CCSM.

Сейчас я использую английскую клавиатуру, но я научился печатать на клавиатуре США, меньшая левая клавиша Shift - ДВИЖЕНИЕ МЕНЯ.

    
задан Tom Brossman 26.11.2011 в 09:34
источник

4 ответа

11

Расширение ответа @ Zacharee1:

сделать резервную копию с cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

затем отредактируйте с помощью gksu gedit /usr/share/X11/xkb/symbols/pc или вашего любимого редактора.

Найдите строку (22), которая гласит:

key <CAPS> { [ Caps_Lock ] };

и измените его на

key <CAPS> { [ Shift_L ] };

и строку (36), которая гласит:

modifier_map Lock { Caps_Lock };

и измените его на

//modifier_map Lock { Caps_Lock }; (который должен прокомментировать это, по сути отключив блокировку)

Тестирование указывает, что Num Lock работает по-прежнему. Дальнейшее тестирование указывает на то, что индикаторная лампа клавиатуры кажется немного дислексической в 16.04 даже в немодифицированной системе. Индикатор прокрутки блокировки включен при регистрации, но блокировка прокрутки и индикатор Num Lock выключены, но Num Lock включен. Нажатие левой клавиши Ctrl , похоже, разрешает это поведение, и я не уверен, связано ли это с моим использованием переключателя KVM (что возможно)

Примечание. Дальнейшее тестирование показывает, что индикатор NumLock нечеткий , даже без переключателя KVM, и его нужно дважды нажать, чтобы синхронизировать с NumLock. Если вы всегда оставите его, вы можете игнорируйте свет, или если это вас беспокоит, вы можете дважды нажать его, чтобы синхронизировать его. Почему это происходит, вероятно, является основой для нового вопроса ...

Другим простым решением вашей исходной проблемы было бы просто получить недорогую клавиатуру США и использовать клавиатуру США отображение.

Источники: @ Zacharee1 ответ и анализ /usr/share/X11/xkb/symbols/pc и тестирование проб и ошибок

    
ответ дан Elder Geek 03.09.2016 в 12:15
источник
10

Вы можете попасть туда, адаптировав Как изменить ключ CapsLock для создания "A"? (например).

Удалите модификатор Lock (= Caps Lock) из ключа Caps Lock и объявите, что этот ключ отправляет Shift_L keysym.

remove Lock = Caps_Lock
keysym Caps_Lock = Shift_L

В качестве альтернативы вы можете удалить модификатор Lock и добавить модификатор Shift .

remove Lock = Caps_Lock
add Shift = Caps_Lock

В любом случае эти строки попадают в файл ~/.Xmodmap . Протестируйте, загрузив его xmodmap ~/.Xmodmap ; файл читается автоматически при входе в среду по умолчанию (или, по крайней мере, в дни Gnome).

    
ответ дан Gilles 26.11.2011 в 15:13
7

Игнорируя мои предыдущие попытки ответить на это, я нашел что-то, что полностью превращает капсюль в левый сдвиг. Нет переключений, я думаю, что это настойчиво, и это довольно просто.

Во-первых, я рекомендую сделать резервную копию, прежде чем я расскажу, как ее изменить.

Выполнить sudo cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

Теперь, когда есть резервная копия, давайте перейдем к редактированию.

Используйте свой любимый текстовый редактор для редактирования этого файла с правами root:

/usr/share/X11/xkb/symbols/pc

Найдите сегмент, который выглядит так (он находится рядом с верхней частью, строка 22 для меня):

key  <TAB> {    [ Tab,  ISO_Left_Tab    ]   };
key <RTRN> {    [ Return                ]   };

key <CAPS> {    [ Caps_lock             ]   };
key <NMLK> {    [ Num_Lock              ]   };

изменить

key <CAPS>  {   [ Caps_lock             ]   };

быть

key <CAPS> {    [ Shift_L, Caps_Lock    ]   };

вместо этого. ( Caps_Lock после Shift_L, может быть ненужным.)

Перезагрузите диспетчер дисплеев (обычно sudo service lightdm restart ), а caplock теперь будет сдвинут влево. ( Примечание: Мой тестовый компьютер использует GNOME, поэтому мне пришлось перезапустить gdm . Однако это вызвало некоторое странное мерцание в резервном TTY, а gdm никогда не перезапускалось. Мне пришлось полностью перезагрузиться. )

Этот я действительно смог проверить и подтвердить, что он работает.

Адаптировано из постоянного xmodmap в Ubuntu 13.04

    
ответ дан TheWanderer 31.08.2016 в 22:14
3

Для 14.04

Однострочный:

xmodmap -e 'keycode 66=Shift_L'

НО , в непредвиденном случае 66 не является правильным кодом ключа, сначала запустите xev в консоли и нажмите CapsLock . Затем вы увидите что-то вроде:

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x101, subw 0x0, time 6417361, (340,373), root:(342,393),
    state 0x0, keycode XX (keysym 0x0207, Caps_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

Правильный ключевой код - тот, который указан в XX .

    
ответ дан user308164 31.08.2016 в 22:26