Skip to content

Không gõ được tiếng việt trên phần mềm `abc xyz`

Thành Hoàng Trần edited this page Sep 13, 2024 · 17 revisions

Bạn đã cài đặt ibus-bamboo nhưng có vẻ như không gõ tiếng Việt? Hãy thực hiện một số bước test dưới đây.

Kiểm tra xem bạn đã khởi động ibus chưa

Để thực hiện việc này bạn chỉ cần chạy lệnh sau

ibus-setup

Nếu ibus chưa được khởi động thì sẽ có một bảng hiện ra hỏi rằng bạn muốn bật ibus không, hãy chọn yes. Sau khi ibus khởi động, chuyển sang engine Vietnamese - Bamboo để có thể gõ tiếng Việt.

Lưu ý: Bạn cần tắt đi và khởi động lại chương trình đang chạy để ibus có hiệu lực

Nếu vấn đề vẫn chưa được xử lý, xem tiếp bước sau.

Kiểm tra các gói phụ thuộc

Hãy chạy lệnh sau để chắc chắc rằng các gói phụ thuộc đã cài đặt đầy đủ:

sudo apt install ibus-gtk ibus-gtk3 ibus-gtk4

Sau khi cài đặt, bạn cần thoát đăng nhập và vào lại để thay đổi có hiệu lực.

Chuyển sang chế độ gõ khác

Điểm khác biệt giữa ibus-bamboo và các bộ gõ khác là ibus-bamboo cung cấp nhiều chế độ gõ khác nhau (tránh nhầm lẫn chế độ gõ với kiểu gõ, các kiểu gõ bao gồm telex, vni, ...). Một số phần mềm có thể hoạt động tốt ở chế độ gõ này nhưng không hoạt động trong chế độ gõ khác.

Để chuyển đổi giữa các chế độ gõ, chỉ cần nhấn vào một khung nhập liệu (một cái hộp để nhập văn bản) nào đó, sau đó nhấn tổ hợp Shift+~, một bảng với những chế độ gõ hiện có sẽ xuất hiện, bạn chỉ cần nhấn phím số tương ứng để lựa chọn.

Kiểm tra biến môi trường

Hiểu một cách nôm na, trong linux có những biến môi trường mà sẽ quyết định các phần mềm sẽ hoạt động như thế nào. Một số biến môi trường sẽ quyến định rằng input method server nào sẽ được dùng. Để kiểm tra những biến môi trường đó các bạn chạy.

env | grep "IM_MODULE\|XMODIFIERS"

Kết quả trả về sẽ có dạng kiểu như:

GTK_IM_MODULE=ibus
QT_IM_MODULE=xim
XMODIFIERS=@im=xim
QT4_IM_MODULE=xim
CLUTTER_IM_MODULE=xim

Việc cài đặt biến môi trường là để đảm bảo các phần mềm khác sẽ sử dụng ibus. Để cài đặt các bạn chạy lệnh im-config -n ibus hoặc thêm những dòng sau vào trong file /etc/environment:

GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus
# Dành cho những phần mềm dựa trên qt4
QT4_IM_MODULE=ibus
# Dành cho những phần mềm dùng thư viện đồ họa clutter/OpenGL
CLUTTER_IM_MODULE=ibus
GLFW_IM_MODULE=ibus

Sau khi thực hiện thay đổi, bạn cần thoát đăng nhập và vào lại để thay đổi có hiệu lực.

Lưu ý:

  • Nếu bạn dùng shell khác như zsh thì thay vì .bashrc, hãy thêm vào .zshrc. Tương tự với fish hay những shell khác.
  • Nếu setup như trên không được, bạn có thể thử chạy ibus-daemon -rdx (chạy ibus xim server).
  • File .profile được thực thi khi bạn login vào hệ thống, còn file .bashrc được thực thi mỗi khi bạn mở terminal và chỉ có hiệu lực trong terminal đó.

Làm hết các bước trên vẫn không gõ được tiếng Việt?

Nếu bạn vẫn chưa thể gõ trên một số ứng dụng, hãy thực hiện các bước dưới đây.

  1. Đặt biến XMODIFERS như sau (nếu bạn mở 1 terminal mới hay chạy 1 shell mới sau khi chạy bước này thì phải chạy lại nhé)
export XMODIFERS=@im=ibus
  1. Chạy lại ibus-daemon với tùy chọn sau:
ibus-daemon -rdx
  1. Thay đổi thử các biến khác thành ibus hoặc xim xem ibus có hoạt động trên chương trình mà bạn dùng hay không, nhưng phải giữ nguyên biến XMODIFERS. Ví dụ, mình gặp vấn đề không gõ được trên chromium với teams. Do cả 2 ứng dụng trên dùng chromium và dùng GTK, mình sẽ thử trên terminal như sau:
GTK_IM_MODULE=ibus chromium # không gõ được tiếng việt với cửa sổ chromium mới hiện lên
# Nhấn Ctrl + C trên terminal để ngắt
GTK_IM_MODULE=xim # gõ được tiếng Việt
  1. Sau khi thấy rằng việc thay đổi có hiệu lực, bạn thực hiện ghi lại các config vào trong file.
export GTK_IM_MODULE=xim # đổi thành xim
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
# Dành cho những phần mềm dựa trên qt4
export QT4_IM_MODULE=ibus
# Dành cho những phần mềm dùng thư viện đồ họa clutter/OpenGL
export CLUTTER_IM_MODULE=ibus
export GLFW_IM_MODULE=ibus
  1. Logout và login trở lại

Vấn đề biến môi trường thực chất là vấn đề của ibus, bạn có thể xem thêm tại wiki về ibus của Arch Linux*.

Nếu bạn gặp một lỗi khác mà ibus-bamboo gây ra, hãy báo lỗi tại đây

Clone this wiki locally