Harici bir klavye takıldığında Ubuntu'yu NumLock'u otomatik olarak açacak ve takılmadığında nasıl kapatacaksınız?


12

Tam boyutlu bir harici klavyeyi (tuş takımına sahip) kullanırken NumLock'u kullanmak uygundur ve dizüstü bilgisayarın yerleşik klavyesini kullanırken (Fn tuşuna basılmadıkça klavyenin sağ tarafındaki harfler yerine rakamlar yerleştirir) çok sakıncalıdır.

Bu nedenle, harici bir klavye (veya takılıyken önyükleme) her taktığımda NumLock'u açmam ve harici bir klavyeyi her ayırdığımda (veya önyüklemeyle önyükleme yapmam) kapatmam gerekiyor. Bunu sık sık yapıyorum çünkü tam boyutlu bir harici klavye kullanmayı tercih ediyorum, ancak bir fare, 3G modem ve harici bir sabit / flash sürücü ile birlikte takmak için yeterli (sadece 3) USB bağlantı noktasına sahip değilim.

Bunu otomatikleştirebilir miyim? Çok resmi, mantıksal olarak basit bir görev gibi görünüyor: eğer takılı bir USB klavye varsa (/ dev'de bazı cihazlar var mı?) - NumLock açık, değilse - NumLock kapalı. Dizüstü bilgisayarımın yerleşik klavyesi PS / 2'ye bağlı, harici USB.

Belki kendim kodlamalıyım, ama bu durumda nereye koymalıyım?

Ubuntu 10.10 kullanıyorum.

Yanıtlar:


14

İlk önce numlockx'i yükleyin (numlockx'i kurmak için buraya tıklayın ). Temel olarak bu, Num Lock durumunu ayarlamak için komut dosyaları yazmanıza olanak tanır - ayrıntılar için numlockx man sayfasına bakın.

Sonra udev kurallarının eğlencesini araştırmaya başlamamız gerekiyor. İlk önce klavyenin nasıl tanımlandığını bulmamız gerekiyor. Bunu şu şekilde yapabilirsiniz:

ls /dev/input/by-id/

Bu size bazı okunabilir dosya adları (özellikle okunamayan gerçek isme yumuşak bağlantılar) vermelidir. Klavyem

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

O zaman klavyeyle ilgili tüm bilgileri öğrenmemiz gerekiyor. yaptım

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

Ama elbette oraya kendi yolunuzu ekleyin. Çok fazla bilgi alacaksınız, ancak klavyeyi adlandıran ve sahip olduğu ilk bloğa bakmak istiyorsunuz SUBSYSTEMS=="usb". (USB denetleyiciden ziyade). Benim durumumda:

  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"

Şimdi bazı kurallar yazmak için yeterli bilgiye sahibiz. Oluşturmak /etc/udev/rules.d/10-local.rulesve koymak için favori düzenleyicinizi kullanın :

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"

Yine, klavyenizin adını buraya ve farklıysa ATTRS'yi buraya koyun. O zaman çalışması gerekir :)

Not Kurallar dosyası oluşturuluncaya kadar tüm komutları çalıştırmamıza rağmen bunu test edemedim. Ve biraz daha araştırma yapmanız gerektiğinde kaynaklar:


Çok teşekkürler, mükemmel. Dürüst olmak gerekirse, böyle bilgilendirici bir cevap almayı beklemiyordum. Keşke sadece doğru ve +1'den fazlasını verebilseydim. Umarım soruma yıldız atan ve oy veren herkes de size ödül verir.
Ivan


0

Farklı yaptığımdan emin değilim, çünkü bu klavyedeki numlock varsayılan olarak açık (Bu bir Mac Pro Alüminyum klavyedir). Burada hile yapması gereken bazı talimatlar var .

Bu yardımcı olur umarım!


0

Eğer gnome-shell kullanıyorsanız panel "Lock Keys" uzantısına Numlock & Capslock durumunu kurabilirsiniz. Lütfen, burada buldum

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.