ฉันต้องการใช้แป้นพิมพ์อะลูมิเนียมแบบยาวของAppleกับปุ่มเปลี่ยนคำสั่งCmd
และการควบคุม Ctrl
นี่เป็นวิธีการทำทีละขั้นตอนใน Trusty Tahr (14.04) โดยใช้xkb
?
หมายเหตุ: นี้แก้ปัญหาไม่ทำงานสำหรับฉันเป็นxkb
แทนที่xmodmap
ใน13.04 หรือแม้ก่อนหน้านี้
ฉันต้องการใช้แป้นพิมพ์อะลูมิเนียมแบบยาวของAppleกับปุ่มเปลี่ยนคำสั่งCmd
และการควบคุม Ctrl
นี่เป็นวิธีการทำทีละขั้นตอนใน Trusty Tahr (14.04) โดยใช้xkb
?
หมายเหตุ: นี้แก้ปัญหาไม่ทำงานสำหรับฉันเป็นxkb
แทนที่xmodmap
ใน13.04 หรือแม้ก่อนหน้านี้
คำตอบ:
คำตอบนี้จะขึ้นอยู่กับคำตอบที่ได้รับส่วนใหญ่ที่นี่ เหตุผลที่ฉันถามและตอบคำถามนี้อีกครั้งเป็นขั้นตอนสุดท้ายซึ่งไม่ได้อธิบายอย่างสมบูรณ์ สำหรับการอ่านเพิ่มเติมxkb
ดูที่นี่ , ที่นี่และที่นี่
สร้างไฟล์ใน/usr/share/X11/xkb/symbols
(อาจเป็น/etc/X11/xkb/symbols
) เรียกaltwin2
และมีการแม็พต่อไปนี้:
// Control is SWAPPED with Win-keys
partial modifier_keys
xkb_symbols "cmd_n_ctrl" {
key <LWIN> { [ Control_L ] };
key <RWIN> { [ Control_R ] };
key <LCTL> { [ Super_L ] };
modifier_map Control { <LWIN>, <RWIN> };
modifier_map Mod4 { <LCTL> };
};
แทรกบรรทัดต่อไปนี้ใต้option = symbols
ส่วนใน/usr/share/X11/xkb/rules/evdev
(ไม่ต้องสนใจคำเตือนในบรรทัดแรก):
altwin2:cmd_n_ctrl = +altwin2(cmd_n_ctrl)
เพิ่มตัวเลือกใหม่/usr/share/X11/xkb/rules/evdev.lst
ในส่วนoption
:
altwin2:cmd_n_ctrl Win swapped with Ctrl
หากคุณไม่ทราบว่าแฟ้มการกำหนดค่าแป้นพิมพ์ของคุณคือคุณสามารถแก้ไขได้โดยใช้dconf บรรณาธิการเพิ่ม"altwin2:cmd_n_ctrl"
ในxkb-options
ภายใต้องค์กร :: คำพังเพย :: เดสก์ทอป :: การป้อนข้อมูลแหล่งที่มาตามที่แสดงไว้ที่นี่ หากคุณรู้ว่าไฟล์กำหนดค่าของคุณอยู่ที่ไหนคุณควรรวมตัวเลือกใหม่ในXkbOptions
ฟิลด์ดังที่แสดงด้านล่าง:
Section "InputClass"
Identifier "keyboard-layout"
Driver "evdev"
MatchIsKeyboard "yes"
Option "XkbLayout" "us, ru, ca, fr"
Option "XkbOptions" "altwin2:cmd_n_ctrl"
EndSection
รีบูตหรือรีสตาร์ทlightdm
เพื่ออัพเดตการเปลี่ยนแปลง:
sudo restart lightdm
หมายเหตุ: หากมีการเปลี่ยนแปลงใด ๆ จะทำโดยตรงในรูปแบบไฟล์เช่นไม่ได้ใช้ตัวเลือกไฟล์ที่เก็บไว้ชั่วคราวใน/var/lib/xkb/
ความต้องการที่จะถูกลบออกตามที่ระบุไว้ที่นี่
!option = symbols
ส่วนไม่ใช่options = symbols
(ใช้เวลาค้นหา "options =" เพื่อค้นหาส่วน)
ใน 16.04 นี่คือวิธีที่ฉันได้รับสิ่งนี้ในที่สุด Xmodmap ไม่สามารถทำงานได้อย่างเป็นสากลในแอพทั้งหมดเครื่องมือ gnome tweak ขาดฟังก์ชั่น dconf การแก้ไขการแลกเปลี่ยนคีย์ altwin2 แบบกำหนดเอง (เช่นคำตอบหลักที่นี่) ล้มเหลวดังนั้นฉันจึงฉีกผมออกจนกว่าจะรวมคำตอบหลายคำเข้าด้วยกัน และวิธีการแก้ปัญหาที่สง่างาม:
gksudo gedit /usr/share/X11/xkb/symbols/pc
เปลี่ยนเป็น:
default partial alphanumeric_keys modifier_keys
xkb_symbols "pc105" {
key <ESC> { [ Escape ] };
// The extra key on many European keyboards:
key <LSGT> { [ less, greater, bar, brokenbar ] };
// The following keys are common to all layouts.
key <BKSL> { [ backslash, bar ] };
key <SPCE> { [ space ] };
include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"
key <BKSP> { [ BackSpace, BackSpace ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <RTRN> { [ Return ] };
key <CAPS> { [ Caps_Lock ] };
key <NMLK> { [ Num_Lock ] };
key <LFSH> { [ Shift_L ] };
key <LCTL> { [ Alt_L ] };
key <LWIN> { [ Super_L ] };
key <RTSH> { [ Shift_R ] };
key <RCTL> { [ Alt_R ] };
key <RWIN> { [ Super_R ] };
key <MENU> { [ Menu ] };
// Beginning of modifier mappings.
modifier_map Shift { Shift_L, Shift_R };
modifier_map Lock { Caps_Lock };
modifier_map Control{ Control_L, Control_R };
modifier_map Mod2 { Num_Lock };
modifier_map Mod4 { Super_L, Super_R };
// Fake keys for virtual<->real modifiers mapping:
key <LVL3> { [ ISO_Level3_Shift ] };
key <MDSW> { [ Mode_switch ] };
modifier_map Mod5 { <LVL3>, <MDSW> };
key <ALT> { [ NoSymbol, Control_L, Control_R ] };
//include "altwin(meta_alt)"
key <LALT> { [ Control_L ] };
key <RALT> { [ Control_R ] };
modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
key <META> { [ NoSymbol, Meta_L, Meta_R ] };
modifier_map Mod1 { <META> };
key <SUPR> { [ NoSymbol, Super_L ] };
modifier_map Mod4 { <SUPR> };
key <HYPR> { [ NoSymbol, Hyper_L ] };
modifier_map Mod4 { <HYPR> };
// End of modifier mappings.
key <OUTP> { [ XF86Display ] };
key <KITG> { [ XF86KbdLightOnOff ] };
key <KIDN> { [ XF86KbdBrightnessDown ] };
key <KIUP> { [ XF86KbdBrightnessUp ] };
};
hidden partial alphanumeric_keys
xkb_symbols "editing" {
key <PRSC> {
type= "PC_ALT_LEVEL2",
symbols[Group1]= [ Print, Sys_Req ]
};
key <SCLK> { [ Scroll_Lock ] };
key <PAUS> {
type= "PC_CONTROL_LEVEL2",
symbols[Group1]= [ Pause, Break ]
};
key <INS> { [ Insert ] };
key <HOME> { [ Home ] };
key <PGUP> { [ Prior ] };
key <DELE> { [ Delete ] };
key <END> { [ End ] };
key <PGDN> { [ Next ] };
key <UP> { [ Up ] };
key <LEFT> { [ Left ] };
key <DOWN> { [ Down ] };
key <RGHT> { [ Right ] };
};
บันทึก
rm -rf /var/lib/xkb/*
(ฉันไม่รู้ว่าจำเป็นต้องใช้สิ่งนี้หรือไม่ แต่ฉันทำ)
Reboot