ฉันจะเพิ่มลำดับการแต่งคีย์แบบกำหนดเองได้อย่างไร


40

ฉันจะเพิ่มลำดับการแต่งคีย์แบบกำหนดเองได้อย่างไร

ตัวอย่างเช่นผมต้องการCompose, |, >พิมพ์สัญลักษณ์

ฉันได้ลองเพิ่มสิ่งต่อไปนี้ใน~/.XCompose:

# Import default rules from the system Compose file
include "%L"

# Custom definitions
<Multi_key> <bar> <greater> : "▸" U25B8 # Black right-pointing small triangle

แต่ลำดับใหม่ไม่สามารถใช้งานได้ทุกที่ยกเว้น xterm

การติดตั้ง ibus-table-composeจากนั้นเปิดใช้งานวิธีป้อนข้อความ Compose ใน IBus ไม่ได้แก้ปัญหา IBus เลียนแบบการเรียงลำดับคีย์จำนวนมาก แต่ไม่ใช่สิ่งที่ฉันสร้างขึ้น


ตอนนี้คุณพิมพ์สัญลักษณ์อย่างไร คุณสามารถแมปคำสั่งที่คุณใช้เพื่อพิมพ์สัญลักษณ์กับคีย์เฉพาะในรูปแบบแป้นพิมพ์ เพื่อหาสิ่งที่ keysym xevแน่นอนของสำคัญโดยเฉพาะอย่างยิ่งคุณสามารถใช้ แต่แน่นอนนี่เป็นเพียงการคาดเดาของฉัน
Nitin Venkatesh

3
@nitstorm ฉันพิมพ์ได้โดยการกด AltGr +> ซึ่งเป็นแผนที่ที่กำหนดเองที่ผมตั้งโดยการเพิ่ม keysym U25B8เพื่อ keycode ใน60 ~/.xmodmaprcฉันไม่ได้ถามวิธีพิมพ์▸; ฉันถามว่าจะสร้างการเรียงลำดับคีย์ได้อย่างไร
ændrük

คำตอบ:


7

สร้างไฟล์~/.XCompose(นั่นคือไฟล์ชื่อ.XComposeในโฟลเดอร์ "home" ของคุณ) ซึ่งมีสิ่งต่อไปนี้:

include "%L"   # import the default Compose file for your locale
<Multi_key> <bar> <greater>     : "▸"

ดูman 5 Composeข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบของไฟล์นี้


2
เรียบร้อย! มีวิธีการที่จะอ่านไฟล์นี้โดยไม่ต้องรีสตาร์ท X หรือไม่?
Jeremy Kerr

1
สิ่งนี้ฟังดูดี แต่~/.XComposeไฟล์ของฉันดูเหมือนจะไม่มีผลกระทบใด ๆ แม้หลังจากรีบูตเครื่อง คุณได้รับสิ่งนี้ในการทำงาน?
ændrük

@ Jeremy: ฉันไม่แน่ใจ แต่อาจจะเปลี่ยนเค้าโครงแป้นพิมพ์เป็นเค้าโครงอื่นแล้วกลับอาจทำงานได้
JanC

1
@ ændrük: ฉันดูเหมือนจะจำได้ว่า Gtk / GNOME งงงวยกับการตั้งค่าคีย์การเขียน (คุณสามารถทดสอบว่าการผสมผสานคีย์ผสมใหม่ทำงานในเช่น xterm เพื่อยืนยันกรณีนี้) ฉันดูเหมือนจะจำได้ว่าการแก้ปัญหาเกี่ยวข้องกับการเลือกวิธีการป้อนข้อมูลทางเลือกที่ข้ามการทำสมาธิที่เป็นปัญหา อาจจะถามคำถามใหม่เกี่ยวกับเรื่องนี้เพราะมันไม่เพียง แต่มีประโยชน์สำหรับเรื่องนี้ แต่ IIRC ยังแก้ไขการเขียนแผนที่เฉพาะสถานที่และอื่น ๆ )
JanC

1
ขณะที่อย่างน้อย 18.04 LTSคำตอบในตอนนี้ควรจะทำงานโดยไม่จำเป็นต้องเปลี่ยนแปลงวิธีการป้อนข้อมูล
ændrük

22
  1. สร้างไฟล์ชื่อ.XComposeในไดเรกทอรีบ้านของคุณ ( ~/.XCompose) ซึ่งประกอบด้วย:

    # import the default Compose file for your locale
    include "%L"
    
    <Multi_key> <bar> <greater>  : "▸"
    

    ดูman 5 Composeข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบของไฟล์นี้

  2. เพิ่มรายการต่อไปนี้ใน~/.profile:

    export GTK_IM_MODULE="xim"
    

    บน Ubuntu 18.04 (อาจเป็นแบบอื่น) คุณอาจต้องใช้สิ่งต่อไปนี้แทน:

    export GTK_IM_MODULE="gtk-im-context-simple"
    
  3. ออกจากระบบและกลับมาอีกครั้ง หรือรีสตาร์ท X. หรือรีบูต


3
ฉันสังเกตเห็นว่าด้วยวิธีนี้ฉันไม่สามารถใช้ Ctrl-Shift-u ได้อีกต่อไปในการแทรกอักขระ Unicode ตามตัวเลข ดังนั้นฉันจึงคิดว่ามันจะเปลี่ยนสิ่งทั่วไปจากสิ่งที่ Gnome ไปเป็นสิ่ง X ซึ่งถูกกำหนดค่าโดยไฟล์ ~ / .XCompose มีวิธีแก้ไขสิ่ง Gnome แทนไหม? ฉันต้องการเก็บคุณลักษณะ Ctrl-Shift-u ไว้
Alfe

2
@Alfe การใช้ UIM ตามที่แนะนำไว้ที่ด้านล่างของฟอรั่ม Ubuntu:. ไฟล์แนะนำไม่อ่านใน 11.04 GNOMEใช้ได้กับฉันด้วยการตั้งค่าเริ่มต้นใน Debian jessie / sid (ดูim-config(8) สำหรับการปรับแต่ง) นั่นคือการตั้งค่า. XCompose นั้นทำงานได้ทั้งในแอพพลิเคชั่น GTK (GNOME) และ Qt (KDE) และ. XCompose และ Ctrl + Shift + U ทั้งคู่ทำงานในแอปพลิเคชัน GTK (เช่น Eclipse)
แหลม

ขอขอบคุณ! เพื่อให้ได้คุณก็แพคเกจหรือไม่คุณมีบางสิ่งบางอย่างที่จะกำหนดค่าอื่น? apt-getuim
Alfe

1
ฉันพยายามที่จะทำงานนี้บางเวลา แต่จะไม่มีประโยชน์ มันจะมีประโยชน์มากหากได้ยินสิ่งที่คุณทำอย่างแน่นอนนอกจากการติดตั้งแพ็คเกจ uim อย่างน้อยก็สามารถช่วยให้มั่นใจได้ว่าวิธีการของคุณไม่ทำงานบน Ubuntu 12.04
Alfe

@dan_waterford สวัสดีฉันเพิ่งถามคำถามนี้ที่นี่และมี "ซ้ำกันได้" กับคำถามนี้ อย่างไรก็ตามฉันได้ลองคำตอบแล้วไม่สามารถใช้งานได้ ความคิดใด ๆ :)
Owen_R

9

บน Ubuntu 14.04 ฉันทำสิ่งต่อไปนี้:

1) ติดตั้งuimโดยใช้ซอฟท์แวผู้จัดการแพคเกจอื่น ๆ เช่นuim-xim, uim-gtk2, uim-gtk3และuim-qtมีการติดตั้งอัตโนมัติ ดูhttps://launchpad.net/ubuntu/+source/uim

2) กำหนดตัวแปรสภาพแวดล้อมโดยเพิ่มบรรทัดถัดไป~/.profileด้วยวิธีนี้ลำดับคีย์การเขียนที่กำหนดเองจะมีผลเฉพาะกับผู้ใช้ปัจจุบัน:

# Restart the X-server after making alterations using:
# $ sudo restart lightdm
# It seems only GTK_IM_MODULE or QT_IM_MODULE needs to be defined.
export GTK_IM_MODULE="uim"
export QT_IM_MODULE="uim"

~/.XComposeแฟ้ม: จาก OP ควรจะทำงานหลังจากรีสตาร์ท 1) อูบุนตูหรือ 2) เพียงเซิร์ฟเวอร์ X โดย runnung คำสั่งต่อไปในสถานี:

$ sudo restart lightdm

หมายเหตุ: การรีสตาร์ทจำเป็นเพียงหลังจากแก้ไข~/.profileไฟล์การแก้ไข~/.XComposeจะมีผลในครั้งถัดไปที่แอปพลิเคชัน (เทอร์มินัล Gedit ฯลฯ ) เริ่มต้นขึ้น

ในการตรวจสอบว่าตัวแปรสภาพแวดล้อมถูกตั้งค่าอย่างถูกต้องหรือไม่ให้ป้อนคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:

$ printenv | grep IM_MODULE

ขอบคุณมากที่:

เกี่ยวกับลำดับการเขียนคีย์แบบกำหนดเอง:

เกี่ยวกับการแม็พคีย์บอร์ดที่กำหนดเอง:

ตัวอย่าง.Xcomposeไฟล์ไปยังWindow US Internationalคีย์บอร์ดเลียนแบบ:

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