ทำการแมป alt ใหม่อีกครั้งเพื่อทำงานเป็น ctrl ที่ถูกต้อง


8

ฉันพยายามแมปของฉันใหม่right altเพื่อให้ทำงานเหมือนฉันright ctrlดังนั้นฉันสามารถใช้นิ้วหัวแม่มือขวาของฉันเพื่อกดctrlปุ่ม นี่คือ Ubuntu 12.04

ฉันได้สร้างไฟล์. Xmmap ในโฟลเดอร์โฮมของฉันด้วยเนื้อหาดังต่อไปนี้:

clear control
clear mod1
!keycode 64 = Alt_L Meta_L
keycode 108 = Alt_R Meta_R
add control = Control_L Control_R Alt_R
add mod1 = Alt_L Meta_L

อย่างที่คุณอาจเดาได้ว่าปุ่ม alt ด้านซ้ายของฉันมีรหัส 64 และleft altกุญแจของฉันมีรหัส 108

ใช้งานได้จริงในแง่ที่ปุ่ม alt ขวาของฉันทำงานเหมือนกับว่าฉันกดctrlปุ่ม

อย่างไรก็ตามaltตอนนี้คีย์ซ้ายของฉันไม่ทำอะไรอีกแล้วซึ่งหมายความว่าฉันไม่มีaltคีย์เหลือ นี่เป็นเรื่องแปลกที่xmodmapให้ผลลัพธ์ต่อไปนี้:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69),  Alt_R (0x6c)
mod1        Alt_L (0x40),  Alt_L (0xcc),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

สิ่งที่แปลกคือว่าเมื่อผมเอาการทำแผนที่ Alt_R ลงบนcontrolที่altปุ่มทำงาน

(เช่น. เปลี่ยนบรรทัดที่สองเป็นบรรทัดสุดท้ายเป็น :)

add control = Control_L Control_R

ตอนนี้แม้แต่ alt ขวาของฉันก็ยังทำหน้าที่เป็นaltกุญแจที่ทำให้ฉันสับสน หลังจากลบการแมป Alt_R จากบรรทัดควบคุมผลลัพธ์ของการxmodmapให้:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_L (0xcc),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

หวังว่าพวกคุณสามารถช่วยได้

PS ฉันใช้เว็บไซต์นี้เป็นแหล่งข้อมูล

คำตอบ:


6

คุณควรจะสามารถใช้เค้าโครงแป้นพิมพ์ >> ตัวเลือก >> ตำแหน่งคีย์ Ctrl >> Alt ด้านขวาเป็นปุ่ม Ctrl ด้านขวาแต่วิธีนี้ใช้ไม่ได้ สิ่งนี้ได้ถูกยื่นต่อ Debian เป็นBug # 663218 แล้ว

1) เริ่มต้นใหม่โดยลบ ~ / .Xmodmap

2) โปรดทราบว่าคุณไม่จำเป็นต้องยกเลิกการควบคุมและ Mod1 สิ่งนี้ทำให้ง่ายต่อการเปลี่ยนแปลงเฉพาะสิ่งที่คุณต้องการ ~ / .Xmodmap ของคุณจะเป็น:

!Swap right control and right alt
remove Control = Control_R
remove Mod1 = Alt_R
keycode 105 = Alt_R
keycode 108 = Control_R
add Control = Control_R
add Mod1 = Alt_R

2

หากคุณเป็นหนึ่งในคนที่โชคร้ายอย่างฉันที่ไม่สามารถรับ xmodmap เพื่อเปลี่ยน Alt ขวาด้วย Ctrl ขวาอาจจะช่วยได้

หากคุณกด Alt และ e ทางขวาและคุณได้éวิธีนี้เหมาะสำหรับคุณ (ต้องปรับปรุง)

รันสิ่งนี้ในเทอร์มินัล (ตรวจสอบรหัสของคุณด้วย xev):

xmodmap -e "keycode 108 = Alt_R Meta_R Alt_R Meta_R"

จากนั้นใส่รหัสนี้ใน. Xmodmap ของคุณ:

remove Control = Control_R
remove Mod1 = Alt_R
keycode 105 = Alt_R
keycode 108 = Control_R
add Control = Control_R
add Mod1 = Alt_R

รหัสนี้ตั้งค่าปุ่ม Alt_Gr ของคุณเป็น Alt_R จากนั้นจะสลับ Alt_r ด้วย Ctrl_R

หากคุณต้องการให้สิ่งนี้ยังคงอยู่หลังจากที่คุณออกจากระบบให้ใส่คำสั่งต่อไปนี้ในไฟล์เชลล์เริ่มต้นใด ๆ ของคุณตัวอย่างเช่น ~ / .profile:

if [ -f $HOME/.Xmodmap ]; then
  xmodmap -e "keycode 108 = Alt_R Meta_R Alt_R Meta_R"
  /usr/bin/xmodmap $HOME/.Xmodmap
fi

แหล่งที่มา: คำถาม 1 คำถาม 2


1

บน Ubuntu 19.04 เพื่อให้การแมปทั้งระบบคุณควรเปลี่ยนไฟล์สองไฟล์:

  • / usr / share / X11 / XKB / สัญลักษณ์ / altwin
  • / usr / share / X11 / XKB / สัญลักษณ์ / PC

เพิ่มส่วนต่อไปนี้ไปยังส่วนก่อนหน้า:

// Ctrl is mapped to the Alt.
partial modifier_keys
xkb_symbols "right_alt" {
    key <LALT> { [ Alt_L, Meta_L ] };
    key <RALT> { type[Group1] = "TWO_LEVEL",
                 symbols[Group1] = [ Control_R, Control_R ] };
    modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
    modifier_map Control { <LCTL>, <RALT> };
};

และทดแทนinclude "altwin(meta_alt)"ไปinclude "altwin(right_alt)"ในภายหลัง


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