zweite Tastatur zum Ausführen von Befehlen

16

An meinem Computer sind zwei USB-Tastaturen angeschlossen. Ist es möglich, dass nicht beide dieselbe Taste drücken, sondern dass eine zweite Tastatur Befehle ausführt, anstatt Buchstaben einzugeben? Und wenn das nicht möglich ist, kann es eingerichtet werden, um zumindest eine andere Sprache wie Russisch einzugeben?

Kapitän und Cola
quelle
Möchten Sie bestimmte Befehle an ausgewählte Tasten der zweiten Tastatur binden, um nur etwas ausführen und keine Buchstaben eingeben zu können?
pbm
Und die nächste Frage: Möchten Sie Verknüpfungen zum Ausführen von Hintergrundanwendungen (oder Anwendungen in einer X-Umgebung) verwenden oder einfach den Namen des Befehls im aktiven Terminal über eine Tastenkombination eingeben?
PBM
Alternative Möglichkeit, das Senden von Schlüsseln an Anwendungen zu deaktivieren. askubuntu.com/a/178741/554601
Ariunbayar

Antworten:

15

Dies ist meine dritte Antwort, wenn ich empfehlen kann actkbd... :)

Wenn Sie also alle Tasten der zweiten Tastatur so konfigurieren möchten, dass Befehle ausgeführt werden, bei denen keine Buchstaben eingegeben werden, können Sie Folgendes verwenden actkbd... :)

Nach der Installation müssen actkbdwir herausfinden, mit welcher Gerätedatei Ereignisse von unserer Tastatur empfangen werden:

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]

Auf dieser Liste sollten Sie Ihre Tastatur finden und die Handler überprüfen. Verwenden sudo actkbd -s -d /dev/input/HANDLER_NAMESie diese Option, um zu überprüfen, ob dieser Handler Ereignisse sendet. Wenn Sie diesen Befehl ausführen und die Taste auf der Tastatur drücken (nach Tasten suchen, die Sie an Befehle binden möchten), sollten Sie ungefähr Folgendes erhalten:

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

Wenn Sie Schlüsselcodes haben, können wir folgende actkbdKonfigurationsdatei erstellen:

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

Wenn Sie diese Datei speichern, sollten wir testen, ob die Konfiguration funktioniert:

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

Wenn Sie die Taste in Ihrer Konfigurationsdatei drücken, wird der Befehl aus der letzten Spalte der Konfigurationsdatei gestartet.

Ich denke, dass es eine Möglichkeit gibt, das Senden von Schlüsseln an Anwendungen zu deaktivieren, aber ich konnte es nicht finden - checke die README-Datei aus .

Anstatt zu versuchen, es mit zu deaktivieren, können actkbdSie Ihre Tastatur in X ausschalten.

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

Es sollte die Arbeit erledigen ... :) Weitere Informationen zu finden actkbdSie in dieser Antwort .

Mit actkbd(und wahrscheinlich nur wenigen Skripten) können Sie Ihre Tastatur auch so konfigurieren, dass sie vom Befehlsmodus in den Eingabemodus mit russischen Buchstaben wechselt. Lesen Sie dazu die Ulrich Schwarz'sAntwort.

pbm
quelle
1
Ich habe diese Frage millionenfach in einer Milliarde Foren gestellt und du bist der einzige, der dies wirklich neu macht. Danke, eine Billion.
Captainandcoke