วิธีการตั้งค่าปุ่ม Super (ซ้าย) ใหม่เพื่อควบคุมปุ่ม


26

ใครช่วยกรุณาบอกฉันถึงวิธีการแมปSuperกุญแจ (ซ้าย) ของฉันเพื่อCtrlคีย์?

ฉันหมายถึงSuper(ซ้าย) ควรทำงานเป็นCtrlกุญแจ


คุณต้องการเพียงปุ่ม Super ที่เหลือเพื่อทำหน้าที่เป็น Ctrl หรือไม่? มันง่ายที่จะทำการแมปใหม่อีกครั้งในครั้งเดียวจากการตั้งค่ารูปแบบแป้นพิมพ์
pconley

ใช่ฉันต้องการเหลือ Super key เพียงเพื่อทำหน้าที่เป็น Ctrl ..
Sandy

ที่ไม่สำคัญซุปเปอร์อ้างถึงคีย์บนแป้นพิมพ์ของฉันที่มีโลโก้ MS Windows บนมันอยู่ระหว่าง Ctrl Alt ซ้ายและซ้าย / กรัม Alt ที่เหมาะสมและที่สำคัญที่มีโลโก้แปลกอื่นได้หรือไม่
René Nyffenegger

1
@ RenéNyffeneggerปุ่ม Super เป็นWindowsกุญแจสำหรับแป้นพิมพ์ PC และCommandปุ่มบนแป้นพิมพ์ Apple ฉันไม่แน่ใจว่าคีย์อื่น ๆ ที่คุณอธิบายคืออะไร
2559

คำตอบ:


28

ที่จะทำให้การเปลี่ยนแปลงที่สำคัญในแป้นพิมพ์ของคุณรวมทั้งแมปตัวละครและการเปลี่ยนแปลงการปรับเปลี่ยนคุณจะต้องใช้ประโยชน์ xmodmap - man xmodmapการดู มีสองวิธีในการดำเนินการเปลี่ยนแปลง:

  • ทั้งจากบรรทัดคำสั่ง

    xmodmap -e "your commands"
    
  • หรือเขียนคำสั่งไปยังไฟล์เช่น.xmodmaprcจากนั้นดำเนินการในรายการเข้าสู่ระบบหรือ. bashrc ของคุณด้วย

    xmodmap .xmodmaprc
    

    หากคุณตั้งชื่อไฟล์~/.xmodmapมันจะถูกดำเนินการโดยอัตโนมัติเมื่อเข้าสู่ระบบ

ตอนนี้คำสั่ง

สิ่งที่คุณต้องการทำคือกระบวนการสองขั้นตอน ก่อนอื่นให้คุณทำการยกเลิกการแมป Super จากตัวดัดแปลงจากนั้นคุณแมปมันเพื่อควบคุม

  1. เรียกใช้xmodmap -pmในหน้าต่างเทอร์มินัลเพื่อรับรายการตัวดัดแปลงที่ถูกผูกไว้ ในเครื่องของฉัน (และสันนิษฐานของคุณ) mod4ซูเปอร์จะเรียกว่าเป็น Super_LและSuper_Rเป็นปุ่มแยกซึ่งส่งออกแก้ไขเดียวกัน

    ตอนนี้คุณสามารถ unmap ตัวดัดแปลงจากมัน เรียกใช้คำสั่ง xmodmap (ใช้วิธีใดวิธีหนึ่งข้างต้น)

    remove mod4 = Super_L
    

    ตอนนี้ฟิสิคัลคีย์ยังคงถูกอ้างถึงภายในเป็น Super_L แต่มันไม่ได้ทำอะไรเลย

  2. ตอนนี้เพียงทำการแมปใหม่ รันคำสั่ง xmodmap:

    add control = Super_L
    

หากคุณต้องการยกเลิกในภายหลังเพียงแค่เรียกใช้คำสั่งเดียวกันกับอาร์กิวเมนต์ที่เหมาะสม

ไม่มี Super_R

ผลลัพธ์ของ xmodmap -pm อาจให้คุณได้หลายคีย์ชื่อ Super_L แต่ไม่มีชื่อ Super_R) ถ้าเป็นเช่นนั้นตอนนี้คุณมีคีย์พิเศษหลายปุ่มที่กำหนดให้กับ Control แต่ไม่มีใครมอบหมายให้ Super คุณจะต้องเปลี่ยนชื่อหนึ่งคีย์ (หมายเหตุ: มันอาจให้ Super_L หลายอันและ Super_R อย่างน้อยหนึ่งอันมันไม่เป็นไร)

ชื่อคีย์ในตารางล้วนมีเลขฐานสิบหกอยู่ในวงเล็บอยู่ข้างๆ หมายเลขนี้เป็นรหัสทางกายภาพของคีย์บนแป้นพิมพ์ของคุณ (สามารถแตกต่างกันไปตามรุ่น) หากคุณต้องการเปลี่ยน Super_LR เป็น Super_R อันดับแรกค้นหารหัสที่คุณต้องการเชื่อมโยงกับ Super_R (ไม่แน่ใจว่าเป็นรหัสที่ถูกต้องหรือไม่เรียกใช้xevจากนั้นแตะที่ Super ขวาสองครั้งที่ใดที่หนึ่งในเขาวงกตของเอาต์พุตคือ " keycode = 133 "(ด้วยหมายเลขอื่น) รันคำสั่ง xmodmap

keycode 133 = Super_R

เพื่อเปลี่ยนชื่อคีย์จากนั้น

add mod4 = Super_R

เพื่อมอบหมายให้ Super


ก่อนอื่นขอขอบคุณที่ใช้เวลากับฉัน เมื่อฉันพิมพ์ "ลบ mod4 = Super_L" ใน terminal ผมได้รับข้อความนี้: ลบ mod4 = Super_L: ไม่พบคำสั่ง สกรีนช็อต
Sandy

1
นั่นเป็นคำสั่งสำหรับยูทิลิตี้ xmodmap คุณต้องรันด้วยวิธีใดวิธีหนึ่งที่ฉันให้ไว้ในส่วนแรก ฉันได้แก้ไขคำตอบเพื่อให้ชัดเจนยิ่งขึ้น
pconley

คุณช่วยบอกวิธีการเรียกใช้คำสั่งเหล่านั้นเมื่อเริ่มต้นด้วยได้ไหม
Sandy

เมื่อคุณเข้าสู่ระบบหรือเมื่อระบบบูท? หากเดิมให้ใส่คำสั่งในไฟล์ '.xmodmap' ในโฮมไดเร็กตอรี่ของคุณ; หลังจะมีความเหมาะสมมากกว่าสำหรับคำถามที่แยกต่างหากตามบรรทัดของ 'ฉันจะรันสคริปต์เมื่อเริ่มต้นระบบ' ได้อย่างไร (คำถามดังกล่าวเคยถูกถามมาก่อน)
pconley

สำหรับผมไม่ได้ทำงานโดยไม่ต้องkeysum keysym Super_L = Control_L
Aliaksandr Sushkevich

19

บรรทัดคำสั่ง:

xmodmap -e "remove mod4 = Super_L"
xmodmap -e "add control = Super_L"

หรือใส่~/.Xmodmapเพื่อเปิดใช้งานเมื่อเริ่มต้น:

remove mod4 = Super_L
add control = Super_L

4

บน Ubuntu คุณสามารถแก้ไข/etc/default/keyboardและตั้งค่า:

XKBOPTIONS = "altwin: ctrl_win"

ที่:

Ctrl ถูกแมปไปยังปุ่ม Win (และปุ่ม Ctrl ปกติ)

อ่านman 5 keyboardข้อมูลเพิ่มเติม คุณสามารถค้นหาชุดของตัวเลือกต่าง ๆ ที่เป็นไปได้ทั้งหมดในระบบของคุณโดยทำ:

grep alt /usr/share/X11/xkb/rules/evdev.lst | grep win

2

หากคุณต้องการทำกับ GUI:

  1. ติดตั้ง / เปิด Gnome Tweaks
  2. คลิก Keyboard & Mouse
  3. คลิก Additional Layout Options
  4. ขยายตัว Ctrl position
  5. เลือก Swap Left Win with Left Ctrl

1

ลองกับสิ่งนี้:

clear Control
clear mod4
remove Control = Control_L Control_R
remove mod4 = Super_L Super_R
add Control = Super_L

ใส่เส้นข้างต้นของคุณและดำเนินการ~/.Xmodmapxmodmap ~/.Xmodmap

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