การใช้ setxkbmap สำหรับการแมปแบบง่าย ๆ (คล้ายกับ xmodmap)


13

ฉันประสบปัญหาบางอย่างหลังจากทำการแมปแป้นพิมพ์ใหม่ด้วย xmodmap: การตั้งค่าจะถูกรีเซ็ตแบบสุ่มหลังจาก 2-20 นาทีหลังจากใช้ Googled แต่ไม่มีความช่วยเหลือ: มีบางสิ่งรีเซ็ตพวกเขา แต่ทั้งหมดที่กล่าวถึงนำไปใช้กับ xfce ในขณะที่ฉันอยู่ภายใต้ 14.04 Ubuntu ด้วยความสามัคคี

ฉันเห็นวลีเช่น 'use xkb, ลืม xmodmap' แต่ก็ยังไม่รู้ว่าจะทำอย่างไร มันเป็นความลับหรือซับซ้อนมากเพราะปริมาณของข้อมูลที่น้อยกว่าอย่างมากสำหรับวิธี xmodmap

นี่คือรายการปรับแต่งของฉัน:

xmodmap -e "keycode 84 = Down"
xmodmap -e "keycode 79 = Home"
xmodmap -e "keycode 80 = Up"
xmodmap -e "keycode 83 = Left"
xmodmap -e "keycode 85 = Right"
xmodmap -e "keycode 87 = End"
xmodmap -e "keycode 90 = Insert"
xmodmap -e "keycode 91 = Delete"
xmodmap -e "keycode 89 = Next"
xmodmap -e "keycode 81 = Prior"

โดยที่ keycodes เป็นคีย์ที่สอดคล้องกันบน numpad โดยที่ numlock = off (โดยทั่วไปฉันกำลังแทนที่ KP_Del ด้วย Delete, KP_Home กับ Home เป็นต้น - ไม่ต้องถามว่าทำไม)

มีคนช่วยหาวิธีทำโดยใช้ xkb - อย่างน้อยหนึ่งบรรทัดหรือไม่ และจะหา "ชื่อ" ของกุญแจสำหรับคนอื่นได้อย่างไรเพื่อที่ฉันจะได้ทำส่วนที่เหลือด้วยตัวอย่าง?


5
อ๋อ มีปัญหาเดียวกัน ดูที่นี่: rlog.rgtti.com/2014/05/01/...และaskubuntu.com/questions/422650/... หากคุณสามารถค้นหาวิธีการใช้งานได้xkbโดยไม่ต้องเขียนไฟล์ระบบใหม่เขียนคำตอบที่นี่ ... คุณจะได้รับรางวัลเป็นจำนวนมาก
Rmano

ว้าว - ในที่สุดคำแนะนำการแมป xkb ที่ทำให้สิ่งต่าง ๆ ชัดเจนขึ้น ... แต่ฉันไม่เห็นสิ่งที่เกี่ยวกับการแมปของโฮมการลบและการขึ้น & ลง มันเกี่ยวกับตัวอักษรกรีกหรือสเปนเสมอ จนถึงตอนนี้ฉันก็ไปทางอื่น - พยายามที่จะหยุดระบบจากการแทนที่การตั้งค่า Xmodmap ของฉัน (สูตร # 3 จากที่นี่: programmingiroiro.blogspot.com/2013/03/ ...... )
Den Drobiazko

1
แนวคิดที่ไม่ดี - ไม่มีการสลับโครงร่างหลังจากนั้น (
Drobiazko

คำตอบ:


4

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

โปรดสังเกตว่าเทมเพลตที่จะคัดลอกและแก้ไขสำหรับการแก้ไขแป้นพิมพ์นั้นหาได้ยาก ในแป้นพิมพ์ของฉันเช่นเรขาคณิตคือ "pc105" /usr/share/X11/xkb/symbols/pcนี้ถูกกำหนดไว้ใน ถ้าคุณดูมันมันรวมถึง :

[...]
key <SPCE> {        [        space          ]       };

include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"

key <BKSP> {        [ BackSpace, BackSpace  ]       };
[...]

ปุ่มกดถูกกำหนดในไฟล์ /usr/share/X11/xkb/symbols/keypad

[...] 
default  partial hidden keypad_keys
xkb_symbols "x11" {
   include "keypad(operators)"

   key  <KP7> {        [  KP_Home,     KP_7    ]       };
   key  <KP8> {        [  KP_Up,       KP_8    ]       };
[...]

สำหรับชื่อของปุ่มสัญลักษณ์ (keysims) ที่ดีที่สุดที่จะดูเป็นลงในแฟ้ม/usr/include/X11/keysymdef.h; คุณอาจต้องติดตั้งแพ็คเกจการพัฒนาเพื่อติดตั้ง (หรือติดตั้งโดยการติดตั้งx11proto-core-dev):

[...]
/* Cursor control & motion */

#define XK_Home                          0xff50
#define XK_Left                          0xff51  /* Move left, left arrow */
#define XK_Up                            0xff52  /* Move up, up arrow */
[...]

ชื่อ keysym เป็นชื่อที่คุณลบสตริง "XK_" ครั้งเดียว

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