Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hỗ trợ native wayland. #44

Closed
ndgnuh opened this issue Jun 8, 2019 · 35 comments
Closed

Hỗ trợ native wayland. #44

ndgnuh opened this issue Jun 8, 2019 · 35 comments
Labels
enhancement New feature or request upstream upstream software and libraries problems that ibus-bamboo depend on

Comments

@ndgnuh
Copy link
Contributor

ndgnuh commented Jun 8, 2019

Mô tả lỗi

Hình như việc quyết định ứng dụng nào dùng chế độ nào dựa trên WM_CLASS (classname của ứng dụng). Trên wayland dùng một thứ tương ứng là app_id. Do đó sẽ có hai vấn đề xảy ra:

  1. Bảng chọn chế độ hiện ra nhưng có thể sau đó sẽ bị đơ, không chọn được bất kì thứ gì và không thể gõ văn bản tiếp, trừ khi giết ibus-daemon hoặc chuyển engine
  2. Dù có chọn được chế độ nhưng không có tác dụng.

Môi trường

  • OS và version: Arch Linux
  • Desktop: Sway (wayland)
  • Phiên bản ibus: 1.5.20
  • Phiên bản ibus-bamboo: 0.4.8

Thông tin thêm

native wayland

Lỗi trên xảy ra với những ứng dụng native wayland mà mình test và đa số những ứng dụng dùng xwayland. Ví dụ như firefox với MOZ_ENABLE_WAYLAND=1 hay liri-text sẽ gặp lỗi, còn chromium thì không.

  • Để nhận biết session hiện tại có phải wayland hay không kiểm tra biến XDG_SESSION_TYPE
  • Để nhận biết ứng dụng nào là native wayland hay xwayland thì có thể dùng một tool tên là xeye, nếu di chuột trong xeye mà cái mắt trong xeye di chuyển thì ứng dụng đó đang chạy trên xwayland

app_id trên wayland

Theo thông tin từ r/wayland thì hiện tại chưa có cách nào "tiêu chuẩn" để lấy app_id. Những cái app_id này được compositor quản lý. Vd như dùng sway thì có thể lấy app_id bằng:

swaymsg -t get_tree

Vì chưa có cách nào tiêu chuẩn nên mình nghĩ issue này chưa giải quyết được ngay. Hoặc nếu giải quyết thì lại phải tùy từng compositor của wayland, nghe cái này giống như hack hơn là solution (mình nghĩ là không nên theo hướng đó).

@luongthanhlam
Copy link
Contributor

luongthanhlam commented Jun 9, 2019 via email

@ndgnuh
Copy link
Contributor Author

ndgnuh commented Oct 23, 2019

cho mình hỏi, có cách nào để điều khiển engine, khiến engine chọn một chế độ gõ định trước từ shell không nhỉ?

Nếu có thì mình nghĩ rằng có thể làm một gói work around cho sway (hoặc bất cứ compositor nào có IPC).

@luongthanhlam
Copy link
Contributor

OK, bản sau mình sẽ bổ sung option DefaultInputMode trong file config, nhận giá trị từ 1->7 tương ứng với 7 chế độ gõ và mặc định là 1

@ndgnuh
Copy link
Contributor Author

ndgnuh commented Oct 31, 2019

Mình thử subscribe tới event của sway rồi ghi đè phần default mode với mode tương ứng với cửa sổ đang focus.

Lúc mình thử trên Gedit và firefox thì kết quả như mong đợi, nhưng mà phải ghi đè file config rất nhiều, và nếu chuyển cửa sổ liên tục thì có khả năng là ibus sẽ lỗi (do ghi đè config nên phải khởi động lại ibus để có hiệu lực). Còn trên ứng dụng QT thì khỏi gõ luôn @@.

file script:

#!/bin/sh
TMPFILE=/tmp/ibus-bamboo.config.json
WLCONFIGFILE=$HOME/.config/ibus-bamboo/mode.config
CONFIGFILE=$HOME/.config/ibus-bamboo/ibus-bamboo.config.json
CURENGINE=$(ibus engine 2> /dev/null)
while [ true ]; do
    ID=$(swaymsg -t subscribe '["window"]' | jq -r ".container.app_id")
    echo "======================="
    echo "current id: $ID"
    echo "current engine: $CURENGINE"
    if [ "$ID" = "null" ]; then
        continue
    fi
    if [ "$(ibus engine 2> /dev/null)" != "Bamboo" ]; then
        continue
    fi
    MODE=$(cat $WLCONFIGFILE | grep $ID | cut -d ':' -f 2)
    if [ -z "$MODE" ]; then
        MODE=1
    fi
    echo $MODE
    jq ".DefaultInputMode = $MODE" $CONFIGFILE > $TMPFILE 
    mv $TMPFILE $CONFIGFILE
    cat $CONFIGFILE | grep DefaultInputMode
    # ibus-daemon -rdx
    ibus restart
    wait
    CURENGINE=$(ibus engine 2> /dev/null)
    # ibus engine Bamboo
    wait
    if [ -z $CURENGINE ]; then
        ibus engine Bamboo
    fi
done

file config cho wl

io.liri.Browser: 1
io.liri.Terminal: 3
org.gnome.gedit: 1
firefox: 3

@luongthanhlam
Copy link
Contributor

không cần restart ibus đâu, trước khi save file bạn chỉ cần chuyển ibus về xkb:us::eng là được

ibus engine xkb:us::eng
ibus engine Bamboo

@ndgnuh
Copy link
Contributor Author

ndgnuh commented Nov 1, 2019

không cần restart ibus đâu, trước khi save file bạn chỉ cần chuyển ibus về xkb🇺🇸:eng là được

ibus engine xkb:us::eng
ibus engine Bamboo

cái đó mình cũng đã thử và kết quả là set engine bị fail khá nhiều @@ thậm chí fail nhiều hơn cả khi restart

@luongthanhlam
Copy link
Contributor

bạn thử script này xem

#!/bin/sh
TMPFILE=/tmp/ibus-bamboo.config.json
WLCONFIGFILE=$HOME/.config/ibus-bamboo/mode.config
CONFIGFILE=$HOME/.config/ibus-bamboo/ibus-bamboo.config.json
CURENGINE=$(ibus engine 2> /dev/null)
while [ true ]; do
    ID=$(swaymsg -t subscribe '["window"]' | jq -r ".container.app_id")
    echo "======================="
    echo "current id: $ID"
    echo "current engine: $CURENGINE"
    if [ "$ID" = "null" ]; then
        sleep 0.1;continue
    fi
    if [ "$(ibus engine 2> /dev/null)" != "Bamboo" ]; then
        sleep 0.1;continue
    fi
    MODE=$(cat $WLCONFIGFILE | grep $ID | cut -d ':' -f 2 2> /dev/null)
    if [ -z "$MODE" ]; then
        MODE=1
    fi
    CURRENT_MODE=$(cat $CONFIGFILE | grep "DefaultInputMode" | awk '{print sub(/\d/,$0)}' 2> /dev/null)
    echo "current mode: $CURRENT_MODE"
    if [ "$CURRENT_MODE" = "$MODE" ]; then
        sleep 0.1;continue
    fi
    echo "new mode: $MODE"
    ibus engine xkb:us::eng
    jq ".DefaultInputMode = $MODE" $CONFIGFILE > $TMPFILE
    mv $TMPFILE $CONFIGFILE
    ibus engine Bamboo
    if [ "$(ibus engine 2> /dev/null)" != "Bamboo" ]; then
        sleep 0.1;ibus engine Bamboo
    fi
done

@luongthanhlam luongthanhlam added the enhancement New feature or request label Sep 16, 2020
@equalis3r
Copy link

@ndgnuh Cho em hỏi đã có cách nào dùng ibus-bamboo trên sway được chưa ạ? Em đã thử cài ibus-bamboo-git từ aur, export ..., log out và log in lại. Kiểm tra htop thì ibus-daemon đã chạy. Set engine thủ công bằng ibus engine Bamboo nhưng vẫn không gõ được tiếng Việt trên sway.

@ndgnuh
Copy link
Contributor Author

ndgnuh commented Dec 14, 2020

Dùng được nhưng sẽ không tốt bằng, bạn có thể sẽ phải cài môi trường từ sway (vì wayland có thể không source file /etc/profile.profile cho bạn, cái này mình k nói được vì có thể tùy cách đóng gói của distro). Các ứng dụng dùng xwayland khả năng cao sẽ gõ bình thường. Ứng dụng Wayland thuần thì tùy cái, có cái được có cái không, nhưng chắc chắn sẽ không set được mode (vì không có xclass). Tuy nhiên thì vẫn có thể set chế độ mặc định để gõ.

Ngoài ra cũng có lỗi khác bạn của mình gặp, không gõ được trên một ứng dụng dù nó là xwayland (ứng dụng LyX), dù đã set môi trường đầy đủ. Trên X thì gõ vẫn ok. Nhưng cái này là vấn đề của bên IBus rồi, không phải riêng engine. Vấn đề của engine chỉ có cái set mode như trên nói thôi.

@equalis3r
Copy link

Em đã set environment đầy đủ, source trực tiếp từ file config của shell khi log in, cũng có thử thêm trực tiếp vào /etc/environment. Vậy chắc là không dùng được trên wayland thật. Vì hiện tại em đang dùng fedora-firefox-wayland thì không gõ được tiếng Việt. Steam thì dù có X11 hay Wayland cũng đều không gõ đuợc.

@ndgnuh
Copy link
Contributor Author

ndgnuh commented Dec 24, 2020

Theo mình hiểu, Wayland thực ra không phải một "server", nó là một giao thức (protocol). Tức là không có "một" Wayland nào nhất định cả, mà mỗi DE/WM (gọi chung là Wayland compositor) đều "tự lập trình lại" Wayland (dựa trên giao thức). Do đó một cái khẳng định theo kiểu "Abc (không) hoạt động trên Wayland" khả năng cao là thiếu chính xác. Đương nhiên Abc hoạt động trên GNOME Wayland thì cũng không thể nói đại diện rằng nó hoạt động trên Sway được. Tuy nhiên, vẫn có những thư viện như wlroots để tạo ra compositor (wlroot sẽ như một lớp tương thích chung) mà một số compositor dùng chung. Do đó việc hỗ trợ Native Wayland có thể sẽ đỡ nhọc hơn một tí.

Dù sao thì lỗi "không gõ được" theo kiểu IBus không hoạt động là vấn đề của IBus, không phải của bộ gõ. Vấn đề của bộ gõ theo mình hiểu chỉ có "lấy được id của cửa sổ trên wayland", vì ứng dụng không chạy xwayland thì sẽ không có xclass, không có xclass thì Bamboo không biết dùng chế độ gì (thay vì mặc định). Phần backend để xử lý (preedit hoặc xóa chữ đi để chèn chữ có dấu) mình không rõ lắm nên không biết nó là của IBus hay của Bamboo, có thể là cả hai.

@minhduc0711
Copy link

@sontran94 hmm lạ nhỉ, mình cũng dùng Sway/Arch và gõ tiếng việt ok trên Firefox 84. Trước mình dùng fedora-firefox-wayland-bin cũng không có vấn đề gì.

@equalis3r
Copy link

@sontran94 hmm lạ nhỉ, mình cũng dùng Sway/Arch và gõ tiếng việt ok trên Firefox 84. Trước mình dùng fedora-firefox-wayland-bin cũng không có vấn đề gì.

Em cũng không rõ lí do tại sao. Update sway lên version mới nhất thì đã gõ được. Tuy nhiên không chuyển input bằng ibus-preference được. Chắc do swayvm. Phải tạo script thủ công và bind key thì mới switch được. Terminal thì không dùng đuợc ibus.

@minhduc0711
Copy link

@sontran94 bác dùng thử xfce4-terminal xem.

@luongthanhlam
Copy link
Contributor

Bản 0.7.0 đã hỗ trợ lấy appId trên Wayland, tuy nhiên ibus vẫn chưa thể hiển thị bảng chọn chế độ gõ trên sway :/

@ndgnuh
Copy link
Contributor Author

ndgnuh commented Mar 14, 2021

Cố lên bác 🥇 :3

Mình nhét appid vào chỗ mấy cái xclass trong config là được đúng không?

@luongthanhlam
Copy link
Contributor

Cố lên bác :3

The truth is, wayland is not yet ready for input method =)))))
https://www.csslayer.info/wordpress/fcitx-dev/gaps-between-wayland-and-fcitx-or-all-input-methods/

Mình nhét appid vào chỗ mấy cái xclass trong config là được đúng không?

yep

@ndgnuh
Copy link
Contributor Author

ndgnuh commented Mar 15, 2021

Cố lên bác :3

The truth is, wayland is not yet ready for input method =)))))
https://www.csslayer.info/wordpress/fcitx-dev/gaps-between-wayland-and-fcitx-or-all-input-methods/

Mình nhét appid vào chỗ mấy cái xclass trong config là được đúng không?

yep

Bài này từ năm 2017 rồi, không biết cái 1. trong bài có cải thiện chưa, còn cái 3. có vẻ như wlroots làm trò gì đó tương tự là xong nhỉ? Mình cũng chỉ biết nó là một cái protocol chứ chưa biết bên trong nó có gì.

Cái 2 thì ko liên quan lắm vì vốn cái 1 input method/cửa số của ibus trên x11 cũng lỗi lên xuống 😆

@luongthanhlam
Copy link
Contributor

luongthanhlam commented Mar 16, 2021

Chưa có gì tiến triển cả.

Cơ bản thì giao thức wayland sử dụng khá giống X11, ứng dụng dùng text-input protocol để gửi keystrokes, focus state, vị trí con trỏ, text surrounding,.. đến Compositor, sau đó Compositor chuyển chúng cho input method qua input-method protocol để xử lý rồi gửi ngược lại composed text, candidate box, commit command, etc.

Vấn đề là cả 2 protocol vẫn đang ở giai đoạn phát triển, thiếu nhiều tính năng (e.g. fcitx/fcitx5#206, wayland-protocols#40) và mỗi toolkit/compositor lại implement một version khác nhau. Qt dùng text-input-unstable-v2 còn gtk dùng text-input-unstable-v3. ibus, weston và kwin đã support zwp-input-method-unstable-v1 nhưng sway chỉ chơi với zwp-input-method-unstable-v2. Riêng GNOME có vẻ muốn tích hợp ibus sâu hơn vào nhân của DE/Compositor nên chưa mặn mà implement bất cứ input method protocol nào 🙂

@mozartilize
Copy link

mozartilize commented Apr 25, 2021

Xin chào mọi người,
Mình cũng đang vọc vạch viết một IME trên sway. Mình hay nhờ trợ giúp của 1 developer trên đó, và dev đó cũng đưa ý kiến của mình lên thảo luận trong issue này wayland-protocols#40đây. Mình thì không có nhiều kinh nghiệm lắm, hi vọng các core devs ở đây có thể đóng góp gì đó cho sự định hình của protocol. Wayland đang là tương lai của các DE trên linux rồi, Ubuntu 21.04 đã dùng wayland mặc định, ước mơ trong blog này hi vọng sớm thực hiện.
Thanks all!

@hucancode
Copy link

Đã hơn 1 năm rồi, không biết có thông tin mới gì không ạ?

@nhandt64
Copy link

Đã hơn 1 năm rồi, không biết có thông tin mới gì không ạ?

Mình confirm là dùng được bình thường nhé, mình đang dùng nó gõ reply này luôn.
Mình đang dùng Arch Linux + KDE 5.25.1 trên Wayland.

@cuongha0701
Copy link

Đã hơn 1 năm rồi, không biết có thông tin mới gì không ạ?

Mình confirm là dùng được bình thường nhé, mình đang dùng nó gõ reply này luôn. Mình đang dùng Arch Linux + KDE 5.25.1 trên Wayland.

Bạn dùng ibus hay fcitx5 vậy

@tecix
Copy link

tecix commented Aug 19, 2023

Mình confirm đang dùng native Wayland Firefox và một số applications native khác hiện tại sử dụng ibus-bamboo bình thường.

@minhtrancccp
Copy link

Mình hiện dùng opensuse tumbleweed với kde 5.27.7.
Mình có thể dùng bamboo bình thường khi chạy x11, song khi chuyển qua wayland thì mình chỉ gõ tiếng việt được trong số ít ứng dụng như firefox hay vscodium. Các phần mềm của de, ví dụ như krunner hay konsole, thì không dùng được. Mình cũng không thể bật bảng chọn bằng phím tắt, giống như #419, và không thể tương tác với ibus panel khi mình ấn chuột lên icon trong task manager.
Mình có thể hỗ trợ thêm thông tin nếu các bạn dev cần rõ thêm chi tiết.

@thanbv1510
Copy link

thanbv1510 commented Feb 17, 2024

Mình chạy Brave, firefox trên Wayland nhưng không gõ được tiếng Việt.

$ /opt/brave.com/brave-nightly/brave-browser-nightly --enable-features=UseOzonePlatform --ozone-platform=wayland

Còn mình chạy Brave qua XWayland thì lại gõ được :( Có vẻ Ibus Bamboo chỉ hoạt động được trên các ứng dụng chạy qua XWayland
Có bạn nào đã fix được để gõ tiếng Việt trên Brave chạy Wayland thì hỗ trợ mình với ạ

@goatastronaut0212
Copy link
Collaborator

goatastronaut0212 commented Mar 28, 2024

Mình nghĩ mọi người đang phấn khích với Wayland quá, mình cũng rất thích Wayland + Hyprland nhưng mình thấy Wayland vẫn chưa tới mức sử dụng hằng ngày như là người dùng Việt nam phổ thông xài Unikey trên Windows được. Tình hình hiện tại là có vẻ như upstream ibus vẫn chưa có nhiều tiến triển gì ở ibus/ibus#2182 và ở ibus/ibus#2256.

Chúng ta tốt hết nên đợi họ làm xử lý xong rồi mới có thể đưa ra quyết định tiếp theo trong lúc đó thì các giải pháp mình hiện đang dùng để gõ tiếng việt hiện tại vẫn là

  1. Quay lại sử dụng X11/Xorg DE/WM với Ibus-bamboo
  2. Sử dụng Ibus + ibus-bamboo với XWayland để tương tác với các ứng dụng nhưng hãy chắc chắn rằng các phần mềm của bạn có thể chạy backend là X11/Xorg (ví dụ như terminal alacritty, kitty hay wezterm có tùy chọn để sử dụng Xorg).
  3. Sử dụng Fcitx5 + fcitx5-unikey thay vì ibus (Fcitx5 gần implement các input protocol và có thể gõ được trên các DE/WM Wayland).

Việc gõ tiếng việt với Ibus-bamboo trên Wayland vẫn còn nhiều khó khăn, mình cũng có bị 1 số lỗi tương tự như các bạn và phải chuyển sang Fcitx5. Ngay cả khi mình dùng Fcitx5 thì cũng 1 số cái trắc trở và nhà phát triển cũng khuyến khích nếu có thể hãy sử dụng với XWayland. Sau cùng có lẽ các bạn nên làm quen với việc gõ tiếng việt trên Wayland hoặc là tạm thời từ bỏ Wayland và quay trở lại X11/Xorg.

@ndgnuh
Copy link
Contributor Author

ndgnuh commented Apr 6, 2024

Mình nghĩ mọi người đang phấn khích với Wayland quá

Đúng thế, mình nghĩ còn lâu lâu nữa mọi thứ mới chuyển qua WL. Trên Wayland thì có vẻ vấn đề với Nvidia được quan tâm hơn vấn đề nhập liệu.

Sau một đêm ngồi mò đủ các kiểu để gõ tiếng được Việt trên Wayland, mình thấy rằng tình hình hiện tại khá là tệ nên mọi người cũng đừng cố chuyển sang WL làm gì.

https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/39#next-steps

@hucancode
Copy link

hucancode commented Apr 8, 2024

Mình chuyển qua wayland dùng fcitx, hyprland 1 thời gian đang tính chuyển về lại X11. Cảm giác trải nghiệm hơi tệ

  • Gõ tiếng nước ngoài thì gõ được, nhưng lâu lâu nhấn phím chuyển ngôn ngữ gõ không có tác dụng gì, phải nhảy 1 ô textbox khác rồi thử chuyển phím gõ, sau đó quay ngược lại chỗ mình cần gõ để xem có ăn không. Có khi nhảy qua 3 4 ô text ở các app khác nhau cũng không chuyển được ngôn ngữ gõ
  • Mình dùng eww thì có bug mở máy lên sau khi sleep không có status bar
  • Không phải là lỗi nhưng mình dùng SDDM làm display manager, thấy customize giao diện hơi phiền so với GDDM. Nên để nguyên skin mặc định, nhìn xấu mà lười chưa làm skin. Bên Wayland cũng chưa có app lock screen nào mình ưng nên hiện tại mình bỏ luôn lock screen. Lựa chọn về app cho Wayland ít hơn hẳn. Mình thích rice, từ khi chuyển qua thấy hơi tù túng
  • Khi xưa dùng X11 openbox, bspwm mình chưa bao giờ bị crash, hoặc nếu có thì cũng chỉ 1 2 lần nên không nhớ. Từ khi chuyển qua hyprland bị crash nhiều hơn hẳn, trong mấy tháng có khoảng 5 6 lần crash gì đó
  • Mình có chơi Monster Hunter. Chuyển qua Wayland thì không thấy khác biệt về performance. Mình thỉnh thoảng cũng có code mấy app cần dùng GPU vẽ 3D, chưa gặp vấn đề gì về performance hay tương thích API. Mình cũng chỉ mong performance giữ nguyên chứ chưa cầu tốt hơn

Kết luận: mình chuyển sang Wayland vì muốn có công nghệ mới, hệ thống tối giản, ít bloat, ... mà cuối cùng vẫn không bỏ được hết X11 hẳn, vẫn cần XWayland ở nhiều chỗ quá. Thành ra bây giờ Wayland bloat hơn cả hơn X11. Khởi động lâu hơn, không biết là do Wayland hay là do hyprland. Lại còn gánh thêm 1 ít bug nữa.

@goatastronaut0212
Copy link
Collaborator

goatastronaut0212 commented Apr 8, 2024

Kết luận: mình chuyển sang Wayland vì muốn có công nghệ mới, hệ thống tối giản, ít bloat, ... mà cuối cùng vẫn không bỏ được hết X11 hẳn, vẫn cần XWayland ở nhiều chỗ quá. Thành ra bây giờ Wayland bloat hơn cả hơn X11. Khởi động lâu hơn, không biết là do Wayland hay là do hyprland. Lại còn gánh thêm 1 ít bug nữa.

Mình không biết ai đã nói cho bạn là Wayland sẽ "less bloat" hơn X11, mình thì nghĩ Wayland thiên hướng dễ duy trì dễ hiểu cho dev và bảo mật hơn, đối với mình thì trải nghiệm đọc code và tài liệu về Wayland tốt hơn X11. Với cả dùng từ bloat thì nó có phần hơi tiêu cực quá kiểu như là "tôi sử dụng phần mềm ít 2 tính năng hơn bạn nên với tôi phần mềm tôi tốt hơn phần mềm của bạn", có thể bạn không cần tính năng này nhưng người khác cần cũng là 1 điều tốt mà, như mình chẳng hạn mình không thể gõ tiếng việt với Ibus mà không có Xwayland.

Khá là buồn khi trải nghiệm Wayland của bạn hơi tệ nhưng mình thì chưa bị crash trên Hyprland bao giờ cả. Khởi động lâu chắc do services nào đó ưu tiên chạy ngầm trước thôi, bạn có thể cho nó chạy sau hoặc giới hạn services chạy lại cũng được mà.

Dù sao đi nữa thì developers Wayland cũng là con người, họ có những ưu tiên khác trong cuộc sống. Với mình thì họ làm việc vì sở thích trong suốt 16 năm qua cũng là 1 cái đáng tự hào rồi mà. Mình chắc là Wayland sẽ ổn định sớm và mọi người sẽ có daily driver trên Wayland 1 cách vui vẻ.

@hucancode
Copy link

Ừ mình tiêu cực quá thật. Mình nghĩ là phát triển mới từ đầu thì dev có khả năng bao quát spec hơn và code tối ưu hơn nên có tiềm năng cải thiện hiệu năng và giảm code dư thừa. Hyprland mình hay bị crash nhưng chủ yếu là trong lúc config. Lúc chạy thường có 1 lần hoặc 2 bị crash gì đó.

@goatastronaut0212
Copy link
Collaborator

goatastronaut0212 commented Apr 11, 2024

Ừ mình tiêu cực quá thật. Mình nghĩ là phát triển mới từ đầu thì dev có khả năng bao quát spec hơn và code tối ưu hơn nên có tiềm năng cải thiện hiệu năng và giảm code dư thừa. Hyprland mình hay bị crash nhưng chủ yếu là trong lúc config. Lúc chạy thường có 1 lần hoặc 2 bị crash gì đó.

Do bạn có thể gặp phải vấn đề không mong muốn với Wayland nên đôi khi khó chịu và tiêu cực chuyện thường ngày mà không sao cả. Bạn nói hơi lạc đề tí xíu nhưng mình sẽ theo vậy.

Về vấn đề này thì:

  • Bạn nên đọc 1 số vấn đề của X11 và nếu phải làm X12 tại đây. Mình thì không hình dung được là nếu tối ưu hóa X12 thì sẽ trông như thế nào với codebase hiện tại làm ra sao nếu như tối ưu hiệu năng hóa nó mà codebase không tăng lên có làm nó khó đọc không và cả Wayland cũng vậy. Mà đó có phải là vấn đề cực quan trọng của X12 hay Wayland ư? Có lẽ là không và phần cứng khá là rẻ nên cứ quăng vô và tăng sức mạnh cho máy tính bạn thôi còn tối ưu code luôn cần nhiều thời gian công sức hơn. Nhưng tình hình hiện tại không ai muốn đụng vô X11 và nó ở trạng thái duy trì khá lâu rồi. Wayland có thể là X12 hoặc là không nhưng mà chúng ta cứ chờ xem mình nghĩ Wayland cũng không tệ đến thế đâu và hệ sinh thái của Linux cũng đang chuyển dần sang nó hết trong tương lai gần nó sẽ ổn định hơn.
  • Mình nghĩ Wayland sẽ luôn cần XWayland để chạy các ứng dụng Xorg trên Wayland kể cả khi tất cả ứng dụng hỗ trợ native Wayland cũng vẫn cần XWayland để chạy các phần mềm Xorg cũ không có hỗ trợ Wayland nữa. Cũng giống như việc ta sử dụng Wine nếu không có hỗ trợ từ các app Windows thôi (Zalo? 👀). Và Xorg nếu muốn chạy Wayland app như là Waydroid cũng lại phải cần 1 compositor Weston Wayland hay Cage để chạy nó. Nên là nó không liên quan tới hiệu năng nhiều chủ yếu liên quan tới sự đa dạng phần mềm là đúng hơn có thể có tí xíu ảnh hưởng hiệu suất nhanh hơn hoặc chậm hơn nhưng nếu bạn không thích thế thì bạn có thể tối ưu hóa với việc nói không Xorg app trên Wayland hay nói không với Wayland trên Xorg bằng cách cấu hình 1 đống compiler flag, config build packages, runtime, có thể phải code và patch từng phần mềm tất nhiên nó luôn phức tạp và mình sẽ dừng ở đây thôi. Và bạn có thể cũng sẽ rất nhớ 1 số phần mềm chỉ có trên Wayland hay Xorg.
  • Hyprland có lỗi thì mình nghĩ việc than phiền về Hyprland crash cũng không phải là ý tưởng hay đâu. Bạn có thể hỏi han cộng đồng Hyprland, báo cáo lại lỗi hoặc tạo PR cho Hyprland để cải thiện lại phần mềm. Nhưng mà cộng đồng Hyprland cũng khá là toxic theo 1 số người nhận định, nếu bạn không thoải mái với Hyprland hay cộng đồng của họ thì có thể chọn các trải nghiệm WM hay DE khác như GNOME, KDE, sway, hikari, river hoặc nếu bạn nghĩ distro của bạn không cung cấp WM hay DE ổn định thì chuyển sang 1 distro mới như Ubuntu, Fedora, OpenSuse, NixOS cũng không phải là lựa chọn quá tệ đâu. Bạn luôn có lựa chọn ở Linux.

Vậy đó, mình mong bạn sẽ có trải nghiệm Wayland vui vẻ hơn trong tương lai và sẽ có cái nhìn khác như mình. Đúng là có thể hiện tại Wayland không phải là plug and play, các trải nghiệm input method như Ibus và Ibus-bamboo hay screen shot, screen lock khá tệ nhưng mình nghĩ upstream sẽ sớm giải quyết thôi vấn đề chỉ còn là thời gian. Nếu bạn không muốn thì có thể tạm ở lại Xorg.

Mình đang reply bạn vói Ibus-bamboo trên Hyprland với Edge backend X11! Wayland không tệ đến thế đâu. Ít nhất theo cảm nhận 1 người từng anti-Wayland như mình 💌

@goatastronaut0212
Copy link
Collaborator

Mình muốn quay lại để nói rõ 1 số vấn đề về Ibus cũng như là Wayland. Căn bản không phải là các bạn không thể gõ Ibus trên Wayland được nhưng nó sẽ có những hạn chế nhất định. 1 số status bar sử dụng quản lý systray hiện đại StatusNotifierItem như Qtile bar và Waybar để quản lý các icon ở tray và điều này bạn sẽ thấy nó không xuất hiện icon nhưng nếu bạn thiết lập phím tắt từ trước bạn có thể chuyển các input method và vẫn gõ được. Đây là 1 lỗi của Ibus chứ không phải là của WM hay bar gì cả ibus/ibus#2210 . Thêm nữa là Ibus chỉ có mỗi v1 input protocol support của Wayland chứ chưa có thêm các input protocol method khác.

Đây là 1 bảng tóm tắt các DE và WM có thể sử dụng Ibus nhưng không đáng kể. Mình sẽ thay đổi comment này theo thời gian. Các bạn hãy cân nhắc kỹ càng khi đưa ra các quyết định

DE/WM Input protocol v1
Gnome Hỗ trợ
KDE Hỗ trợ
Sway Không hỗ trợ
Hyprland Hỗ trợ
Qtile Hỗ trợ (Không hiển thị icon nếu sử dụng bar)
River Không hỗ trợ

Tóm lại là sẽ cần nhiều nỗ lực hơn nếu chúng ta muốn sử dụng Ibus + ibus-bamboo trên Wayland.

@goatastronaut0212 goatastronaut0212 added the upstream upstream software and libraries problems that ibus-bamboo depend on label Sep 17, 2024
minhhut added a commit to minhhut/packages that referenced this issue Oct 8, 2024
@toantk238
Copy link

Mình muốn quay lại để nói rõ 1 số vấn đề về Ibus cũng như là Wayland. Căn bản không phải là các bạn không thể gõ Ibus trên Wayland được nhưng nó sẽ có những hạn chế nhất định. 1 số status bar sử dụng quản lý systray hiện đại StatusNotifierItem như Qtile bar và Waybar để quản lý các icon ở tray và điều này bạn sẽ thấy nó không xuất hiện icon nhưng nếu bạn thiết lập phím tắt từ trước bạn có thể chuyển các input method và vẫn gõ được. Đây là 1 lỗi của Ibus chứ không phải là của WM hay bar gì cả ibus/ibus#2210 . Thêm nữa là Ibus chỉ có mỗi v1 input protocol support của Wayland chứ chưa có thêm các input protocol method khác.

Đây là 1 bảng tóm tắt các DE và WM có thể sử dụng Ibus nhưng không đáng kể. Mình sẽ thay đổi comment này theo thời gian. Các bạn hãy cân nhắc kỹ càng khi đưa ra các quyết định

DE/WM Input protocol v1
Gnome Hỗ trợ
KDE Hỗ trợ
Sway Không hỗ trợ
Hyprland Hỗ trợ
Qtile Hỗ trợ (Không hiển thị icon nếu sử dụng bar)
River Không hỗ trợ
Tóm lại là sẽ cần nhiều nỗ lực hơn nếu chúng ta muốn sử dụng Ibus + ibus-bamboo trên Wayland.

Rất cảm ơn công sức của các bạn đã maintain 1 keyboard cho người Việt trên Linux !!!
Mình đã dùng ibus-bamboo sau khoảng 1-2 năm trên wayland, đến thời điểm hiện tại thì thấy ngoại trừ việc keyboard không làm việc tại 1 vài thời điểm trên slack, chrome ( nhưng firefox lại ko bị - issue này đã được report đâu đó rồi ; để fix thì reopen lại window ) , phải disable "grab mouse event" thì ibus-bamboo work rất ngon lành.

Chúc các bạn dev sức khỏe dồi dào và vẫn contribute cho project.

image

@goatastronaut0212
Copy link
Collaborator

Mình nghĩ chúng ta nên đóng báo cáo lỗi này lại. Căn bản là trên GNOME đã hỗ trợ Wayland v1 protocol như chúng ta đã thấy ibus-bamboo có thể gõ được trên Wayland. Phần còn lại có thể là phụ thuộc vào sự đóng góp từ upstream và có thể 1 phần của chúng ta nữa. Nhưng căn bản bất cứ ai sử dụng Wayland ở thời điểm hiện tại nên sử dụng KDE hay GNOME.

Với lại báo cáo lỗi này nó cũng hơi lan man, bản thân mình khiến 1 phần của nó trở nên khó để đọc xin lỗi về điều đó nên mình sẽ cố gắng tổng hợp lại các ý chính cũng như vấn đề cốt lõi trong 1 báo cáo lỗi mới cảm ơn mọi người.

EbonJaeger added a commit to getsolus/packages that referenced this issue Oct 17, 2024
**Summary**
- add ibus-bamboo at v0.8.4
(https://github.com/BambooEngine/ibus-bamboo/releases/tag/v0.8.4-RC1)
- known issue with Wayland native (see BambooEngine/ibus-bamboo#44)

<!-- Info on what this pull request updates/changes/etc -->

**Test Plan**

- Install ibus and run "IBus Preferences"
- Add Vietnamese - Bamboo from Input Method tab
- Add "Keyboard Layouts" plugin/widge to see the input switch icon
- Play around with language switch and many options from IBus Bamboo
popup menu
- Focus on text input from browser, terminal or other app
- Type "xin chào các bạn"

**Checklist**

- [x] Package was built and tested against unstable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request upstream upstream software and libraries problems that ibus-bamboo depend on
Projects
None yet
Development

No branches or pull requests