แป้นพิมพ์ที่สองเพื่อเรียกใช้คำสั่ง


16

ในคอมพิวเตอร์ของฉันฉันมีแป้นพิมพ์ USB สองอันเสียบไว้แทนที่จะมีทั้งคู่เพียงพิมพ์คีย์เดียวกันเป็นไปได้หรือไม่ที่แป้นพิมพ์ตัวที่สองจะตั้งค่าให้เรียกใช้คำสั่งแทนที่จะพิมพ์ตัวอักษรได้หรือไม่ และถ้าเป็นไปไม่ได้มันสามารถตั้งค่าให้พิมพ์อย่างน้อยเป็นภาษาอื่นเช่นภาษารัสเซียได้ไหม?


คุณต้องการผูกคำสั่งเฉพาะกับแป้นที่เลือกของแป้นพิมพ์ที่สองเพื่อให้สามารถเรียกใช้บางสิ่งเท่านั้นและไม่พิมพ์ตัวอักษรได้หรือไม่
pbm

และคำถามถัดไป: คุณต้องการใช้ทางลัดในการรันแอปพลิเคชันพื้นหลัง (หรือแอปพลิเคชันในสภาพแวดล้อม X) หรือเพียงพิมพ์ชื่อคำสั่งในเทอร์มินัลที่ใช้งานอยู่โดยใช้แป้นพิมพ์ลัด
pbm

วิธีอื่นในการปิดใช้งานการส่งคีย์ไปยังแอปพลิเคชัน askubuntu.com/a/178741/554601
Ariunbayar

คำตอบ:


15

นี่คือคำตอบที่สามของฉันเมื่อฉันสามารถแนะนำactkbd... :)

ดังนั้นหากคุณต้องการกำหนดค่าปุ่มทั้งหมดของแป้นพิมพ์ที่สองเพื่อเรียกใช้คำสั่งไม่ให้พิมพ์ตัวอักษรคุณสามารถใช้actkbd... :)

หลังจากติดตั้งแล้วactkbdเราต้องค้นหาไฟล์อุปกรณ์ที่ใช้เพื่อรับเหตุการณ์จากแป้นพิมพ์ออก:

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]

ในรายการนี้คุณควรค้นหาแป้นพิมพ์ของคุณและตรวจสอบตัวจัดการ ใช้sudo actkbd -s -d /dev/input/HANDLER_NAMEเพื่อตรวจสอบว่าตัวจัดการนั้นส่งเหตุการณ์หรือไม่ หากคุณเรียกใช้คำสั่งนี้และกดแป้นบนแป้นพิมพ์ (ตรวจสอบคีย์ที่คุณต้องการผูกกับคำสั่ง) คุณควรได้รับดังนี้:

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

หากคุณมีรหัสเราสามารถสร้างactkbdไฟล์กำหนดค่า:

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

เมื่อคุณบันทึกไฟล์นั้นเราควรทดสอบว่าการกำหนดค่าใช้งานได้หรือไม่:

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

เมื่อคุณกดปุ่มที่คุณมีในคำสั่งไฟล์กำหนดค่าของคุณจากคอลัมน์สุดท้ายของไฟล์กำหนดค่าจะเริ่มขึ้น

ผมคิดว่ามีวิธีที่จะปิดการใช้งานปุ่มส่งเพื่อการใช้งาน แต่ผมก็ไม่สามารถที่จะหาได้ - ตรวจสอบไฟล์ README

แทนที่จะพยายามปิดการใช้งานโดยใช้actkbdคุณสามารถปิดคีย์บอร์ดใน 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

มันควรจะทำงาน ... :) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการactkbdตรวจสอบคำตอบนี้

การใช้actkbd(และสคริปต์ไม่กี่ตัว) คุณสามารถกำหนดค่าแป้นพิมพ์เพื่อเปลี่ยนโหมดจากโหมดคำสั่งเป็นโหมดป้อนข้อมูลด้วยตัวอักษรรัสเซีย สำหรับUlrich Schwarz'sคำตอบอ่านนี้


1
ฉันได้ถามคำถามนี้กับฟอรัมพันล้านครั้งและคุณเป็นคนเดียวที่ใหม่จริง ขอบคุณล้านล้าน
captainandcoke

0

ฉันได้เขียนโปรแกรมเล็ก ๆ ใน C ซึ่งสามารถทำได้ ฉันเขียนมันลงไปทันทีดังนั้นมันจึงไม่ค่อยดีนัก แต่ใช้ได้ คุณจะได้รับที่นี่


สวัสดีและยินดีต้อนรับสู่ไซต์ Unix และ Linux Stack Exchange โปรดตรวจสอบศูนย์ช่วยเหลือและเข้าร่วมทัวร์เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับเว็บไซต์นี้ ในขณะที่ลิงก์ของคุณอาจมีวิธีแก้ไขปัญหาของผู้ใช้คุณสามารถเพิ่มบริบทเพิ่มเติมให้กับโพสต์ของคุณได้ไหม ขณะนี้เป็นเพียงข้อเสนอในการดาวน์โหลดซอฟต์แวร์จากเว็บไซต์บุคคลที่สาม คุณควรรวมสิ่งนี้ทำอย่างไรวิธีการติดตั้งและใช้งานและทำไมมันตอบคำถามในมือ ขอขอบคุณ.
kemotep
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.