Làm cách nào để thiết lập Ubuntu để tự động bật NumLock khi bàn phím ngoài được gắn và tắt khi không có?


12

Bật NumLock thuận tiện khi sử dụng bàn phím ngoài có kích thước đầy đủ (có bàn phím) và rất bất tiện khi sử dụng bàn phím tích hợp của máy tính xách tay (đặt chữ số thay vì chữ cái bên cạnh bàn phím trừ khi nhấn Fn).

Vì vậy, tôi phải bật NumLock mỗi khi tôi gắn bàn phím ngoài (hoặc khởi động cùng với nó) và tắt mỗi khi tôi tháo bàn phím ngoài (hoặc khởi động với bàn phím tách rời). Và tôi làm điều này thường xuyên vì tôi thích sử dụng bàn phím ngoài có kích thước đầy đủ, nhưng không có đủ (chỉ 3) cổng USB để cắm cùng với chuột, modem 3G và ổ cứng / flash ngoài.

Tôi có thể tự động hóa điều này? Có vẻ như một nhiệm vụ rất đơn giản, hợp lý về mặt logic: nếu có bàn phím USB kèm theo (có một số thiết bị trong / dev?) - NumLock được bật, nếu không - NumLock đã tắt. Bàn phím tích hợp trên máy tính xách tay của tôi có gắn PS / 2, bên ngoài là USB.

Có lẽ tôi nên tự viết mã, nhưng đặt nó ở đâu trong trường hợp này?

Tôi sử dụng Ubuntu 10.10.

Câu trả lời:


14

Trước hết, cài đặt numlockx ( bấm vào đây để cài đặt numlockx ). Về cơ bản, điều này cho phép bạn viết các tập lệnh để đặt trạng thái Num Lock - xem trang man numlockx để biết chi tiết.

Tiếp theo chúng ta cần bắt đầu đi sâu vào niềm vui của các quy tắc udev. Đầu tiên chúng ta cần tìm hiểu cách xác định bàn phím. Bạn có thể làm điều này bằng cách

ls /dev/input/by-id/

Điều này sẽ cung cấp cho bạn một số tên tệp có thể đọc được của con người (đó là các liên kết mềm đến tên thật không thể đọc được). Bàn phím của tôi là

/dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd

Vì vậy, sau đó chúng ta cần tìm hiểu tất cả các thông tin về bàn phím. tôi đã làm

udevadm info -a -p $(udevadm info -q path -n /dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd)

Nhưng chèn con đường của riêng bạn ở đó tất nhiên. Bạn sẽ nhận được rất nhiều thông tin, nhưng bạn muốn xem khối đầu tiên đặt tên cho bàn phím và có SUBSYSTEMS=="usb". (Thay vì bộ điều khiển USB hoặc bất cứ điều gì). Trong trường hợp của tôi đó là:

  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"

Vì vậy, bây giờ chúng tôi có đủ thông tin để viết một số quy tắc. Sử dụng trình chỉnh sửa yêu thích của bạn để tạo /etc/udev/rules.d/10-local.rulesvà đưa vào:

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"

Một lần nữa, đặt tên bàn phím của bạn ở đây và ATTRS nếu nó khác. Sau đó, nó sẽ làm việc :)

Lưu ý Tôi chưa thể kiểm tra điều này, mặc dù tôi đã chạy tất cả các lệnh cho đến khi tạo tệp quy tắc. Và các nguồn trong trường hợp bạn cần thực hiện thêm một số điều tra là:


Cảm ơn rất nhiều, xuất sắc. Thành thật mà nói, tôi không mong đợi nhận được câu trả lời gần với thông tin như vậy. Tôi ước tôi có thể trao giải thưởng nhiều hơn là chính xác và +1. Tôi hy vọng tất cả những người đã đóng vai chính và bình chọn cho câu hỏi của tôi cũng sẽ trao giải cho bạn.
Ivan


0

Tôi không chắc chắn những gì tôi đang làm khác đi, bởi vì numlock của tôi trên bàn phím này được mặc định bật (Đây là bàn phím Mac Pro Aluminium). Có một số hướng dẫn ở đây nên làm thủ thuật.

Hi vọng điêu nay co ich!


0

Nếu bạn đang sử dụng gnome-shell, thì bạn có thể cài đặt trạng thái Numlock & Capslock trên tiện ích mở rộng "Khóa phím". Xin vui lòng, tìm thấy nó ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.