Як налаштувати Ubuntu для автоматичного включення NumLock, коли зовнішня клавіатура приєднана та відключена, коли її немає?


12

Увімкнути NumLock зручно при використанні повнорозмірної зовнішньої клавіатури (з клавіатурою) і дуже незручно при використанні вбудованої клавіатури ноутбука (яка розміщує цифри замість літер на правому боці клавіатури, якщо не натиснути Fn).

Тому я повинен увімкнути NumLock кожен раз, коли я приєдную зовнішню клавіатуру (або завантажувану разом із нею додану) і вимикаю кожного разу, коли я відключаю зовнішню клавіатуру (або завантажуємо її з відключеною). І я роблю це часто, тому що я вважаю за краще використовувати повнорозмірну зовнішню клавіатуру, але у мене недостатньо (лише 3) USB-портів, щоб підключити її разом з мишею, 3G-модемом та зовнішньою жорсткою / флеш-пам’яткою.

Чи можу я це автоматизувати? Це здається дуже формальним, логічно простим завданням: якщо підключена USB клавіатура (якийсь пристрій в / dev присутній?) - NumLock увімкнено, якщо ні - NumLock вимкнено. Вбудована клавіатура мого ноутбука PS / 2, зовнішня - USB.

Можливо, я повинен сам це зашифрувати, але де це в цьому випадку?

Я використовую Ubuntu 10.10.

Відповіді:


14

Спочатку встановіть numlockx ( натисніть тут, щоб встановити numlockx ). В основному це дозволяє писати сценарії, щоб встановити стан Num Lock - детальну інформацію див. На сторінці manlockx man .

Далі нам потрібно почати заглиблюватися у задоволення від правил 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, якщо вона інша. Тоді це має працювати :)

Примітка: Я не зміг перевірити це, хоча я запустив усі команди до створення файлу правил. А джерела у випадку, якщо вам доведеться провести ще одне дослідження:


Дякую багато, чудово. Якщо чесно, я не сподівався отримати відповідь, близький до такої інформативної. Я б хотів, щоб я міг нагородити це більше, ніж просто правильно та +1. Сподіваюся, всі, хто зіграв та проголосував за моє запитання, також нагородять вас.
Іван

1

Якщо ви використовуєте оболонку Gnome3.

Встановити numlockx

потім запустіть налаштування програми запуску gnome-session-properties

Зображення (нові користувачі не можуть публікувати зображення :))

Натисніть Додати

Введіть що-небудь у поле імені та в командне поле, скопіюйте це:numlockx on

Зображення


0

Я не впевнений, що я роблю по-іншому, тому що мій numlock на цій клавіатурі дефолт увімкнено (Це алюмінієва клавіатура Mac Pro). Тут є кілька інструкцій, які повинні виконати трюк.

Сподіваюся, це допомагає!


0

Якщо ви використовуєте gnome-shell, то ви можете встановити стан Numlock & Capslock на розширенні панелі "Блокування ключів". Будь ласка, знайдіть його тут

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.