วิธีผูกปุ่ม Ctrl + ลูกศรกับปุ่ม Home และปุ่ม End? xmodmap ไม่ทำงาน


15

บน Windows ฉันเคยผูกCtrl+ LeftถึงHomeและCtrl+ ขวาEndผ่าน ahk

ตอนนี้ฉันกำลังดิ้นรนเพื่อให้บรรลุพฤติกรรมนี้ใน Ubuntu ฉันพยายามแก้ไข/etc/inputrc:

"\e[1;5C": end-of-line
"\e[1;5D": beginning-of-line

มันใช้งานได้ แต่เฉพาะในหน้าต่างเทอร์มินัล ฉันได้ลอง xmodmap แล้ว:

xmodmap -e "keycode 113=Left NoSymbol Home"

แต่มันไม่ทำงาน
สิ่งประหลาดนี่คือถ้าฉันผูกกับShift+ Leftใน xmodmap มันทำงาน:

xmodmap -e "keycode 113=Left Home"

ฉันเดาว่านี่คือพฤติกรรมเริ่มต้นของCtrl+ Left(ข้ามคำ) ได้รับความสำคัญมากกว่า xmodmap ผูก

ฉันจะหาตำแหน่งที่การเชื่อมโยงเริ่มต้นได้จากที่ใดและจะลบได้อย่างไร หรือบางทีฉันอาจผูกพฤติกรรมที่ต้องการได้ไหม?

ฉันใช้ Ubuntu 12.04


คุณได้รับxevเอาต์พุตสำหรับปุ่มที่คุณต้องการเปลี่ยนหรือไม่?
เซท

ฉันทำ. ฉันได้รับ keycode 113 = ซ้ายจากผลลัพธ์ xev
acid009

คุณสามารถเพิ่มxevเอาต์พุตทั้งหมดได้ไหม?
เซท

สถานะ 0x0, รหัส 1 113 (keysym 0xff51, ซ้าย)
acid009

และสถานะ 0x4, คีย์โค้ด 113 (keysym 0xff51, ซ้าย) หากกดด้วย Ctrl - สถานะจะเปลี่ยนเป็น 0x4 ตามที่คาดไว้
acid009

คำตอบ:


11

AutoKeyสามารถทำการเชื่อมโยงเช่นนี้ได้ แต่ต้องเรียกใช้บริการในพื้นหลัง (เช่น ahk แต่ไม่เหมือนกับ xmodmap)

กำหนดค่า "วลี" โดยที่ข้อความคือ<home>วิธีการวางKeyboardและปุ่มลัดคือ<ctrl>-<left>:

AutoKey GUI


ดี นี่อาจเป็นแบบที่ดีเช่นเดียวกับคำตอบที่นี่เช่นกันaskubuntu.com/questions/254424/ …
Kevin Bowen

1
รุ่นทั่วไปที่มีการขยายเพิ่มเติม: askubuntu.com/a/304834/194 นั่นทำให้คำถามนี้ซ้ำหรือไม่
cscarney

อาจเป็นเช่นนั้น แต่คุณก็ควรได้รับความโปรดปราน ;-)
Kevin Bowen

วิธีนี้ใช้ไม่ได้ผล
acid009

1
@JeffDror มันเป็น <page_up> และ <page_down> ( code.google.com/p/autokey/wiki/SpecialKeys )
cscarney

1

ฉันใช้คีย์บอร์ดอะลูมิเนียมของ Apple บนเวิร์กสเตชัน Ubuntu และคำสั่ง xmodmap ต่อไปนี้ทำเพื่อฉัน:

# remap Ctrl_L to ModeSwitch, then use it to map arrow keys so that
# they act like on the MacBook keyboard with Fn key pressed 
xmodmap -e "keycode 37=Mode_switch"
xmodmap -e "keycode 113 = Left NoSymbol Home"
xmodmap -e "keycode 114 = Right NoSymbol End"
xmodmap -e "keycode 111 = Up NoSymbol Prior"
xmodmap -e "keycode 116 = Down NoSymbol Next"

ทำงานได้อย่างสมบูรณ์เพราะCaps Lockกุญแจของฉันถูกแมปไปยังฟังก์ชั่นการควบคุมโดยใช้การตั้งค่าแป้นพิมพ์ Ubuntu ดังนั้นจึงไม่จำเป็นต้องใช้ปุ่มควบคุมซ้าย เนื่องจากอยู่ในตำแหน่งที่พบปุ่ม Fn บนแป้นพิมพ์ MacBook การสลับระหว่างแป้นพิมพ์เดสก์ท็อปและ MacBook จึงไม่ส่งผลกระทบต่อหน่วยความจำของกล้ามเนื้อ


0

Autokey ทำงานให้ฉัน พฤติกรรม Autokey เริ่มต้นจะเป็น: แผนที่ทั้งright ctrl+ arrowและ+left ctrl arrowและฉันต้องการเพียงright ctrlเพราะฉันใช้left ctrlนำทางคำ

นี่คือสคริปต์ที่ฉันใช้ใน Autokey:

output = system.exec_command('xinput query-state "AT Translated Set 2 keyboard" | grep down', getOutput=True)
# 105 is right ctrl
if 'key[105]=down' in output:
    keyboard.send_keys('<end>')
else:
    keyboard.send_keys('<ctrl>+<right>')

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

xinput list --name-only | grep -i keyb
Virtual core keyboard
Virtual core XTEST keyboard
AT Translated Set 2 keyboard

PS ฉันติดตั้ง Autokey จาก GitHub เนื่องจากแพ็คเกจในซอฟต์แวร์ Ubuntu เสียหาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.