Hiểu và thiết lập các phương thức nhập khác nhau


21

Tôi sử dụng Trisquel GNU / Linux 7.0 LTS với Môi trường Flashback Gnome 3 .

Tôi nghe nói về ba phương thức nhập liệu khác nhau viz. ibus, ximuim. Và nó dường như ibusđược cài đặt sẵn trên hệ thống của tôi.

$ 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

Trong khi đối mặt với vấn đề này, tôi đã học về cài đặt uimvà thiết lập GTK_IM_MODULE="uim"tại ~/.profile. Gần đây tôi đã gỡ bỏ uimvà loại bỏ GTK_IM_MODULE="uim"dòng từ ~/.profile. Nhưng để khắc phục lỗi này , tôi đang lên kế hoạch loại bỏ ibusngay bây giờ.

Không cài đặt bất kỳ phương thức nhập liệu bổ sung nào, (giả sử cài đặt mới của Trisquel), các echo $GTK_IM_MODULEkết quả đầu ra ximVì vậy, tôi bối rối vì xem xét phương thức nhập liệu mặc định là vậy ibus, tại sao lại $GTK_IM_MODULEnói xim?

Ngoài ra tôi có thể apt-get remove ibus? hoặc tôi nên cài đặt uimtrước và sau đó loại bỏ ibus? Ngoài ra tôi muốn biết phương thức nhập nào hiện đang hoạt động ibushay xim? Và đúng cách để thiết lập các phương thức nhập liệu là gì (tức là nó GTK_IM_MODULE="uim"phải ~/.profile)?

Ngoài ra, tôi tìm thấy một lược đồ gsinstall:

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

Ngắn gọn / Rộng rãi Tôi cần trợ giúp để hiểu cách cài đặt / gỡ bỏ và thiết lập phương thức nhập khác nhau:

  • Làm thế nào để tôi biết phương thức nhập liệu nào đang hoạt động?
  • Làm cách nào để cài đặt và thiết lập phương thức nhập liệu khác nhau? (tôi có nên xóa cái khác không?)

Câu trả lời:


45

Toàn bộ ngăn xếp đầu vào X11 là một mớ hỗn độn. Trước hết, bạn không cần bất kỳ khung phương thức nhập đặc biệt nào nếu bạn chỉ nhập các ký tự Latin hoặc các chuỗi soạn thảo nhiều ký tự như được định nghĩa theo bố cục bàn phím XKB của bạn. Nói một cách chính xác, bất kỳ chuỗi đa khóa nào, chẳng hạn như khóa chết, đều yêu cầu một phương thức nhập rất đơn giản. Nhưng chúng được libx11 / XKB cung cấp và hoạt động mà không cần bất kỳ khung IM bổ sung nào. Vì vậy, hoàn toàn ổn khi gỡ cài đặt tất cả ibus, uim, fcitx hoặc bất kỳ phương thức nhập nào bạn có nếu bạn không cần phải nhập các ngôn ngữ như tiếng Trung hoặc tiếng Nhật.

Như bạn đã nói, Gnome đã biến ibus thành phương thức nhập mặc định, một quyết định không phải ai cũng hài lòng. Có nhiều người thích fcitx (dường như là mặc định cho hầu hết các bản phân phối KDE) trên ibus vì một số lý do: có thể là hỗ trợ ngôn ngữ phù hợp (chủ yếu là tiếng Nhật so với tiếng Trung Quốc truyền thống) hoặc các vấn đề về hiệu suất. Vì tôi không nói bất kỳ ngôn ngữ phương Đông nào cần khung IM đặc biệt, tôi thực sự không thể thêm bất cứ điều gì vào cuộc tranh luận đó. Nhưng nếu bạn quan tâm đến nhiều chi tiết hơn về fcitx vs ibus, bạn có thể muốn đọc bài viết hơi ngày này (2012), nhưng có lẽ vẫn là bài viết chính xác của LWN .

Tuy nhiên, thực tế là ibus là IM mặc định cho Gnome không bắt buộc. Bạn có thể sử dụng bất kỳ phương thức nhập liệu nào khác mà bạn thích hoặc không có gì cả. Cấu hình IM được thực hiện thông qua các biến môi trường. Nhưng ngoại trừ khi bạn chỉ sử dụng các ứng dụng GTK + (mà tôi nghi ngờ), bạn nên đặt nhiều hơn chỉ GTK_IM_MODULE. Cách thích hợp để đặt phương thức nhập là:

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

trong trường hợp của fcitx hoặc

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

trong trường hợp của ibus. uim hoạt động theo cùng một cách. Nếu bạn muốn vô hiệu hóa bất kỳ phương thức nhập liệu nào, hãy sử dụng các cài đặt sau:

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

Một chuỗi rỗng cũng hoạt động.

Bạn có thể đặt các biến này trong toàn hệ thống /etc/profile(hoặc một tệp chuyên dụng bên trong /etc/profile.d, tương ứng) hoặc bên trong cục bộ của bạn ~/.xprofile. Đặt nó vào ~/.bashrchoặc ~/.profilesẽ không đảm bảo rằng các dòng sẽ được thực thi khi đăng nhập vào hệ thống của bạn bằng trình quản lý đăng nhập đồ họa như GDM, SDDM, KDM hoặc LightDM. Nếu bạn đang bắt đầu phiên X của mình bằng XDM, Slim hoặc startx, bạn cần đặt các dòng đó vào ~/.xinitrc.

Nếu bạn đã định cấu hình phương thức nhập khác với ibus, hãy chuyển đến cài đặt Gnome sau đó và đảm bảo mọi cài đặt liên quan đến ibus đều bị tắt, đặc biệt là mọi phím tắt. Ngoài ra, yêu cầu Gnome không chạm vào cài đặt bàn phím của bạn bằng cách sử dụng:

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

hoặc gỡ cài đặt ibus hoàn toàn.

Bây giờ còn XIM thì sao? XIM là một giao thức phương thức nhập liệu khá lỗi thời mà cả ibus và fcitx chỉ thực hiện vì lý do hỗ trợ cũ. Không có lý do thực sự tại sao bạn muốn sử dụng XIM ngày nay hơn bất kỳ hai thứ nào trong số đó. Lý do duy nhất khiến bạn muốn đặt GTK_IM_MODULE="xim"ghi đè cài đặt ComposeKey được mã hóa cứng của GTK .

Để trả lời câu hỏi khác của bạn: Tôi không nghĩ rằng thực sự có một cách để phát hiện phương thức nhập nào đang hoạt động vào lúc này ngoại trừ việc xem xét các biến môi trường hoặc biết IM nào được cài đặt trên hệ thống của bạn. Nếu GTK_IM_MODULEkhông được đặt, GTK chọn IM tích hợp trên cơ sở cấu hình trong /etc/gtk-2.0/gtk.immodules. GTK 3.0 trông trong /usr/lib/gtk-3.0/3.0.0/immodules.cacheđó được tạo ra bởi gtk-query-immodules-3.0.

Lý do tại sao GTK_IM_MODULEđược thiết lập để ximcó lẽ một số nơi định nghĩa biến đi lạc trong /etc/profile, /etc/profile.d/*hoặc bất kỳ file khác vỏ RC địa phương hoặc toàn cầu của bạn. Vui lòng bỏ đặt hoặc ghi đè biến này nếu bạn cảm thấy cần phải làm như vậy.

Tuy nhiên, theo nhận xét báo cáo lỗi Gnome này, tôi giả sử rằng giá trị được định cấu hình thông qua gsettingsghi đè giá trị được đặt GTK_IM_MODULEcho các ứng dụng kích hoạt DBus. Vì vậy, ít nhất các ứng dụng Gnome của bạn có thể đang sử dụng gtk-im-context-simpletại thời điểm này có nghĩa là hành vi tiêu chuẩn (nghĩa là không có ibus hoặc bất kỳ IM chuyên dụng nào khác).


Giải thích tuyệt vời và nền tảng. Bây giờ nếu chỉ gsettingskhông segfault với tôi bất cứ khi nào tôi cố gắng làm bất cứ điều gì xD (thậm chí
đảo ngược

Vì vậy, tôi có ibus và xim trên Ubuntu 18.04. Tôi có thể xóa cả hai một cách an toàn nếu tôi không có ý định gõ bằng ngôn ngữ CJK không?
Suncatcher

Có, nhưng tôi sẽ không gỡ cài đặt XIM trừ khi cần. Nó rất cũ, nhưng đôi khi được sử dụng làm cơ sở cho các chức năng khác. Vì vậy, trừ khi bạn thực sự cần vài kB, tôi sẽ không gỡ cài đặt nó.
Janek Bevendorff
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.