Держите NumLock всегда включенным

У меня есть стандартная клавиатура с числовыми клавишами с правой стороны (я думаю, это называется клавиатурой с 104 клавишами). Я хочу использовать цифровые клавиши только как цифровые клавиши. Это означает, что я не хочу, чтобы NumLock включал и выключал цифровые клавиши.

Однако иногда это происходит (я не знаю, как, возможно, случайно случайно нажав клавишу NumLock ), чтобы numlock был выключен, и я должен снова нажать его. Это очень раздражает.

Можно ли отключить отключение numlock?

Другими словами: Я хочу, чтобы мои числовые клавиши всегда действовали как цифровые клавиши и отключили переключатель numlock .

Я использую Debian и LXDE (Openbox).

27 голосов | спросил Martin Vegter 29 +04002013-10-29T19:12:16+04:00312013bEurope/MoscowTue, 29 Oct 2013 19:12:16 +0400 2013, 19:12:16

13 ответов


7

Прочитав весь ответ, я был очень удивлен, увидев, что вы можете сделать следующее.

<keybind key="Num_Lock">
  <action name="Execute">
    <command>numlockx on</command>
  </action>
</keybind>

Поэтому каждый раз, когда вы нажимаете Num , который деактивирует numlock. Он выполнит numlockx on, который активирует numlock.

Название происходит от моего вывода xev, который дал мне код клавиши 77 и имя Num_Lock

В случае @MartinVegters ему нужно подождать несколько секунд, после чего код numlockx on будет выполнен после события Num обрабатывается. Поскольку существует условие гонки между обработкой numlock в ядре и выполнением numlockx.

В этом случае вы можете написать небольшой скрипт denumlock.sh, например

#!/bin/sh

sleep "$1"
numlockx on

и использовать его в привязке клавиш

<command>/bin/sh denumlock.sh 1</command>

Это грязно, но оно работает.

Я рекомендую следующее, что я не мог проверить сам. Вам лучше следовать первым ответам, которые предлагают использовать

xmodmap -e 'keycode 77 = Escape'

Но для LXDE вам необходимо использовать механизм автозапуска LXDE, который отличается от способа Openbox для редактирования кода ~/.config/openbox/autostart.

В LXDE вам, видимо, нужно отредактировать ~/.config/lxsession/LXDE/autostart или с Lubuntu ~/.config/lxsession/Lubuntu/autostart, который содержит команды для запуска. (См. Архивные документы и LXDE docs ) Возможно, вам придется создать этот файл и добавить эту строку.

@xmodmap -e 'keycode 77 = Escape'

К сожалению, как я уже сказал, я не могу проверить, работает ли это, поскольку у меня только виртуальная машина, работающая с LXDE.

ответил Raphael Ahrens 24 J0000006Europe/Moscow 2014, 15:42:13
13
  

возможно, случайно случайно нажав клавишу NumLock

Если клавиатура принадлежит вам (а не вашему работодателю), просто удалите ее с клавиатуры физически.

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

введите описание изображения здесь>> </p></body></html>

ответил Jack Douglas 24 J0000006Europe/Moscow 2014, 17:15:49
7

На моей клавиатуре ноутбука (Ubuntu 10.04) сейчас включена блокировка клавиатуры.

$ xmodmap -pke|grep 77
keycode  77 = Num_Lock Pointer_EnableKeys Num_Lock Pointer_EnableKeys
keycode 177 = XF86Phone NoSymbol XF86Phone
$ xmodmap -e "keycode 77 ="

Войла! numlock теперь отключен.

xmodmap -e "keycode  77 = Num_Lock Pointer_EnableKeys Num_Lock Pointer_EnableKeys"

Вернет обратно. (Может быть, greping для Num_lock был бы лучшей идеей, но вы получите суть).

Ответ на комментарий @Martin Vegter.

Ok , в ответ на ваш комментарий xmodmap разрушает ваши привязки, понимается.

Я только что проверил Документацию Openbox

Взгляните в ~ /.config /openbox /lxde-rc.xml

ls -l lxde-rc.xml (у вас есть rc.xml, пожалуйста, проверьте).

возьмите копию в качестве резервной копии

(используйте редактор), найдите numlock (возможно, nmlk).

Вы видите что-то вроде этого?

<keybind key="Numlock">
<action name="whatEverItSays"/>
</keybind>

Прокомментировать или изменить. Значение ключа keybind для альтернативы, например Alt-Numlock для переключения

key="A-Numlock"

Например,

В Комментировать

<!-Commented out from here
    <keybind key="Numlock">
    <action name="whatEverItSays"/>
    </keybind>
To Here -->

или

Изменить на Alt + Numlock toggle

<keybind key="A-Numlock">
  <action name="whatEverItSays"/>
</keybind>

сохранить изменения и выйти /войти в систему или перезапустить.

ответил X Tian 9 62013vEurope/Moscow11bEurope/MoscowSat, 09 Nov 2013 22:48:31 +0400 2013, 22:48:31
5

Найдите свой код numlock с помощью xev. Например, здесь Num_Lock имеет значение 77.

Используйте xmodmap для переназначения кода клавиатуры:

  • Для текущих X сеансов внутри оболочки используйте xmodmap -e 'keycode 77 = '.
  • Для всех будущих сеансов X внутри ~/.xprofile place xmodmap -e 'keycode 77 = '

    EDIT: Примечание. Не работает, если программное обеспечение изменяет состояние Num Lock.

ответил emp.justine 7 42013vEurope/Moscow11bEurope/MoscowThu, 07 Nov 2013 06:04:44 +0400 2013, 06:04:44
4

Просто удалите сопоставление ключей NumLock, сопоставив его ни с чем: сначала запустите xev и нажмите Num Lock (возможно, он напечатает 77) , а затем выполните команду:

xmodmap -e "keycode # = """

где # - код ключа NumLock.

Вы также поместите это в ~/.xprofile, чтобы отключить NumLock в x сеансах.

ответил Risto Salminen 6 32013vEurope/Moscow11bEurope/MoscowWed, 06 Nov 2013 13:11:29 +0400 2013, 13:11:29
3

 pic of keyboard options с LinuxMint 17.2, и я предполагаю, что другие версии Ubuntu вы можете перейти к настройке KEYBOARD, а затем LAYOUTS на этой странице вы найдете небольшую кнопку« Параметры ».

Оттуда переходите к «разным вариантам совместимости» и проверьте «цифровые ключи всегда вводят цифры»

Это спасение для меня. Это вызывает у меня извинения, чтобы набрать номер и переместиться в другое место на странице. Ура! ;)

ответил flyingdrifter 27 +03002015-10-27T00:57:52+03:00312015bEurope/MoscowTue, 27 Oct 2015 00:57:52 +0300 2015, 00:57:52
1

Другой способ, если вы хотите отключить ключ numlock , отключить навсегда. Вы можете сделать это, изменив текущий файл ключевого слова, изменив код 77.

Установите для этого значения значение «none», чтобы случайное нажатие клавиши ничего не делало.

Используйте numlockx при загрузке, чтобы запустить его, и использовать модифицированный файл ключевой карты в одном из стартовых скриптов, например. ~/.bashrc или в /etc/profile.

ПРИМЕЧАНИЕ: Я не тестировал это, но он должен работать.

ответил SHW 24 J0000006Europe/Moscow 2014, 14:18:51
1

В OpenSuse 13.x с KDE это сработало для меня:

  • установить numlockx
  • Добавить пользовательский ярлык:
    • Пользовательские ярлыки -> Изменить -> Новый -> Глобальный ярлык -> Команда /URL:
    • Имя действия: NumLockOn
    • Комментарий: Keep numlock на
    • Триггер: установите в NumLockk
    • Действие- > Команда /URL: sh -c 'sleep 0.5; numlockx on'
  • Применять удар
  • (сделано)

Если NumLock необходимо включить, потому что он выключен, просто используйте % numlockx on.

ответил Timothy C. Quinn 11 AM000000120000005631 2015, 00:04:56
1

В других ответах здесь предлагается использовать numlockx on с помощью xmodmap -e 'keycode 77 =', но numlockx on не будет работать в моей системе вместе с этим xmodmap, показывая мне сообщение об ошибке:

$ numlockx on
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  132 (XTEST)
  Minor opcode of failed request:  2 (X_XTestFakeInput)
  Value in failed request:  0x0
  Serial number of failed request:  17
  Current serial number in output stream:  20

А также установка xmodmap -e 'keycode 77 =' по какой-то причине удалит все мои привязки клавиш, сделанные с помощью xbindkeys

Этот ответ на аналогичный вопрос мне помог. Часть моего ~/.xinitrc:

numlockx on
xmodmap -e 'keycode 77 = NoSymbol Num_Lock'

Таким образом, NumLock ничего не делает сам по себе, но если он нажат с помощью Shift, он выполняет свою первоначальную (в основном бесполезную) цель и, самое главное, не предотвращает numlockx on от работы с моей системой или испортить мои привязки клавиш xbindkeys.

ответил jojman 27 J000000Thursday17 2017, 02:49:31
0

Довольно хакерское обходное решение заключается в добавлении задания cron, которое запускает следующую команду

setleds +num

каждые 30 секунд или около того, чтобы включить NumLock.

См. также

ответил Joseph R. 7 42013vEurope/Moscow11bEurope/MoscowThu, 07 Nov 2013 16:56:30 +0400 2013, 16:56:30
0

Это может быть не лучшее решение, но это сработало для меня:

stdbuf -oL xinput test 11 | mawk -W interactive '$3==77 {printf "/usr/bin/numlockx on\n"}' | bash

Где 11 - идентификатор вашей клавиатуры. Сделайте список xinput, чтобы определить ваш идентификатор клавиатуры (в моем случае это 11):

[email protected]:~$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ DualPoint Stick                           id=12   [slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS DualPoint TouchPad          id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Sony Vaio Keys                            id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ USB 2.0 Camera                            id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]

Очевидно, что для этого необходимо установить numlockx.

Объяснение:

  • stdbuf -oL изменяет операции буферизации выходного потока на уровень буферизации
  • xinput test 11 печатает нажатые клавиши в stdout
  • mawk -W interactive '$3==77 {printf "/usr/bin/numlockx on\n"}' для каждой строки, которая напечатана и содержит 77 (ключ numlock), построить команду /usr/bin/numlockx on ...
  • | bash ... и передать его в bash для его выполнения.

Вы можете вставить этот oneliner в один из начальных сценариев среды рабочего стола или запустить его в фоновом режиме.

ответил chaos 24 J0000006Europe/Moscow 2014, 15:21:44
0

Я также хочу, чтобы числовые клавиши с числовой клавиатурой всегда были цифрами, ни одна из вещей KP _....

Мое решение является частью моего переустановки Apple Keyboard для использования с Linux repo.

В принципе, он просто переназначает Num_Lock как F20, а числа - сами.

Это решение всегда обеспечивает желаемый результат и дополнительную функциональную клавишу как преимущество.

ответил guivho 5 MarpmSat, 05 Mar 2016 21:37:53 +03002016-03-05T21:37:53+03:0009 2016, 21:37:53
-1

Создайте следующий скрипт и сделайте его исполняемым с помощью chmod +x <filename>

#!/bin/bash
if [ -x /usr/bin/numlockx ];then
/usr/bin/numlockx on
fi

Поместите путь к файлу в .config/openbox/autostart

Или поместите его как задание cron, которое проверяет каждую пару минут и запускает скрипт, если numlocks выключен.

crontab -e 
*/1 * * * * <path-to-file>

Или просто запустите скрипт в цикле.

#!/bin/bash
  x=0
  while [ x -eq 0 ];do
    if [ -x /usr/bin/numlockx ];then
    /usr/bin/numlockx on
    fi
  done

Если у вас нет numlockx, вы можете получить его с помощью sudo apt-get install numlockx

ответил Jeight 8 52013vEurope/Moscow11bEurope/MoscowFri, 08 Nov 2013 18:24:54 +0400 2013, 18:24:54

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132