Эмулируйте Цифровую клавиатуру в Linux

Мой ноутбук не имеет цифровой клавиатуры, даже те, в которых он активируется ключом FN.

Когда я использовал окна, я использовал AutoHotkey со сценарием, что я заменил ключи QWEASDZXC 789456123, и если я хочу отключить его, просто нуждаются к типу F12.

Существует ли способ сделать это в Linux?

2
задан 2 April 2017 в 17:49

1 ответ

Я могу придумать пару способов сделать это с XKB, но это не для слабонервных.

  1. Сделайте опцию пользовательского символа , которая добавляет ваши номера к «level3» или «level5» выбранных вами клавиш. ( AltGr - это клавиша ISO_Level3_Shift, используемая в раскладках не для США и США для международных символов.) Обычно эти клавиши действуют как Shift - вам придется удерживать их, пока вы набираете цифры. Но ваш новый вариант может сделать их более похожими на CapsLock , если предпочтительнее. Такая опция затем переопределит привязки по умолчанию вашего макета для этих букв, чтобы добавить цифры.

    // emulate numpad on first 3 columns of alphabetic keys
    // initial key definitions from /usr/share/X11/xkb/symbols/us
    // ("intl" stanza)
    partial 
    xkb_symbols "qweasdzxc" {
    
        // numbers on level3 (RightAlt chooses lv3)
        include "level3(ralt_switch)"
        key <AD01> { [ q, Q, 7, division ] };
        key <AD02> { [ w, W, 8, multiply ] };
        key <AD03> { [ e, E, 9,    minus ] };
        // etc ...
    
        // OR ...
    
        // numbers on level5 (RightCtrl chooses lv5)
        include "level5(rctrl_switch)"
        key <AD01> { [ q, Q, adiaeresis,  Adiaeresis,  7,  division ] };
        key <AD02> { [ w, W,      aring,       Aring,  8,  multiply ] };
        key <AD03> { [ e, E,     eacute,      Eacute,  9,     minus ] };
        // etc ...
    
    }; // end "qweasdzxc"
    
    
    // rules to load this as an option
    ! option         = symbols
      lv3:qweasdzxc  = +filename(qweasdzxc)
    
    
    // load from commandline. may need -I/path/to/custom/xkb
    setxkbmap -layout us -option lv3:qweasdzxc
    
  2. Создайте пустой макет, который генерирует только те цифры на этих клавишах и никаких других буквенно-цифровых символов. При загрузке в качестве второго макета у вас будет предопределенная клавиша переключения макетов, и вы будете использовать ее для переключения между вашим основным макетом и этим. Опять же, ключ переключения макета может быть настроен как Shift (переключать макеты только во время удержания) или CapsLock .

    // emulate numpad on first 3 columns of alphabetic keys
    // leave other alphanumeric keys undefined
    // otherwise from /usr/share/X11/xkb/symbols/us (basic stanza)
    default partial alphanumeric_keys modifier_keys
    xkb_symbols "qweasdzxc" {
    
        name[Group1]= "Numpad Emulation";
    
        key <AD01> { [ 7, division ] }; // q
        key <AD02> { [ 8, multiply ] }; // w
        key <AD03> { [ 9,    minus ] }; // e
    
        key <AC01> { [ 4,        F ] }; // a
        key <AC02> { [ 5,        E ] }; // s
        key <AC03> { [ 6,        D ] }; // d
    
        key <AB01> { [ 1,        C ] }; // z
        key <AB02> { [ 2,        B ] }; // x
        key <AB03> { [ 3,        A ] }; // c
        // hexadecimal just for fun, replace if desired
    
    }; // end "qweasdzxc"
    
    
    // rules to load this as a layout
    ! layout         = symbols
      qweasdzxc      = qweasdzxc
    
    
    // load from commandline. may need -I/path/to/custom/xkb
    setxkbmap -layout us,qweasdzxc -option grp:caps_toggle
    

Любая из этих опций может быть реализована путем изменения системных файлов XKB в /usr/share/X11/xkb/{symbols,rules} или путем сохранения настроек в локальных файлах конфигурации XKB . Изменения в системных файлах могут быть удалены обновлением пакета xkeyboard-config, но их проще использовать с инструментами настройки макета системы, такими как /etc/default/keyboard или демон настроек GNOME.

1
ответ дан 2 December 2019 в 04:49

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

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