ทำความเข้าใจและตั้งค่าวิธีการป้อนข้อมูลที่แตกต่างกัน


21

ฉันใช้Trisquel GNU / Linux 7.0 LTS กับ GNOME 3 Flashback Environment

ฉันได้ยินเกี่ยวกับวิธีการป้อนข้อมูลที่แตกต่างกันสามวิธี ได้แก่ ibus, และxim uimและดูเหมือนว่าibusติดตั้งไว้แล้วในระบบของฉัน

$ cat trisquel_7.0_i686.iso.manifest | grep ibus
gir1.2-ibus-1.0 1.5.5-1ubuntu3
ibus 1.5.5-1ubuntu3
ibus-gtk:i386 1.5.5-1ubuntu3
ibus-m17n 1.3.4-3ubuntu1
ibus-table 1.5.0.is.1.5.0.20130419-2
libibus-1.0-5:i386 1.5.5-1ubuntu3
libusb-0.1-4:i386 2:0.1.12-23.3ubuntu1
libusb-1.0-0:i386 2:1.0.17-1ubuntu2
libusbmuxd2 1.0.8-2ubuntu1
libustr-1.0-1:i386 1.0.4-3ubuntu2

ในขณะที่หันหน้าไปทางนี้ปัญหาผมได้เรียนรู้เกี่ยวกับการติดตั้งuimและการตั้งค่ากับที่GTK_IM_MODULE="uim" ~/.profileเมื่อเร็ว ๆ นี้ฉันออกuimและลบออกจากเส้นGTK_IM_MODULE="uim" ~/.profileแต่เพื่อเอาชนะข้อผิดพลาดนี้ฉันวางแผนที่จะกำจัดในibusตอนนี้

ไม่ต้องติดตั้งอินวิธีพิเศษใด ๆ (พูดสดติดตั้ง Trisquel) echo $GTK_IM_MODULEเอาท์พุทximดังนั้นฉันสับสนเพราะเมื่อพิจารณาจากการป้อนข้อมูลวิธีการเริ่มต้นคือibusแล้วทำไม$GTK_IM_MODULEพูดxim?

ฉันยังสามารถapt-get remove ibus? หรือฉันควรติดตั้งuimก่อนแล้วจึงลบibus? นอกจากนี้ฉันต้องการที่จะรู้ว่าวิธีการป้อนข้อมูลใดกำลังทำงานอยู่ibusหรือxim? และเป็นวิธีที่เหมาะสมในการตั้งค่าวิธีการป้อนข้อมูลอะไร (คือมันเป็นGTK_IM_MODULE="uim"ไป~/.profile)?

นอกจากนี้ฉันพบรูปแบบ gsettings หนึ่ง:

$ gsettings get org.gnome.desktop.interface gtk-im-module
'gtk-im-context-simple'

สั้น / กว้างฉันต้องการความช่วยเหลือในการทำความเข้าใจการติดตั้ง / ลบและตั้งค่าวิธีการป้อนข้อมูลที่แตกต่างกัน

  • ฉันจะรู้ได้อย่างไรว่าวิธีการป้อนข้อมูลใดที่ใช้งานอยู่ในปัจจุบัน
  • ฉันจะติดตั้งและตั้งค่าวิธีการป้อนข้อมูลแบบอื่นได้อย่างไร (ฉันควรลบอันอื่น)

คำตอบ:


45

สแต็กอินพุต X11 ทั้งหมดไม่เป็นระเบียบ ก่อนอื่นคุณไม่จำเป็นต้องใช้เฟรมเวิร์กวิธีการอินพุตพิเศษใด ๆ หากคุณเพียงแค่พิมพ์ตัวอักษรละตินหรือชุดอักขระแบบหลายตัวอักษรตามที่กำหนดโดยรูปแบบแป้นพิมพ์ XKB ของคุณ การพูดอย่างต่อเนื่องลำดับหลายคีย์ใด ๆ เช่นปุ่มกดต้องใช้วิธีการป้อนข้อมูลที่ง่ายมาก แต่จัดทำโดย libx11 / XKB และทำงานโดยไม่มีเฟรมเวิร์ก IM เพิ่มเติม ดังนั้นจึงเป็นการดีที่จะถอนการติดตั้ง ibus, uim, fcitx ทั้งหมดหรือวิธีการป้อนข้อมูลใด ๆ ที่คุณมีหากคุณไม่จำเป็นต้องพิมพ์ภาษาเช่นจีนหรือญี่ปุ่น

ดังที่คุณพูดไปแล้ว Gnome ทำให้ ibus เป็นวิธีการป้อนข้อมูลเริ่มต้นการตัดสินใจที่ทุกคนไม่พอใจ มีหลายคนที่ชอบ fcitx (ซึ่งดูเหมือนจะเป็นค่าเริ่มต้นสำหรับการแจกแจง KDE ส่วนใหญ่) มากกว่า ibus ด้วยเหตุผลหลายประการ: ไม่ว่าจะเป็นการสนับสนุนภาษาที่เหมาะสม (ส่วนใหญ่เป็นภาษาญี่ปุ่นเทียบกับภาษาจีนดั้งเดิมหรือภาษาจีนตัวย่อ) เนื่องจากฉันไม่ได้พูดภาษาตะวันออกใด ๆ ที่ต้องการกรอบการสนทนาพิเศษฉันจึงไม่สามารถเพิ่มอะไรลงไปในการอภิปรายนั้นได้ แต่ถ้าคุณมีความสนใจในรายละเอียดเพิ่มเติมเกี่ยว fcitx VS ibus คุณอาจต้องการที่จะอ่านนี้ลงวันที่เล็กน้อย (2012) แต่อาจจะยังคงถูกต้องบทความ LWN

อย่างไรก็ตามข้อเท็จจริงที่ว่า ibus เป็น IM เริ่มต้นสำหรับ Gnome ไม่ได้บังคับ คุณสามารถใช้วิธีป้อนข้อมูลอื่น ๆ ที่คุณชอบหรือไม่ใช้เลยก็ได้ การกำหนดค่า IM ทำได้ผ่านตัวแปรสภาพแวดล้อม แต่ยกเว้นเมื่อคุณ แต่เพียงผู้เดียวโดยใช้ GTK + การใช้งาน (ซึ่งผมสงสัย) GTK_IM_MODULEคุณควรตั้งมากกว่าเพียงแค่ วิธีการตั้งค่าวิธีการป้อนข้อมูลที่เหมาะสมคือ:

export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS="@im=fcitx"

ในกรณีของ fcitx หรือ

export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
export XMODIFIERS="@im=ibus"

ในกรณีของ ibus uim ทำงานในลักษณะเดียวกัน หากคุณต้องการปิดใช้งานวิธีการป้อนข้อมูลอย่างชัดเจนให้ใช้การตั้งค่าเหล่านี้:

export GTK_IM_MODULE="gtk-im-context-simple"
export QT_IM_MODULE="simple"

สตริงว่างทำงานเช่นกัน

คุณสามารถตั้งค่าตัวแปรเหล่านี้ทั้งระบบทั้งใน/etc/profile(หรือในไฟล์เฉพาะ/etc/profile.dตามลำดับ) ~/.xprofileหรือภายในท้องถิ่นของคุณ การตั้งค่าใน~/.bashrcหรือ~/.profileไม่ให้แน่ใจว่าบรรทัดจะถูกดำเนินการเมื่อเข้าสู่ระบบของคุณโดยใช้ตัวจัดการการเข้าสู่ระบบแบบกราฟิกเช่น GDM, SDDM, KDM หรือ LightDM หากคุณเริ่มต้นเซสชั่น X ของคุณโดยใช้ XDM, ผอมหรือคุณต้องการที่จะนำผู้ที่อยู่ในสายstartx~/.xinitrc

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

gsettings set org.gnome.settings-daemon.plugins.keyboard active false

หรือถอนการติดตั้ง ibus ทั้งหมด

แล้ว XIM ล่ะ? XIM เป็นโปรโตคอลวิธีการอินพุตที่ล้าสมัยซึ่งทั้ง ibus และ fcitx นำมาใช้เพื่อเหตุผลการสนับสนุนแบบดั้งเดิมเท่านั้น ไม่มีเหตุผลที่แท้จริงว่าทำไมคุณถึงต้องการใช้ XIM ในทุกวันนี้ เหตุผลเดียวที่คุณต้องการชุดGTK_IM_MODULE="xim"คือการแทนที่การตั้งค่า ComposeKey hardcoded GTK ของ

เพื่อตอบคำถามอื่นของคุณ: ฉันไม่คิดว่าจะมีวิธีการตรวจสอบวิธีการป้อนข้อมูลที่ใช้งานอยู่ในขณะนี้ยกเว้นการดูที่ตัวแปรสภาพแวดล้อมหรือรู้ว่ามีการติดตั้ง IM ใดในระบบของคุณ หากGTK_IM_MODULEไม่ได้ตั้ง GTK เลือกในตัว IM /etc/gtk-2.0/gtk.immodulesบนพื้นฐานของการกำหนดค่าใน GTK 3.0 ลักษณะในซึ่งถูกสร้างขึ้นโดย/usr/lib/gtk-3.0/3.0.0/immodules.cachegtk-query-immodules-3.0

เหตุผลที่GTK_IM_MODULEมีการตั้งค่าximอาจจะเป็นบางส่วนอยู่ที่ไหนสักแห่งนิยามตัวแปรจรจัดใน/etc/profile, /etc/profile.d/*หรืออื่น ๆ ของไฟล์เปลือก RC ประเทศหรือในประเทศของคุณ อย่าลังเลที่จะตั้งค่าหรือลบล้างตัวแปรนี้หากคุณรู้สึกว่าจำเป็นต้องทำเช่นนั้น

อย่างไรก็ตามตามความคิดเห็นรายงานข้อผิดพลาดของ Gnomeนี้ฉันคิดว่าค่าที่กำหนดค่าผ่านการgsettingsแทนที่ค่าที่ตั้งไว้GTK_IM_MODULEสำหรับแอปพลิเคชันที่เปิดใช้งาน DBus ดังนั้นอย่างน้อยแอปพลิเคชัน Gnome ของคุณอาจใช้gtk-im-context-simpleในขณะนี้ซึ่งหมายถึงพฤติกรรมมาตรฐาน (เช่นไม่มี ibus หรือ IM เฉพาะอื่น ๆ )


คำอธิบายและพื้นหลังที่ยอดเยี่ยม ตอนนี้ถ้าเพียง แต่gsettingsไม่ได้ segfault กับฉันเมื่อใดก็ตามที่ฉันพยายามทำอะไร xD (แม้ - รุ่น segfaults !!)
sqweek

ดังนั้นฉันจึงมี ibus และ xim บน Ubuntu 18.04 ของฉัน ฉันสามารถลบทั้งสองอย่างได้อย่างปลอดภัยหรือไม่หากฉันไม่ต้องการพิมพ์ภาษา CJK
Suncatcher

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