Ghi chú cách dùng IBus Bamboo để gõ Tiếng Việt mà không bị lỗi gạch chân như các bộ gõ khác.
sudo add-apt-repository ppa:bamboo-engine/ibus-bamboo
sudo apt-get update
sudo apt-get install ibus ibus-bamboo --install-recommends
ibus restart
env DCONF_PROFILE=ibus dconf write /desktop/ibus/general/preload-engines "['BambooUs', 'Bamboo']" && gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('ibus', 'Bamboo')]"
Các distro khác Ubuntu, vui lòng xem tại BambooEngine/ibus-bamboo.
- Truy cập cấu hình bộ gõ Settings > Keyboard > Input Sources.
- Thiết lập 2 bộ gõ gồm English (US) và Vietnamese (Bamboo).
- Trong mục Options chọn Allow different sources for each window để tự chuyển đổi bộ gõ khi vào các ứng dụng khác nhau.
sudo im-config -s ibus
- Tìm ứng dụng Ibus Prefences hoặc chạy lệnh:
ibus-setup
- Mở tab Input Method > Add: Tìm Vietnamese, chọn bộ gõ Bamboo.
ibus restart
Khi bật bộ gõ lên, mở menu vi, kiểm tra mục Phím tắt và bật Chuyển chế độ gõ Shift + ~
(nếu chưa bật).
Phím tắt này rất quan trọng, nó giúp chọn đúng chế độ gõ không gạch chân phù hợp với ứng dụng. Đây cũng làm điểm làm IBus Bamboo vượt trội so với các bộ gõ Tiếng Việt khác.
Nếu bạn dùng qua các bộ gõ khác trên Ubuntu (hay các distro khác) như IBus Unikey, IBus Teni, Fcitx Unikey, ... thì tất cả chúng chỉ có tùy chọn duy nhất là chế độ có gạch chân (pre-edit) xấu xí:
- Thường bị chữ đang gõ lệch ra ngoài input.
- Mất chữ khi chưa commit (bằng dấu cách, dấu chấm, Ctrl, ...).
- Không thể đặt lại dấu cho chữ đã commit.
- Không hoặc kém đáp ứng với các ứng dụng có gợi ý theo từ đang gõ (autocomplete).
IBus Bamboo khắc phục tất cả nhược điểm trên khi chạy ở chế độ không gạch chân.
Trong menu vi có tùy chọn Cấu hình khác > Sửa lỗi gạch chân có thể bật nhanh chế độ này, nhưng đáng tiếc là nó không hoạt động đúng với tất cả ứng dụng. Có thể xuất hiện lỗi gõ xong không xóa được hay thậm chí là không gõ được. Đây cũng là lý do mình viết ghi chú này.
- Terminal: trừ chế độ Surrounding Text ra.
- Ứng dụng xây dựng từ Chromium hoặc Electron (e.g.: Google Chrome, VSCode): ForwardKeyEvent I (hoặc II).
- Firefox: Tất cả chế độ không gạch chân. Trong Dev Tools thì chỉ có chế độ Forward as commit hỗ trợ autocomplete.
- LibreOffice: Tất cả chế độ không gạch chân.
- Pidgin: Tất cả chế độ không gạch chân.
- Steam: Không thể chạy Ibus trong Steam, vì thế để nhắn tin Tiếng Việt bạn cần dùng Pidgin và cài thêm plugin Steam IM.
- TeamViewer: Surrounding Text.
- Sublime Text: ForwardKeyEvent I (hoặc II), Forward as commit.
- ...cần bổ sung thêm
- Phím tắt chuyển đổi bộ gõ en-vi mặc định là
Win+space
. Bạn có thể thay đổi trong Settings > Devices > Keyboard Shortcuts > Typing. - Tránh dùng chế độ XTestFakeKeyEvent vì nó khá chậm, thường bị mất dấu.
- Trong các website mà input có chức gợi ý, tự động sửa như Select2, CodeMirror, ... thì có thể phải thay đổi chế độ gõ khác hoặc buộc phải dùng chế độ có gạch chân.
- Một số ứng dụng như Steam, Spotify, ... không hỗ trợ Ibus thì IBus Bamboo cũng bó tay.
- Xem thêm hướng dẫn khắc phục lỗi biến môi trường của IBus.
- Trong trường hợp không thể dùng phím tắt
Shift + ~
, cài đặt linushdot/unsafe-mode-menu, hoặc chỉnh sửa thủ công tệp cấu hình:Thêm hoặc cập nhậtxdg-open ~/.config/ibus-bamboo/ibus-bamboo.config.json
InputModeMapping
:{ "InputModeMapping": { "gnome-terminal-server:Gnome-terminal": 7, "code:Code": 4 } }
- Để lấy thông tin ứng dụng, chạy lệnh
xprop WM_CLASS
trong Terminal, và click vào ứng dụng, sẽ thấy thông tin:WM_CLASS(STRING) = "google-chrome", "Google-chrome"
- Cập nhật tương ứng vào
InputModeMapping
, với số mode theo danh sách sau:- Pre-edit (có gạch chân)
- Surrounding Text (không gạch chân)
- ForwardKeyEvent I (không gạch chân)
- ForwardKeyEvent II (không gạch chân)
- Forward as Commit (không gạch chân)
- XTestFakeKeyEvent (không gạch chân)
- Thêm vào danh sách loại trừ
- Ví dụ:
{ "InputModeMapping": { "gnome-terminal-server:Gnome-terminal": 7, "code:Code": 4, "google-chrome:Google-chrome": 4 } }
- Khởi động lại:
ibus restart
- Để lấy thông tin ứng dụng, chạy lệnh
eOS hỗ trợ ibus rất kém, không có icon trên status bar, không tự thêm ibus vào startup nên bạn cần phải tự chỉnh thủ công.
- Kích hoạt ibus:
sudo im-config -s ibus
- Thêm vào startup System Settings > Applications > Startup:
ibus-daemon -drx
- Cài đặt Ibus Bamboo như trên.
- Cấu hình bộ gõ System Settings > Keyboard > Layout > Input Method Settings.
- Đăng xuất.
Sau khi đăng nhập trở lại bạn có thể gõ Tiếng Việt với IBus Bamboo. Tuy nhiên do không có icon trên status bar nên bạn phải đổi kiểu gõ thủ công từ tệp cấu hình.
xdg-open ~/.config/ibus-bamboo/ibus-bamboo.config.json
Thay đổi kiểu gõ trong InputMethod
và lưu lại. Nếu bạn gõ mặc định kiểu Telex thì không cần làm bước này. Ví dụ:
"InputMethod": "VNI"
Lưu ý phím tắt chuyển đổi bộ gõ en-vi mặc định của eOS là Ctrl+space
.
IBus Bamboo hiện tại khá tốt nhưng vẫn còn một số lỗi. Khó chịu nhất có lẽ là lỗi không nhận diện được search box #80, hầu hết các môi trường desktop đều bị, chỉ trừ con eOS ghẻ kia.
Cơ chế gõ không gạch chân này cũng từng được IBus Teni đề cập trong lộ trình phát triển v2, nhưng không hiểu sao lại ngừng rồi bỏ luôn dự án.
Không biết bài viết này có từ bao giờ, nhưng nó đã giúp tôi gõ được tiếng việt trên Chrome.
Tôi dùng ibus-unikey, và tất cả các ứng dụng đều gõ được, trừ Chrome.
Sau đó cài đặt thêm mấy thừ này và... done!
sudo apt install im-config ibus ibus-clutter ibus-gtk ibus-gtk3
Thanks!
Vẫn đang tìm kiếm một bộ gõ tốt trên linux,