Как Повторно отобразиться, КЛАВИША NUM LOCK, чтобы быть УДАЛЯЮТ?

Из-за расположения моей клавиатуры я хочу иметь numlock, постоянно нажатый и использовать клавишу Num Lock в качестве клавиши Delete. Я, может казаться, не заставляю это работать. Любые идеи о том, как сделать это, ценились бы.

Править: Я работаю на Ubuntu 16

Вот то, что я попробовал:

Используйте Xmodmap с numlockx

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

  • Создайте файл ~/.Xmodmap со строкой keycode 77 = Delete NoSymbol
  • Выполненный xmodmap ~/.Xmodmap
  • Выполненный numlockx on

Это позволяет numlock работать, как удаляют, и включает цифровую клавиатуру до первого раза, когда я нажимаю клавишу Num Lock. Затем клавиша Num Lock отключает цифровую клавиатуру.

Используйте XKB

  • Править /usr/share/X11/xkb/symbols/us иметь key <NMLK> { [Delete, Num_Lock] }; в конце основной контурной карты.
  • компьютер перезапуска

также попробованный:

  • Править /usr/share/X11/xkb/symbols/us иметь replace key <NMLK> { [Delete, Num_Lock] }; в конце основной контурной карты.
  • компьютер перезапуска

Это страдает от подобных проблем как другой метод, способность удалить работы, но клавиша Num Lock выключает цифровую клавиатуру. Это также, кажется, смешивает с другими ключами как ключ окон, когда цифровая клавиатура включена. Мне действительно нравится это, я получаю контроль numlock, использующего shift+numlock. Я не могу найти различие между использованием замены и не использованием его.

4
задан 6 April 2019 в 00:23

2 ответа

Пройдите Видео 30 секунд https://imgur.com/3eLhv14

  1. Подкачайте ключи Num_Lock и Удалите с ниже кода в ~/.xmodmaprc файл. Создайте файл, если Вы еще не присвоились для xmodmap.

Измените коды клавиши на основе своих результатов клавиатуры в ниже кода.

keycode 77 = Delete
keycode 119 = Num_Lock
clear Mod2
add Mod2 = Num_Lock
  1. Проверьте свопинг работы ключей или не после выполнения команды xmodmap ~/.xmodmaprc
  2. Если свопинг ключей работал, создайте приложение запуска для xmodmap как ниже.

enter image description here

в этой точке Вы достигли почти, что Вы хотите, который является физическим ключом, который появляется как NUMLOCK, работающий DEL и физическим ключевым DEL, работающим NUMLOCK.

  • Переключить состояние Numlock На и От Вас хотело бы использовать Ключевой NUMLOCK Shift+Physical, как Вы упомянули в Вопросе, это может быть достигнуто с xbindkeys в сочетании с xte или xdotool и т.д. для моделирования ключа Num_Lock, который является Физически клавишей DEL на данном этапе.

Вставьте ниже кода в файле ~/.xbindkeysrc.scm И ПЕРЕЗАГРУЗКА. Создайте файл, если еще не создано для xbindkeys. Измените значение "c:77" на основе результатов Вашей клавиатуры. путем выполнения xbindkeys --key и нажатие физической клавиши NUMLOCK

(xbindkey '(shift "c:77") "xte 'key Num_Lock'")

Это означает при нажатии Shift+NUMLOCK, он моделирует клавишу DEL и таким образом изменение состояния Num_Lock На и Прочь.

В ниже GIF можно наблюдать вверху слева символы 1 и Сдвиг, символ 1 переключатель, поскольку я нажимаю нажатие клавиши Shift+NUMLOCK и выпуск.

enter image description here

0
ответ дан 1 December 2019 в 10:57

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

Все это взято из: https://wiki.archlinux.org/index.php/X_keyboard_extension

Там это список доступных символов ключей, которые, кажется, работают здесь: http://docs.ev3dev.org/projects/grx/en/ev3dev-stretch/c-api/input_keysyms.html

Это делается вручную чтобы вы могли начать с конфигурации, которая уже есть на вашем компьютере, чтобы предотвратить проблемы совместимости с различными клавиатурами. Примеры предыдущих запусков этого можно увидеть в config_files / linux / keyboards

Начните с запуска xkbcomp $ DISPLAY output.xkb , чтобы получить текущую клавиатуру. настройки. Затем добавьте:

    interpret osfLeft{
        repeat= True;
        action = RedirectKey(keycode=<LEFT>, clearmodifiers=Lock);
    };
    interpret osfRight{
        repeat= True;
        action = RedirectKey(keycode=<RGHT>, clearmodifiers=Lock);
    };
    interpret osfDown{
        repeat= True;
        action = RedirectKey(keycode=<DOWN>, clearmodifiers=Lock);
    };
    interpret osfUp{
        repeat= True;
        action = RedirectKey(keycode=<UP>, clearmodifiers=Lock);
    };
    interpret osfEndLine{
        repeat= True;
        action = RedirectKey(keycode=<END>, clearmodifiers=Lock);
    };
    interpret osfBeginLine{
        repeat= True;
        action = RedirectKey(keycode=<HOME>, clearmodifiers=Lock);
    };
    interpret osfEscape{
        repeat=True;
        action = RedirectKey(keycode=<ESC>, clearmodifiers=Lock);
    };

в раздел совместимости сгенерированного файла.

Внизу раздела типов добавьте:

   type "CUST_CAPSLOCK" {
       modifiers= Shift+Lock;
       map[Shift] = Level2;            // Note that this maps Shift only of {Shift,Lock} to Level2. Alt+Shift will be mapped to Level2
       map[Shift+Lock] = Level3;       // but Lock+Shift won't map to Level2 even without this line.
       map[Lock] = Level3;
       level_name[Level1]= "Base";
       level_name[Level2]= "Shift";
       level_name[Level3]= "Lock";
   };
   interpret osfDelete{
       repeat=True;
       action = RedirectKey(keycode=<DELE>, clearmodifiers=Lock);
   };

Найдите , интерпретируйте Caps_Lock и измените LockMods на SetMods так что caps lock устанавливает только модификатор, а не блокирует его.

Чтобы разрешить capslock + WASD работать как клавиши со стрелками: отредактируйте клавиши , , , , чтобы иметь тип CUST_CAPSLOCK и иметь соответственно osfUp , osfLeft , osfDown , osfRight в третьей позиции.

Чтобы разрешить capslock + HJKL работать как клавиши со стрелками: отредактируйте клавиши , , , , чтобы иметь тип CUST_CAPSLOCK и иметь соответственно osfLeft , osfDown , osfUp , osfRight в третьей позиции.

Чтобы разрешить регистрацию capslock + 0 как home и capslock + $ как end: отредактируйте ключи и так, чтобы они имели тип CUST_CAPSLOCK и соответственно osfEndLine и osfBeginLine на третьей позиции.

Чтобы разрешить регистрацию capslock + пробел как escape (удобно для vim), отредактируйте ключ , чтобы он имел тип CUST_CAPSLOCK , имел пробел в во второй позиции и osfEscape в третьей позиции.

Чтобы превратить клавишу numlock в клавишу удаления и сделать capslock + numlock, сделайте типом CUST_CAPSLOCK , первым и вторым положением osfDelete ] и позиция три имеют Num_Lock

Теперь загрузите измененный файл обратно на сервер с помощью: xkbcomp output.xkb $ DISPLAY .

Если все работает, поместите файл куда-нибудь, ~ / .Xkeymap работает и создайте сценарий, например, с именем ~ / start_keyboard.sh с:

#!/bin/bash

xkbcomp ~/.Xkeymap $DISPLAY

Сделайте его исполняемым ( chmod u + x ~ / start_keyboard.sh ) и добавьте сценарий в свои автозагрузочные приложения.

1
ответ дан 13 January 2020 в 16:16

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

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