จะทำให้ Compose ทำงานในแอพ GTK และ Qt ได้อย่างไร?


16

ฉันใช้ Gnome เป็นเวลานาน แต่วิธีการอินพุต vanilla X ที่ต้องการ ( xim) เหนือพฤติกรรม GTK เริ่มต้น ฉันเพิ่งตั้งค่าGTK_IM_MODULEและQT_IM_MODULEตัวแปรสภาพแวดล้อมเป็นxim, และไม่มีปัญหากับการกำหนดค่าหลายรูปแบบ, Composeคีย์, ส่วนขยายที่กำหนดเอง~/.XComposeและการmisc:typoพิมพ์

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

setxkbmapตอนนี้ผมใช้จัดการหน้าต่างที่เรียบง่ายและกำหนดค่าแป้นพิมพ์ของฉันด้วย ในขณะที่แป้นพิมพ์ทำงานได้ดีอีกครั้งฉันไม่สามารถทำให้ปุ่มเขียนข้อความทำงานได้ทุกที่ เขียนผลงานในแอป X11 ธรรมดา ( xterm) แต่มันไม่สามารถใช้งานได้ทั้งในแอพ GTK2 หรือ GTK3 หรือ Qt

ฉันใช้เวอร์ชัน Archlinux ปัจจุบัน:

xorg-xinput 1.6.0
xorg-server 1.13.1
xf86-input-keyboard 1.6.2
gtk2 2.24.14
gtk3 3.6.4
qt 4.8.4

และเปิดใช้งานComposeคีย์เช่นนี้:

setxkbmap ... -option 'compose:menu'

และการส่งออกGTK_IM_MODULE, QT_IM_MODULEตัวแปร:

$ echo $GTK_IM_MODULE $QT_IM_MODULE 
xim xim

Compose คีย์ได้รับการยอมรับอย่างถูกต้องโดย X11:

$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
135 Multi_key

มันทำงานอย่างถูกต้องในxtermลำดับจาก~/.XComposeรวมของฉัน มันไม่ทำงานในแอพ GTK หรือ Qt สมมติว่าถ้าฉันป้อนCompose 'แล้วแอพพลิเคชั่นดังก้อง'ทันทีโดยไม่ต้องรอคีย์ที่สามตามลำดับ

ตอนนี้ฉันคิดว่ามีบางอย่างเปลี่ยนไปใน Xorg (เพราะComposeไม่ทำงานในแอพ Qt) หรือใน GTK และ Qt *_IM_MODULEตัวแปรไม่เพียงพอในตอนนี้ มีอะไรอีกบ้างที่ทำให้ GTK และ Qt สมัยใหม่รับรู้ximและลำดับการเขียน

PS มีความคล้ายกัน (และยังไม่ได้ตอบ) คำถามเกี่ยวกับการเป็นเขียนที่สำคัญไม่ได้ทำงานใน GTK ต่างจากผู้ถามฉันไม่ได้ibusติดตั้ง

คำตอบ:


8

พบวิธีแก้ปัญหาที่ใช้งานได้กับแอพ GTK (แต่ไม่ใช่ Qt) หนึ่งต้องตั้งค่า

XMODIFIERS="@im=none"

เพื่อให้ X11 จัดการกับคีย์ที่ตายแล้ว ขอขอบคุณที่ @PabloSaratxaga สำหรับคำตอบของเขา


3

ฉันมีปัญหาคล้ายกันใน openSUSE ~/.XComposeจะถูกละเว้นโดยแอปพลิเคชัน GTK + ดังนั้นลำดับการเขียนของฉันเองจึงไม่สามารถใช้งานได้ใน Firefox, Gimp และอื่น ๆ

ฉันพบว่าgtk-query-immodules-2.0รายการวิธีการป้อนข้อมูลบางอย่าง แต่ไม่xim; ดังนั้นโดยไม่คำนึงถึงGTK_IM_MODULEตัวแปรximจึงไม่สามารถใช้งานได้ การติดตั้งแพคเกจgtk2-immodule-xim(และเพื่อน) แก้ไขปัญหาได้

บางทีคำพูดนี้อาจเป็นประโยชน์สำหรับผู้ที่ทุกข์ทรมานจากคำสาปเดียวกัน


1

นี่เป็นวิธีการกำหนดค่าแบบต่อเนื่อง มันอธิบายตัวอย่างที่นี่https://wiki.edubuntu.org/ComposeKey#line-66 ฉันกำหนดค่าปุ่มเขียนด้วย ~ / .X แนะนำวิธีนี้ ฉันได้ตรวจสอบสิ่งนี้ทั้งในระบบ Ubuntu และ debian


ปัญหาคือว่าแม้วิธีการ one-off ได้หยุดทำงาน คำแนะนำสำหรับการเปลี่ยนแปลงแบบถาวรนั้นเป็นแบบเฉพาะ Debian / Ubuntu
sastanin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.