Инвертирование роли нажатия shift+number

есть ли любой способ инвертировать роль Сдвига действия клавиатуры + [1.. 9]? В основном я использую символы на числах намного чаще, чем сами числа. У меня есть цифровая клавиатура для чисел. И много этих символов используется в кодировании и латексе. Таким образом, если кто-либо знает, как я могу добраться! # % $ ^&* () без использования сдвига я был бы значительно благодарен.

6
задан 16 August 2012 в 20:25

1 ответ

Это на самом деле довольно легко достигнуть использования xmodmap. Просто сделайте новый файл со следующим:

keycode  10 = exclam 1 exclam 1
keycode  11 = at 2 at 2
keycode  12 = numbersign 3 numbersign 3
keycode  13 = dollar 4 dollar 4
keycode  14 = percent 5 percent 5
keycode  15 = asciicircum 6 asciicircum 6
keycode  16 = ampersand 7 ampersand 7
keycode  17 = asterisk 8 asterisk 8
keycode  18 = parenleft 9 parenleft 9
keycode  19 = parenright 0 parenright 0

Сохраните его в корне Вашего корневого каталога как.Xmodmap (капитализация важна). Теперь, просто выйдите из системы и въезжайте задним ходом (Вам, вероятно, придется перезагрузить), и Ваши ключи будут подкачаны. Продолжайте читать для того, как я придумал это. Информация я раньше понимал это, прибыла отсюда. Включите терминал и введите следующую команду:

xmodmap -pke

Это выложит набор кода клавиши, устанавливающего/оценивать пар, как это:

......
keycode  27 = r R r R
keycode  28 = t T t T
keycode  29 = y Y y Y
keycode  30 = u U u U
keycode  31 = i I i I
keycode  32 = o O o O
keycode  33 = p P p P
keycode  34 = bracketleft braceleft bracketleft braceleft
keycode  35 = bracketright braceright bracketright braceright
keycode  36 = Return NoSymbol Return
keycode  37 = Control_L NoSymbol Control_L
keycode  38 = a A a A
keycode  39 = s S s S
keycode  40 = d D d D
keycode  41 = f F f F
keycode  42 = g G g G
keycode  43 = h H h H
keycode  44 = j J j J
keycode  45 = k K k K
......

Код клавиши является ключом на Вашей физической клавиатуре, и значение справа от равняется знаку, то, что отправляется на Ваш ПК. Причина там четыре, является первым, просто, второй - со сдвигом, нажатым, и третьи (плоскость) и дальше (сдвиг), кажется, включены, после того как Вы нажимаете кнопку Scroll Lock. Как Вы видите, это дает Вам большую гибкость, чтобы сделать независимо от того, что можно выдумать для изменения клавиатуры.

Теперь, это будет только работать, когда Вы будете зарегистрированы к X (как в GUI), отсюда имя. Если Вы включаете терминал в Gnome, Единице, и т.д. Вы - все еще хорошее использование Xmodmap, но если Вы захотите ту же функциональность в консоли (т.е. после нажатия CTRL+ALT+1, sshing в поле, работающее над сервером или ПК без GUI), то необходимо будет использовать loadkeys. Хотя общее представление является тем же, loadkeys предлагает намного больше функциональности и гранулярности, таким образом, это немного более сложно. Теперь, эти команды, все ДОЛЖНЫ быть сделаны от фактической консоли, они не могут быть сделаны с эмулятором терминала, или Вы получите ошибку, как это: Couldn't get a file descriptor referring to the console.

Сначала мы должны будем создать нашу контурную карту по умолчанию, как это:

dumpkeys > ~/my_keymap.map

Это была бы хорошая идея сделать копию из этого в случае, если Вы действительно портите его. Теперь, мы просто должны отредактировать его с нашими изменениями. Каждое ключевое определение похоже на это:

keycode   2 = one              exclam           one              one             
    alt keycode   2 = Meta_one        
    shift   alt keycode   2 = Meta_exclam     
    altgr   alt keycode   2 = Meta_one        
    shift   altgr   alt keycode   2 = Meta_one        
    shiftl  keycode   2 = one             
    shift   shiftl  keycode   2 = exclam          
    altgr   shiftl  keycode   2 = one             
    shift   altgr   shiftl  keycode   2 = one             
    alt shiftl  keycode   2 = Meta_one        
    shift   alt shiftl  keycode   2 = Meta_exclam     
    altgr   alt shiftl  keycode   2 = Meta_one        
    shift   altgr   alt shiftl  keycode   2 = Meta_one        
    shiftr  keycode   2 = one             
    shift   shiftr  keycode   2 = exclam          
    altgr   shiftr  keycode   2 = one             
    shift   altgr   shiftr  keycode   2 = one             
    alt shiftr  keycode   2 = Meta_one        
    shift   alt shiftr  keycode   2 = Meta_exclam     
    altgr   alt shiftr  keycode   2 = Meta_one        
    shift   altgr   alt shiftr  keycode   2 = Meta_one        
    shiftl  shiftr  keycode   2 = one             
    shift   shiftl  shiftr  keycode   2 = exclam          
    altgr   shiftl  shiftr  keycode   2 = one             
    shift   altgr   shiftl  shiftr  keycode   2 = one             
    alt shiftl  shiftr  keycode   2 = Meta_one        
    shift   alt shiftl  shiftr  keycode   2 = Meta_exclam     
    altgr   alt shiftl  shiftr  keycode   2 = Meta_one        
    shift   altgr   alt shiftl  shiftr  keycode   2 = Meta_one        
    ctrll   keycode   2 = one             
    shift   ctrll   keycode   2 = exclam          
    altgr   ctrll   keycode   2 = one             
    shift   altgr   ctrll   keycode   2 = one             
    alt ctrll   keycode   2 = Meta_one        
    shift   alt ctrll   keycode   2 = Meta_exclam     
    altgr   alt ctrll   keycode   2 = Meta_one        
    shift   altgr   alt ctrll   keycode   2 = Meta_one        
    shiftl  ctrll   keycode   2 = one             
    shift   shiftl  ctrll   keycode   2 = exclam          
    altgr   shiftl  ctrll   keycode   2 = one             
    shift   altgr   shiftl  ctrll   keycode   2 = one             
    alt shiftl  ctrll   keycode   2 = Meta_one        
    shift   alt shiftl  ctrll   keycode   2 = Meta_exclam     
    altgr   alt shiftl  ctrll   keycode   2 = Meta_one        
    shift   altgr   alt shiftl  ctrll   keycode   2 = Meta_one        
    shiftr  ctrll   keycode   2 = one             
    shift   shiftr  ctrll   keycode   2 = exclam          
    altgr   shiftr  ctrll   keycode   2 = one             
    shift   altgr   shiftr  ctrll   keycode   2 = one             
    alt shiftr  ctrll   keycode   2 = Meta_one        
    shift   alt shiftr  ctrll   keycode   2 = Meta_exclam     
    altgr   alt shiftr  ctrll   keycode   2 = Meta_one        
    shift   altgr   alt shiftr  ctrll   keycode   2 = Meta_one        
    shiftl  shiftr  ctrll   keycode   2 = one             
    shift   shiftl  shiftr  ctrll   keycode   2 = exclam          
    altgr   shiftl  shiftr  ctrll   keycode   2 = one             
    shift   altgr   shiftl  shiftr  ctrll   keycode   2 = one             
    alt shiftl  shiftr  ctrll   keycode   2 = Meta_one        
    shift   alt shiftl  shiftr  ctrll   keycode   2 = Meta_exclam     
    altgr   alt shiftl  shiftr  ctrll   keycode   2 = Meta_one        
    shift   altgr   alt shiftl  shiftr  ctrll   keycode   2 = Meta_one 

Как Вы видите, это предлагает намного больше функциональности/гранулярности. Для каждого ключа просто подкачайте сдвиг и регулярные значения, т.е. вот был бы подкачанный ключ:

keycode   2 = exclam              one           exclam              exclam             
    alt keycode   2 = Meta_exclam        
    shift   alt keycode   2 = Meta_one     
    altgr   alt keycode   2 = Meta_exclam        
    shift   altgr   alt keycode   2 = Meta_exclam        
    shiftl  keycode   2 = exclam             
    shift   shiftl  keycode   2 = one          
    altgr   shiftl  keycode   2 = exclam             
    shift   altgr   shiftl  keycode   2 = exclam             
    alt shiftl  keycode   2 = Meta_exclam        
    shift   alt shiftl  keycode   2 = Meta_one     
    altgr   alt shiftl  keycode   2 = Meta_exclam        
    shift   altgr   alt shiftl  keycode   2 = Meta_exclam        
    shiftr  keycode   2 = exclam             
    shift   shiftr  keycode   2 = one          
    altgr   shiftr  keycode   2 = exclam             
    shift   altgr   shiftr  keycode   2 = exclam             
    alt shiftr  keycode   2 = Meta_exclam        
    shift   alt shiftr  keycode   2 = Meta_one     
    altgr   alt shiftr  keycode   2 = Meta_exclam        
    shift   altgr   alt shiftr  keycode   2 = Meta_exclam        
    shiftl  shiftr  keycode   2 = exclam             
    shift   shiftl  shiftr  keycode   2 = one          
    altgr   shiftl  shiftr  keycode   2 = exclam             
    shift   altgr   shiftl  shiftr  keycode   2 = exclam             
    alt shiftl  shiftr  keycode   2 = Meta_exclam        
    shift   alt shiftl  shiftr  keycode   2 = Meta_one     
    altgr   alt shiftl  shiftr  keycode   2 = Meta_exclam        
    shift   altgr   alt shiftl  shiftr  keycode   2 = Meta_exclam        
    ctrll   keycode   2 = exclam             
    shift   ctrll   keycode   2 = one          
    altgr   ctrll   keycode   2 = exclam             
    shift   altgr   ctrll   keycode   2 = exclam             
    alt ctrll   keycode   2 = Meta_exclam        
    shift   alt ctrll   keycode   2 = Meta_one     
    altgr   alt ctrll   keycode   2 = Meta_exclam        
    shift   altgr   alt ctrll   keycode   2 = Meta_exclam        
    shiftl  ctrll   keycode   2 = exclam             
    shift   shiftl  ctrll   keycode   2 = one          
    altgr   shiftl  ctrll   keycode   2 = exclam             
    shift   altgr   shiftl  ctrll   keycode   2 = exclam             
    alt shiftl  ctrll   keycode   2 = Meta_exclam        
    shift   alt shiftl  ctrll   keycode   2 = Meta_exclam     
    altgr   alt shiftl  ctrll   keycode   2 = Meta_exclam        
    shift   altgr   alt shiftl  ctrll   keycode   2 = Meta_exclam        
    shiftr  ctrll   keycode   2 = exclam             
    shift   shiftr  ctrll   keycode   2 = one          
    altgr   shiftr  ctrll   keycode   2 = exclam             
    shift   altgr   shiftr  ctrll   keycode   2 = exclam             
    alt shiftr  ctrll   keycode   2 = Meta_exclam        
    shift   alt shiftr  ctrll   keycode   2 = Meta_one     
    altgr   alt shiftr  ctrll   keycode   2 = Meta_exclam        
    shift   altgr   alt shiftr  ctrll   keycode   2 = Meta_exclam        
    shiftl  shiftr  ctrll   keycode   2 = exclam             
    shift   shiftl  shiftr  ctrll   keycode   2 = one          
    altgr   shiftl  shiftr  ctrll   keycode   2 = exclam             
    shift   altgr   shiftl  shiftr  ctrll   keycode   2 = exclam             
    alt shiftl  shiftr  ctrll   keycode   2 = Meta_exclam        
    shift   alt shiftl  shiftr  ctrll   keycode   2 = Meta_one     
    altgr   alt shiftl  shiftr  ctrll   keycode   2 = Meta_exclam        
    shift   altgr   alt shiftl  shiftr  ctrll   keycode   2 = Meta_exclam

Причина дополнительной гранулярности, то, потому что Вы склонны использовать намного больше сочетаний клавиш при использовании консоли, из-за, он - природа.

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

loadkeys ~/my_keymap.map

Игра вокруг, используйте некоторые программы, которые Вы обычно используете и удостоверяетесь, что она работает способ, которым Вы хотите. Если Вы испортили, можно просто использовать loadkeys команда для отступания к значению по умолчанию. Для создания этого постоянным можно добавить команду в конец Вашего ~/.bashrc файл.

4
ответ дан 16 August 2012 в 20:25

Другие вопросы по тегам:

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