การเปลี่ยนคีย์ Mod ใน Awesome WM


9

ฉันพยายามเปลี่ยนคีย์ mod อย่างยอดเยี่ยมจากปุ่ม windows เป็น Pause, Scroll Lock และ Escape

สำหรับปุ่มทั้งหมดฉันพยายามเปลี่ยนรายการในrc.luaไฟล์กำหนดค่า ฉันพยายามใช้ xmodmap เพื่อล้างล็อคและadd mod4 = ...

อย่างไรก็ตามดูเหมือนว่าไม่ว่าสิ่งที่ฉันทำกุญแจจะได้รับ "เหนียว" (บางครั้งในทางที่ไม่สอดคล้องแปลก) คือถ้าฉันกดพวกเขาเมื่อคอมพิวเตอร์ทำหน้าที่ราวกับว่าพวกเขาจะกดอย่างต่อเนื่อง

มีวิธีที่เหมาะสมในการเปลี่ยนแปลงพฤติกรรมนี้หรือไม่?

คำตอบ:


2

ฉันมีไฟล์ที่มีสองบรรทัดในบ้านของฉัน:

clear lock 
keysym Caps_Lock = Super_L

มันได้รับการเรียกจากrc.luaของฉันเช่นนี้:

awful.util.spawn("xmodmap /home/username/your_xmodmap.file")

ฉันไม่ต้องการใช้ capslock เป็น modkey clear lockคำสั่งล้างล็อคกะและไม่ควรมีการเปลี่ยนแปลงใด ๆ ที่ล็อคกุญแจอย่างใดอย่างหนึ่งที่กล่าวถึงในบรรทัดแรกของคำถามของฉัน
Archie

2

ล่าช้า แต่สำหรับการอ้างอิงของผู้อื่น:

ปัญหาน่าจะเป็นที่ xmodmap ไม่ได้ระบุคีย์ใด ๆ ที่คุณระบุว่าเป็นคีย์ตัวดัดแปลง AwesomeWM จึงไม่อนุญาตให้ใช้เป็นคีย์ตัวดัดแปลง

คุณสามารถลองเพิ่มคีย์ที่คุณต้องการใช้เป็น Mod3 (ซึ่งดูเหมือนจะไม่ถูกใช้กับทุกสิ่งในระบบส่วนใหญ่ที่ฉันเคยเห็น) จากนั้น rc.lua ของคุณสามารถแสดงรายการ modkey เป็น "Mod3"

เพิ่มเป็นคีย์ตัวดัดแปลง

คุณสามารถเห็นคีย์ตัวดัดแปลงของคุณ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_R (0x6c),  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)

ด้วยxevคุณสามารถดูชื่อของคีย์ใด ๆ ที่คุณกดในขณะที่มันทำงานและ Scroll Lock แสดงเหมืองขึ้นเป็น:

KeyPress event, serial 36, synthetic NO, window 0x2200001,
    root 0x225, subw 0x0, time 23086947, (433,729), root:(470,783),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x2200001,
    root 0x225, subw 0x0, time 23087091, (433,729), root:(470,783),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

คุณจะสังเกตเห็นชื่อของ keysym Scroll_Lockคือ

เพื่อเพิ่มความ Mod3 ~/.Xmodmapคุณจะต้องสร้างหรือเพิ่ม การเพิ่มบรรทัดนี้ทำให้ Mod3 เป็นเพียงปุ่ม Scroll_Lock เท่านั้น:

add Mod3 = Scroll_Lock

หากต้องการทดสอบการเปลี่ยนแปลงและดูข้อผิดพลาดใด ๆ ในไฟล์. Xmmap ของคุณให้เรียกใช้

xmodmap ~/.Xmodmap

กำลังอัปเดต rc.lua

ตามที่คุณได้เข้าใจแล้วอย่างชัดเจนแล้วไปที่ด้านบนของไฟล์ rc.lua ของคุณ (ซึ่งโดยปกติแล้ว~/.config/awesome/rc.lua) จะมีmodkey = "Mod4"บรรทัดหนึ่งบรรทัด modkey = "Mod3"การเปลี่ยนแปลงนี้

คำเตือน

คีย์ Esc ใช้สำหรับการจับคู่คีย์โดย AwesomeWM ฉันขอแนะนำให้ลองใช้ Scroll Lock หรือ Pause แทนเนื่องจากมีโอกาสน้อยกว่าที่จะเกิดข้อขัดแย้งอย่างกว้างขวาง ในความเป็นจริง AwesomeWM ดูเหมือนว่าสมมติว่า Esc สงวนไว้สำหรับการยกเลิกการดำเนินการปัจจุบัน

Scroll Lock ดูเหมือนว่าจะได้รับการปฏิบัติอย่างน่าอัศจรรย์ในฐานะกุญแจล็อคเช่นเดียวกับ Caps Lock ความแตกต่างคือพฤติกรรมการล็อคของ Caps Lock นั้นค่อนข้างง่ายในการปิดการใช้งานในขณะที่ Scroll Lock ไม่สามารถปิดการทำงานนี้ได้เท่าที่ฉันสามารถบอกได้

ฉันขอแนะนำให้ลองทำโดยใช้กุญแจเช่นปุ่ม Numpad 0 หรือสิ่งที่ไม่ได้ออกแบบมาให้เป็นกุญแจล็อคสถานะยืนยันว่าใช้งานได้จากนั้นลองเปลี่ยนเป็นปุ่มที่คุณต้องการ


0

ฉันรู้ว่าฉันมาสาย 3 ปี แต่ถ้าช่วยได้ก็เปลี่ยนได้

modkey = "Mod4"

กับ

modkey = "Mod1"

นั่นเป็นแนวคิดพื้นฐาน แต่คีย์เฉพาะที่เขาแสดงรายการไม่สามารถใช้กับการปรับเปลี่ยนอย่างง่ายเช่นเดียวกับ rc.lua การตั้งค่า modkey ใน rc.lua นั้นสามารถตั้งค่าเป็นคีย์ที่ xmodmap ถือว่าเป็นคีย์ตัวปรับแต่ง (เช่น shift หรือ ctrl) เท่านั้นและไม่สามารถตั้งค่าเป็น 'x' ได้
mtalexan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.