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

Add GTK4 IM modules #107

Closed
wants to merge 1 commit into from
Closed

Add GTK4 IM modules #107

wants to merge 1 commit into from

Conversation

tinywrkb
Copy link

@tinywrkb tinywrkb commented Jan 4, 2022

This intends to solve the missing GTK4 IM modules issue, in order to support IME frameworks with Ozone Wayland

Should we package GTK4 and not wait for Freedesktop 22.08? I'm not sure, I'll leave this decision to the maintainer here.

This adds the GTK4 IM modules to have Fcitx5 and IBus working with Ozone Wayland.
Updated GTK3 IM modules were also added.

For the GTK4 IM modules to work, Chrome 97 or newer is needed.
I only confirmed that this works with the 97 dev releases. edit: Also works with stable 97!

Users need to start the browser with the --gtk-version=4 flag.

Note that Fcitx5 has an IBus backend, and the IBus IM module has popup working, so it's preferable to use the IBus IM module with the Fcitx5 daemon, or just use the IBus daemon.
If you want to stick with Fcitx5 daemon, then set an environment override GTK_IM_MODULE=IBus for Chrome in order to use the IBus IM module.

@flathubbot
Copy link
Contributor

Started test build 73352

@flathubbot
Copy link
Contributor

Build 73352 successful
To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/71204/com.google.Chrome.flatpakref

@flathubbot
Copy link
Contributor

Started test build 73354

@flathubbot
Copy link
Contributor

Build 73354 successful
To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/71206/com.google.Chrome.flatpakref

@tinywrkb
Copy link
Author

tinywrkb commented Jan 4, 2022

Confirmed working with stable 97.

@refi64
Copy link
Collaborator

refi64 commented Jan 4, 2022

Hmm, like I had mentioned on the issue (err, I think it was on the issue), my main concern is mostly just that an fd.o SDK extension point for this in 22.08 is going to look different unless we check with them first, and then it's going to make upgrading everything a bit trickier when the time comes.

Outside of that, I don't really have any objections to the actual implementation, nor to embedding GTK4...that being said, the gtkim modules & co may be more useful in shared-modules, because keeping that updated & in sync across Chrome, Chromium, Edge, Brave is going to be rather painful. I'm also not sure if GTK4 would add a large amount to binary size or similar, but that could probably be fixed by, say, placing the libraries in /app/lib/gtk4 and making it an extension...in that case, I wonder if it could actually be done so that other apps could reuse it too?

(I can look into some aspects of this myself, but probably not until weekend at earliest.)

@tinywrkb
Copy link
Author

tinywrkb commented Jan 4, 2022

Right, need to check with the Freedesktop SDK maintainers. I expect that 22.08 will already ship GTK4 and the IM modules, as we already have the GTK3 ones in the runtime, so this is basically a stopgap.

I started getting ready for shared-modules PR, but was a bit hesitant to push it.
Part of because I wasn't sure that I also want to maintain libcups module, which should also be added, as GTK4 is used for the system printing dialog.
The other reason is that I'm not sure that I'll be able to be active enough to maintain it.

but that could probably be fixed by, say, placing the libraries in /app/lib/gtk4 and making it an extension.

We need the GTK4 printing modules, including the CUPS module. We already have a make dependency on libcups in the app's packaging, and adding a similar dependency in the extension's packaging complicate maintenance, and at that point, it might be better to just go with a base app.

@flathubbot
Copy link
Contributor

Started test build 73409

@flathubbot
Copy link
Contributor

Build 73409 successful
To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/71262/com.google.Chrome.flatpakref

@tinywrkb
Copy link
Author

tinywrkb commented Mar 8, 2022

Closing in favor of adding this to the base app.

@tinywrkb tinywrkb closed this Mar 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants