สแต็กอินพุต 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.cache
gtk-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 !!)