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 thêm những dòng sau vào trong file ~/.bashrc và ~/.xprofile
export GTK_IM_MODULE=ibus
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
hoặc chạy lệnh sau
im-config -n ibus
Việc cài đặt trên chỉ có hiệu lực cho người dùng hiện tại, nếu muốn cài đặt cho toàn bộ hệ thống hãy để những dòng trên vào file /etc/bash.bashrc và /etc/profile.
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. Nếu bạn chạy phần mềm từ terminal thì thay đổi sẽ có hiệu lực ngay lập tức đối với các terminal mới mở.
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.
Đặ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
Chạy lại ibus-daemon với tùy chọn sau:
ibus-daemon -rdx
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
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
Logout và login trở lại