ฉันจะทำให้ Ctrl + Alt ทำงานเหมือนกับ Alt gr ใน Ubuntu ได้อย่างไร


11

ฉันเพิ่งเปลี่ยนมาใช้ Ubuntu บนแล็ปท็อปของฉันและสิ่งหนึ่งที่เกือบทำให้ฉันเปลี่ยนกลับไปเป็น windows ก็คือความจริงที่ว่าฉันไม่สามารถทำCtrl+ Altให้ทำหน้าที่เหมือน Alt gr ได้

ฉันมีโปรแกรมในหลายปีและเช่นฉันใช้เพื่อให้เข้าสู่ระบบ "$" โดยการกดctrl+ +alt 4ใน Ubuntu ฉันต้องใช้ "Alt gr + 4" แม่มดเกือบทำให้ฉันเสียสติ ...

มีการแก้ไขสำหรับสิ่งนี้หรือไม่?


1
คุณได้ลองเล่นกับการแมปของแป้นพิมพ์หรือไม่? help.ubuntu.com/community/ComposeKey
Tim Kennedy

คุณสามารถใช้xmodmapคำสั่งเพื่อทำสิ่งนี้ ตรวจสอบaskubuntu.com/questions/5095/typing-using-key-combinations
Bichoy

ลอง xmodmap ซึ่งมีอยู่ในแพ็คเกจ x11-xserver-utils ใน ubuntu ช่วยให้คุณสามารถทำการแมปชุดค่าผสมใด ๆ
Warren

@elitasson หากคุณพบคำตอบสำหรับคำถามของคุณเองโปรดเขียนเป็นคำตอบแยกต่างหาก
แบร์นฮาร์ด

@Bernhard ไม่ได้คุณไม่สามารถทำได้ด้วย xmodmap ไม่รองรับการทำให้ชุด Ctrl + Alt เป็นตัวดัดแปลงที่แตกต่างกัน แต่ผมคิดว่าคุณสามารถมี XKB
Gilles 'หยุดความชั่วร้าย'

คำตอบ:


3

คุณสามารถเพิ่มทางลัดส่วนกลางเพื่อเขียนตัวอักษรพิเศษ ฉันใช้สิ่งนี้บ่อยสำหรับเค้าโครงแป้นพิมพ์ภาษาเยอรมันของฉันกับ Ubuntu (บน Windows ใช้งานได้นอกกรอบ)

ฉันเพิ่มทางลัดต่อไปนี้:

Shift+ Enter+ 7เพื่อเขียนจดหมาย{

Shift+ Enter+ 0เพื่อเขียนจดหมาย}

Shift+ Enter+ 8เพื่อเขียนจดหมาย[

Shift+ Enter+ 9เพื่อเขียนจดหมาย]

ในการเพิ่มทางลัดเหล่านี้คุณจะต้องxbindkeysและxvkbd:

sudo apt-get install xbindkeys xvkbd

จากนั้นแก้ไขไฟล์กำหนดค่า:

vim ~/.xbindkeysrc

และเพิ่มบรรทัดต่อไปนี้ (แก้ไขได้ตามที่คุณต้องการ):

"xvkbd -xsendevent -text '{'"
    m:0xc + c:16
    Control+Alt + 7

"xvkbd -xsendevent -text '['"
    m:0xc + c:17
    Control+Alt + 8

"xvkbd -xsendevent -text ']'"
    m:0xc + c:18
    Control+Alt + 9

"xvkbd -xsendevent -text '}'"
    m:0xc + c:19
    Control+Alt + 0

"xvkbd -xsendevent -text '\[backslash]'"
    m:0xc + c:20
    Control+Alt + ssharp

"xvkbd -xsendevent -text '\[asciitilde]'"
    m:0xc + c:35
    Control+Alt + plus

จากนั้นโหลด xbindkeys อีกครั้ง:

xbindkeys -f ~/.xbindkeysrc

ขอขอบคุณที่หวือสำหรับการแบ่งปันนี้ ( http://forum.ubuntuusers.de/topic/strg-%2B-alt-alt-gr-wie-in-windows/ )


1
คุณช่วยอธิบายว่าสาย m: 0xc + c: XX ทำอะไรได้บ้าง
elitasson

1
ฉันรู้ว่านี่เป็นคำถามและคำตอบเก่า ๆ แต่สำหรับผู้ที่ต้องการเพิ่มตัวอักษรเพิ่มเติมเช่น | หรือ @ หรือ€: รหัสสำคัญที่ใช้c:XXอยู่เท่าที่ฉันรู้ไม่ใช่สากลดังนั้นคุณจะไม่มีโชคที่จะทำเช่นนั้น อย่างไรก็ตามคุณสามารถค้นหารหัสคีย์ได้โดยการติดตั้งและดำเนินการ "xev" ในบรรทัดคำสั่งของคุณ มันจะพิมพ์การกระทำของแป้นพิมพ์และเมาส์ทั้งหมดของคุณดังนั้นคุณจะต้องเลื่อนไปเล็กน้อยเพื่อค้นหาอักขระ "ของคุณ"
Nano Miratus

1
ตัวอย่างเช่นการกด <(เพื่อกำหนดค่า |) ขณะที่เรียกใช้ xev พิมพ์สิ่งนี้: KeyRelease event, serial 40, synthetic NO, window 0x4c00001, root 0x7e, subw 0x0, time 35363548, (135,60), root:(903,472), state 0x0, keycode 94 (keysym 0x3c, less), same_screen YES, XLookupString gives 1 bytes: (3c) "<" XFilterEvent returns: Falseหมายเลขที่คุณต้องการจะอยู่ในบรรทัดที่สามเสมอหลังจาก "keycode" ดังนั้นในกรณีนี้ 94.
Nano Miratus

2

หลังจากพยายามและล้มเหลวในการทำให้มันทำงานร่วมกับ xbindkeys และ xvkbd / xte (ฉันไม่เคยได้รับอักขระบางตัว {, [,],}, \, ฯลฯ เพื่อทำงานอย่างถูกต้องบางทีฉันอาจใช้เค้าโครงแป้นพิมพ์สแกนดิเนเวีย) ในที่สุดฉันก็พบทางออกที่ง่ายและใช้งานได้จริง: Autokey นี่คือคำแนะนำที่ถูกต้องเพื่อให้มันทำงานได้:

  1. ติดตั้งAutokeyผ่านซอฟต์แวร์ Ubuntu (ฉันใช้รุ่น GTK ไม่ใช่ KDE) หรือโดย:“ sudo apt-get install autokey-gtk”
  2. กำหนดค่าหนึ่งสคริปต์ต่อหนึ่งคีย์เช่นสำหรับ {ใช้รหัสนี้: keyboard.send_keys("<alt_gr>+7")และตั้งค่าปุ่มลัดเป็น Ctrl + Alt + 7 (ตั้งค่าปุ่มลัดแรกเป็น 7 จากนั้นเพิ่ม Ctrl และ Alt เป็นตัวดัดแปลง) อย่างน้อยก็ใช้กับคีย์การเขียนโค้ดที่สำคัญที่สุด: {[]}
  3. เพิ่ม autokey ให้กับ Startup Applications (ค้นหา“ start” เพื่อค้นหา) จากนั้นเพิ่มโปรแกรมด้วยคำสั่ง“ autokey” เป็นคำสั่ง

โซลูชันนี้จะทำงานกับทุกสิ่งที่ทำงานใน X-session ปัจจุบัน (ฉันคิดว่า) แต่จะไม่ทำงานหากคุณเริ่มต้นเซสชันใหม่โดยใช้ Ctrl + Alt + (F2-F6)


1

แม้ว่าสิ่งนี้จะยังไม่ตอบคำถามของคุณ แต่ฉันคิดว่านี่เป็นวิธีที่ง่ายกว่าคำตอบอื่น ๆ

เพื่อให้เป็นR-ALTเช่นAltGrนั้นคุณสามารถเพิ่มบรรทัดต่อไปนี้ใน~/.xinitrc:

setxkbmap -option lv3:ralt_switch

วิธีการอื่น ๆ ที่จะเปลี่ยนให้อยู่ในระดับที่ 3 (ที่มักจะประสบความสำเร็จโดยใช้AltGrกุญแจ) /usr/share/X11/xkb/symbols/level3สามารถพบและวิธีการใหม่ที่สามารถกำหนดใน


1

นี่คือสิ่งที่ฉันทำเพื่อให้การL-Altกระทำที่สำคัญเหมือนกับที่Altgrสำคัญ ฉันไม่ได้ลองกับCtrlAltกุญแจ

ประกอบด้วยในการแก้ไขไฟล์ level3

ในเทอร์มินัลเปลี่ยนไดเรกทอรี:

cd /usr/share/X11/xkb/symbols

ทำสำเนาของไฟล์ level3:

sudo cp level3 level3.old

แก้ไข level3 ด้วยโปรแกรมแก้ไขข้อความใด ๆ :

sudo gedit level3 

คุณควรหาบล็อกแบบนี้:

  key <RALT> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
    };
  modifier_map Mod5   { ISO_Level3_Shift };

เพิ่มสำเนาของบล็อกด้วย LALT (ซ้าย alt) แทน RALT (altgr):

  key <LALT> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
    };
  modifier_map Mod5   { ISO_Level3_Shift };

ตอนนี้ควรมี 3 บล็อคอื่น ๆ ที่เริ่มต้นด้วย key <RALT>

ทำเช่นเดียวกันกับพวกเขา

บันทึกและออก


0

ฉันใช้สัญลักษณ์พิเศษเมื่อฉันเขียนรหัสเท่านั้นดังนั้นฉันจึงสามารถแก้ไขได้นั่นคือ Sublime Text

ในค่ากำหนด -> การโยงคีย์ - ผู้ใช้

แทรกสิ่งต่อไปนี้:

[
{ "keys": ["ctrl+alt+2"], "command": "insert", "args": {"characters": "@"} },
{ "keys": ["ctrl+alt+3"], "command": "insert", "args": {"characters": "£"} },
{ "keys": ["ctrl+alt+4"], "command": "insert", "args": {"characters": "$"} },
{ "keys": ["ctrl+alt+5"], "command": "insert", "args": {"characters": "€"} },
{ "keys": ["ctrl+alt+7"], "command": "insert", "args": {"characters": "{"} },
{ "keys": ["ctrl+alt+8"], "command": "insert", "args": {"characters": "["} },
{ "keys": ["ctrl+alt+9"], "command": "insert", "args": {"characters": "]"} },
{ "keys": ["ctrl+alt+0"], "command": "insert", "args": {"characters": "}"} },
{ "keys": ["ctrl+alt++"], "command": "insert", "args": {"characters": "\\"} },
{ "keys": ["ctrl+alt+<"], "command": "insert", "args": {"characters": "|"} }

]

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