Unset XLIB_SKIP_ARGB_VISUALS=1 to make IME work under Chrome #3867
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Puppy has many fans in Japan, China and other places. These fans need IME to work in their browser.
When IME is installed (fcitx, fcitx5, scim), it seems to work for all applications except Chrome (and Chromium plus derivatives). The browser spits an error on every key stroke:
However, IME works fine in GTK+ dialogs like the native GTK+ "open" and "save" dialogs used by Chrome. That lead me to the conclusion that the problem is somewhere inside Chrome's UI code and not in a lower layer (GTK+, X, etc'). UI elements inside the web page, like forms, are not rendered through GTK+.
If I understand correctly, this happens because Chrome reaches this code block:
null
null
null
null
and spits the errorThis only applies to GTK+ 3 under X: Chrome tries to load GTK+ 4 dynamically before it tries GTK+ 3. Chrome uses a different code path when GTK+ 4 is installed and that explains why bookworm is sometimes immune to this problem (bullseye doesn't have GTK+ 4). In addition, most major distros have switched to Wayland, and there's a separate code path for Wayland: Puppy is one of the few users of the legacy GTK+ 3 code path.
The only Puppy where IME works is Fossapup, and that's because this environment variable is unset (the line is commented out). Considering its popularity, I think it's safe to assume that upstreaming this change into woof-CE will be safe. woof-CE sets this environment variable since day 1, and maybe the comment about ROX-Filer crashes is no longer correct.