Включение NumLock удобно при использовании полноразмерной внешней клавиатуры (с клавиатурой) и очень неудобно при использовании встроенной клавиатуры ноутбука (в которой цифры вместо букв располагаются на правой стороне клавиатуры, если не нажата клавиша Fn). [ 110]
Таким образом, мне нужно включать NumLock каждый раз, когда я подключаю внешнюю клавиатуру (или загружать ее с подключенной), и выключать каждый раз, когда я отсоединяю внешнюю клавиатуру (или загружаю ее с отключенной). И я делаю это часто, потому что я предпочитаю использовать полноразмерную внешнюю клавиатуру, но у меня недостаточно (только 3) USB-порта для ее подключения вместе с мышью, 3G-модемом и внешним жестким / флеш-накопителем.
Могу ли я автоматизировать это? Кажется, очень формально, логически простая задача: если подключена USB-клавиатура (какое-то устройство в / dev присутствует?) - NumLock включен, если нет - NumLock выключен. Встроенная клавиатура моего ноутбука подключена к PS / 2, внешняя - к USB.
Может быть, мне стоит написать код самому, но куда его поместить в этом случае?
Я использую Ubuntu 10.10.
Прежде всего, установите numlockx ( нажмите здесь, чтобы установить numlockx ). В основном это позволяет вам писать сценарии для установки состояния Num Lock - подробности см. На справочной странице numlockx .
Далее нам нужно начать углубляться в удовольствие от правил udev. Для начала нам нужно выяснить, как идентифицируется клавиатура. Вы можете сделать это с помощью
ls /dev/input/by-id/
. Это должно дать вам несколько человекочитаемых имен файлов (которые являются мягкими ссылками на не особенно читаемое истинное имя). Моя клавиатура была
/dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd
Итак, нам нужно узнать всю информацию о клавиатуре. Я сделал
udevadm info -a -p $(udevadm info -q path -n /dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd)
Но, конечно, укажите свой собственный путь. Вы получите много информации, но вы хотите взглянуть на первый блок, который называет клавиатуру и имеет SUBSYSTEMS=="usb"
. (А не контроллер USB или что-то еще). В моем случае это было:
looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.3':
KERNELS=="3-2.3"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 2"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="a0"
ATTRS{bMaxPower}==" 50mA"
ATTRS{urbnum}=="6284"
ATTRS{idVendor}=="058f"
ATTRS{idProduct}=="9410"
ATTRS{bcdDevice}=="0122"
ATTRS{bDeviceClass}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{speed}=="1.5"
ATTRS{busnum}=="3"
ATTRS{devnum}=="3"
ATTRS{devpath}=="2.3"
ATTRS{version}==" 1.10"
ATTRS{maxchild}=="0"
ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="KINESIS FREESTYLE KB700"
ATTRS{product}=="KB700 Kinesis Freestyle"
Так что теперь у нас достаточно информации, чтобы написать некоторые правила. Используйте ваш любимый редактор для создания /etc/udev/rules.d/10-local.rules
и вставьте:
BUS=="usb",ATTRS{product}=="KB700 Kinesis Freestyle",ACTION=="add",RUN+="/usr/bin/numlockx on"
BUS=="usb",ATTRS{product}=="KB700 Kinesis Freestyle",ACTION=="remove",RUN+="/usr/bin/numlockx off"
Опять введите здесь название вашей клавиатуры и ATTRS, если оно отличается. Тогда это должно сработать:)
Примечание. Я не смог проверить это, хотя я выполнил все команды вплоть до создания файла правил. И источники на случай, если вам понадобится провести дополнительное расследование:
Я не уверен, что я делаю по-другому, потому что мой numlock на этой клавиатуре включен (это клавиатура Mac Pro Aluminium). Здесь есть инструкции , которые должны помочь.
Надеюсь, это поможет!
Если вы используете gnome-shell, вы можете установить Numlock & amp; Статус Capslock на панели «Блокировка клавиш» расширения. Пожалуйста, нашли это здесь
Если вы используете оболочку Gnome3.
Установите numlockx
, затем запустите настройки приложения запуска gnome-session-properties
Изображение (новые пользователи не могут публиковать изображения:))
Нажмите Добавить
Запишите что-нибудь в поле имени и в поле команды скопируйте это: numlockx on