druga klawiatura do uruchamiania poleceń

16

Na komputerze mam podłączone dwie klawiatury USB. Zamiast tego, że obie po prostu wpisują ten sam klucz, czy możliwe jest skonfigurowanie drugiej klawiatury do uruchamiania poleceń zamiast wpisywania liter? A jeśli nie jest to możliwe, czy można skonfigurować przynajmniej pisanie w innym języku, na przykład rosyjskim?

captainandcoke
źródło
Czy chcesz przypisać określone polecenia do wybranych klawiszy drugiej klawiatury, aby móc tylko uruchamiać coś, a nie pisać litery?
pbm
I kolejne pytanie: czy chcesz używać skrótów do uruchamiania aplikacji w tle (lub aplikacji w środowisku X), czy po prostu wpisz nazwę polecenia w aktywnym terminalu za pomocą skrótu klawiaturowego?
pbm
Alternatywny sposób na wyłączenie wysyłania kluczy do aplikacji. askubuntu.com/a/178741/554601
Ariunbayar

Odpowiedzi:

15

To moja trzecia odpowiedź, kiedy mogę polecić actkbd... :)

Jeśli więc chcesz skonfigurować wszystkie klawisze drugiej klawiatury, aby uruchamiały polecenia i nie wpisywały liter, możesz użyć actkbd... :)

Po instalacji actkbdmusimy dowiedzieć się, jaki plik urządzenia jest używany do odbierania zdarzeń z klawiatury:

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]

Na tej liście powinieneś znaleźć swoją klawiaturę i sprawdzić jej obsługę. Służy sudo actkbd -s -d /dev/input/HANDLER_NAMEdo sprawdzania, czy ten moduł obsługi wysyła zdarzenia. Jeśli uruchomisz to polecenie i naciśniesz klawisz na klawiaturze (sprawdź klawisze, które chcesz powiązać z poleceniami), powinieneś dostać coś takiego:

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

Jeśli masz kody actkbddostępu, możemy utworzyć plik konfiguracyjny:

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

Po zapisaniu tego pliku powinniśmy sprawdzić, czy konfiguracja działa:

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

Po naciśnięciu klawisza, który masz w poleceniu file config, uruchomiona zostanie ostatnia kolumna pliku config.

Myślę, że istnieje sposób na wyłączenie wysyłania kluczy do aplikacji, ale nie udało mi się go znaleźć - sprawdź plik README .

Zamiast próbować go wyłączyć, actkbdmożesz wyłączyć klawiaturę w X.

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

Powinien wykonać pracę ... :) Aby uzyskać więcej informacji na temat actkbdsprawdzania tej odpowiedzi .

Za pomocą actkbd(i prawdopodobnie kilku skryptów) możesz także skonfigurować klawiaturę do zmiany trybów z trybu poleceń na tryb wprowadzania z rosyjskimi literami. Na tę przeczytaną Ulrich Schwarz'sodpowiedź.

pbm
źródło
1
Zadałem to pytanie milion razy na miliardach forów, a ty jesteś jedynym, który tak naprawdę to powiedział. Dzięki bilion.
captainandcoke
0

Napisałem mały program w C, który może to zrobić. Napisałem go „w locie”, więc nie jest zbyt dobry, ale działa. Możesz go zdobyć tutaj .

użytkownik388315
źródło
Witaj na stronie wymiany stosów Unix i Linux. Zapoznaj się z Centrum pomocy i obejrzyj prezentację, aby uzyskać więcej informacji na temat tej witryny. Chociaż Twój link może stanowić rozwiązanie problemu użytkownika, czy możesz dodać dodatkowy kontekst do swojego postu? Obecnie jest to tylko oferta pobrania oprogramowania z witryny innej firmy. Powinieneś podać, co to robi, jak go zainstalować i używać oraz dlaczego odpowiada na pytanie. Dziękuję Ci.
kemotep