Làm cách nào để Compose hoạt động trong ứng dụng GTK và Qt?


15

Tôi đã sử dụng Gnome trong một thời gian dài, nhưng phương thức nhập liệu vanilla X ( xim) ưa thích hơn hành vi GTK mặc định. Tôi chỉ đặt GTK_IM_MODULEQT_IM_MODULEcác biến môi trường thành xim, và không có bất kỳ vấn đề nào với các phần mở rộng cấu hình, Composekhóa, tùy chỉnh ~/.XComposemisc:typokiểu chữ.

Gnome 3.6 gần đây đã hoàn toàn nhập vào bàn phím bằng cách vận chuyển một nửa lỗi ibus lỗi và buộc nó vào người dùng . Tôi không thể làm cho bàn phím hoạt động tốt như trước (ngay cả khi ibusbị vô hiệu hóa) và phải từ bỏ hoàn toàn Gnome.

Bây giờ tôi sử dụng một trình quản lý cửa sổ đơn giản và cấu hình bàn phím của mình với setxkbmap. Mặc dù bàn phím hoạt động tốt trở lại, tôi không thể để phím Compose hoạt động ở mọi nơi. Soạn thảo hoạt động trong các ứng dụng X11 đơn giản ( xterm), nhưng nó không hoạt động trong cả ứng dụng GTK2, GTK3 và Qt.

Tôi sử dụng các phiên bản Archlinux hiện tại:

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

và bật Composekhóa như thế này:

setxkbmap ... -option 'compose:menu'

và xuất GTK_IM_MODULE, QT_IM_MODULEbiến:

$ echo $GTK_IM_MODULE $QT_IM_MODULE 
xim xim

Compose Khóa được nhận dạng đúng bởi X11:

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

Nó hoạt động đúng trong xterm, trình tự từ ~/.XComposebao gồm của tôi . Nó không hoạt động trong các ứng dụng GTK hoặc Qt. Giả sử, nếu tôi nhập Compose ', thì ứng dụng sẽ lặp lại 'ngay lập tức mà không cần đợi khóa thứ ba trong chuỗi.

Bây giờ tôi cho rằng một cái gì đó đã thay đổi trong Xorg (vì Composecũng không hoạt động trong ứng dụng Qt), hoặc trong GTK Qt. *_IM_MODULEbiến là không đủ bây giờ. Những gì khác được yêu cầu để làm cho GTK và Qt hiện đại nhận ra ximvà các chuỗi Soạn của nó?

PS Có một câu hỏi tương tự (và chưa được trả lời) về khóa Compose không hoạt động trong GTK . Không giống như người hỏi, tôi không ibuscài đặt.

Câu trả lời:


7

Tìm thấy một giải pháp hoạt động cho các ứng dụng GTK (nhưng không phải Qt). Một trong những cần phải thiết lập

XMODIFIERS="@im=none"

để X11 xử lý các phím chết. Cảm ơn @PabloSaratxaga vì câu trả lời của anh ấy .


2

Tôi đã có một vấn đề tương tự trong openSUSE. ~/.XComposesẽ bị các ứng dụng GTK + bỏ qua, vì vậy các chuỗi Compose của riêng tôi không hoạt động trong Firefox, Gimp và các ứng dụng khác.

Tôi phát hiện ra rằng gtk-query-immodules-2.0liệt kê một vài phương thức nhập liệu, nhưng không xim; vì vậy, không phân biệt GTK_IM_MODULEbiến số, ximkhông có sẵn. Cài đặt các gói gtk2-immodule-xim(và bạn bè) đã giải quyết vấn đề.

Có thể nhận xét này chứng tỏ hữu ích cho những người bị cùng một lời nguyền.


1

Đây là một cách cấu hình liên tục. Nó được mô tả ví dụ ở đây https://wiki.edubfox.org/ComposeKey#line-66 . Tôi đã cấu hình các phím soạn với ~ / .XCompose theo cách này. Tôi đã kiểm tra điều này trên cả hệ thống ubfox và debian.


Vấn đề là ngay cả phương pháp một lần đã ngừng hoạt động. Hướng dẫn thay đổi liên tục là cụ thể Debian / Ubuntu.
sastanin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.