komutları çalıştırmak için ikinci klavye


16

Bilgisayarımda takılı iki USB klavyem var. Her ikisine de aynı anahtarı yazmak yerine, ikinci bir klavyenin harf yazmak yerine komutları çalıştırması mümkün mü? Ve eğer bu mümkün değilse, en azından örneğin Rusça gibi başka bir dilde yazılabilir mi?


Harfleri yazmamak için yalnızca bir şey çalıştırabilmek için belirli komutları ikinci klavyenin seçilen tuşlarına bağlamak ister misiniz?
pbm

Ve sonraki soru: arka plan uygulamalarını (veya X ortamında uygulama) çalıştırmak için kısayolları mı kullanmak istiyorsunuz yoksa sadece klavye kısayolunu kullanarak aktif terminalde komutun adını mı yazmak istiyorsunuz?
pbm

Uygulamalara anahtar göndermeyi devre dışı bırakmanın alternatif yolu. askubuntu.com/a/178741/554601
Ariunbayar

Yanıtlar:


15

Bu önerebileceğim üçüncü cevabım actkbd... :)

Dolayısıyla, ikinci klavyenin tüm tuşlarını harfleri yazmamak için komutları çalıştıracak şekilde yapılandırmak istiyorsanız kullanabilirsiniz actkbd... :)

Yükledikten sonra actkbd, klavyeden olayları almak için hangi cihaz dosyasının kullanıldığını bulmamız gerekir:

pbm@tauri ~ $ cat /proc/bus/input/devices 
[cut]
I: Bus=0003 Vendor=046d Product=c31c Version=0110
N: Name="Logitech USB Keyboard"
P: Phys=usb-0000:00:1a.0-1.1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input7
U: Uniq=
H: Handlers=sysrq kbd event5 
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=1f

I: Bus=0003 Vendor=046d Product=c31c Version=0110
N: Name="Logitech USB Keyboard"
P: Phys=usb-0000:00:1a.0-1.1/input1
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.1/input/input8
U: Uniq=
H: Handlers=kbd event6 
B: PROP=0
B: EV=1b
B: KEY=2010000 397ad801d001 1e000000000000 0
B: ABS=100000000
B: MSC=10
[cut]

Bu listede klavyenizi bulmalı ve işleyicileri kontrol etmelisiniz. sudo actkbd -s -d /dev/input/HANDLER_NAMEİşleyicinin etkinlik gönderip göndermediğini kontrol etmek için kullanın . Bu komutu çalıştırır ve klavyede tuşuna basarsanız (komutlara bağlamak istediğiniz tuşları kontrol edin) şöyle bir şey almalısınız:

pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event5 
Keys: 57
Keys: 35

Anahtar kodlarınız varsa, actkbdyapılandırma dosyası oluşturabiliriz :

pbm@tauri ~ $ sudo nano /etc/actkbd.conf 
30:::sudo -u pbm DISPLAY=:0 amarok
//30 is keycode for letter a

Bu dosyayı kaydettiğinizde, yapılandırmanın çalışıp çalışmadığını test etmeliyiz:

pbm@tauri ~ $ sudo actkbd -d /dev/input/event5 -D

Yapılandırma dosyanızda bulunan tuşa bastığınızda, yapılandırma dosyasının son sütunundaki komut başlatılır.

Uygulamalara anahtar göndermeyi devre dışı bırakmanın bir yolu olduğunu düşünüyorum, ancak bulamadım - README dosyasına bakın .

Kullanarak devre dışı bırakmaya çalışmak yerine actkbdklavyenizi X'te kapatabilirsiniz.

pbm@tauri ~ $ xinput list
[cut]
    ↳ Logitech USB Keyboard                     id=12   [slave  keyboard (3)]
    ↳ Logitech USB Keyboard                     id=11   [slave  keyboard (3)]
pbm@tauri ~ $ xinput set-prop 11 "Device Enabled" 0
pbm@tauri ~ $ xinput set-prop 12 "Device Enabled" 0

İşi yapmalı ... :) Hakkında daha fazla bilgi actkbdiçin bu cevaba göz atın .

Kullanılması actkbd(ve birkaç komut muhtemelen) ayrıca Rus harflerle giriş modu için komut modundan değişiklik modları için klavyenizi yapılandırabilirsiniz. Bu Ulrich Schwarz'scevap için.


1
Bu soruyu bir milyar forumda milyonlarca kez sordum ve bunu yeni yapan tek kişi sensin. Bir trilyon teşekkürler.
captainandcoke

0

C'de bunu yapabilen küçük bir program yazdım. 'Anında' yazdım, bu yüzden çok iyi değil, ama işe yarıyor. Buradan alabilirsiniz .


Merhaba, Unix ve Linux Stack Exchange sitesine hoş geldiniz. Lütfen Yardım Merkezi'ni inceleyin ve bu site hakkında daha fazla bilgi edinmek için Tura katılın. Bağlantınız kullanıcının sorununa bir çözüm sunsa da, gönderinize ek bağlam ekleyebilir misiniz? Şu anda bu sadece üçüncü taraf bir siteden yazılım indirmek için bir teklif. Bunun ne yaptığını, nasıl kurulacağını ve kullanılacağını ve neden soruya cevap verdiğini eklemelisiniz. Teşekkür ederim.
kemotep
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.