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

feat(linux): Add support for Wayland #4273

Closed
ermshiperete opened this issue Jan 15, 2021 · 14 comments · Fixed by #8509
Closed

feat(linux): Add support for Wayland #4273

ermshiperete opened this issue Jan 15, 2021 · 14 comments · Fixed by #8509

Comments

@ermshiperete
Copy link
Contributor

Currently Keyman doesn't work properly when Wayland instead of X11 is used (see #4122).

@ermshiperete
Copy link
Contributor Author

ermshiperete commented Jan 15, 2021

This happens on Debian Buster 10.7. On Ubuntu 20.04 things work in gedit, but not in gnome-terminal.

To see whether Wayland or X11 is used, run:

loginctl show-session $(awk '/tty/ {print $1}' <(loginctl)) -p Type | awk -F= '{print $2}'

(or easier: echo $XDG_SESSION_TYPE).

To allow Wayland login on Ubuntu 20.04, edit /etc/gdm3/custom.conf and set WaylandEnable to true (or comment the line). Then restart gdm3: sudo systemctl restart gdm3.

@ermshiperete ermshiperete modified the milestones: Future, 15.0 Mar 5, 2021
@ermshiperete
Copy link
Contributor Author

ermshiperete commented Mar 9, 2021

A little more research shows that Keyman 14.0 kind of works with Wayland: it doesn't survive an ibus restart, which means after installing it's necessary to reboot (or maybe logout/login would be sufficient).

But even then things don't work properly: With Eurolatin, typing n + > produces , and with Khmer Angkor typing xEjmr doesn't produce the desired results.

I was testing this in a VM, and I just noticed that my host machine behaves strangely, so that might have an impact...

Note that Debian Buster has neither python3-raven nor python3-sentry-sdk, so this will have to be manually downloaded and installed from https://packages.debian.org/bullseye/all/python3-sentry-sdk.

@darcywong00
Copy link
Contributor

Is this a pre-requisite for releasing packages on 21.04? See https://community.software.sil.org/t/how-does-one-go-about-installing-keyman-14-on-ubuntu-21-04/4728

@bizulk
Copy link

bizulk commented Nov 4, 2021

Hello /

Is there a the roadmap for wayland integration ?
By default Ubuntu Linux 20 is using wayland and many embedded Linux devices.
Thanks for answer.

@ermshiperete
Copy link
Contributor Author

Is there a the roadmap for wayland integration ?

Yes, if everything goes as planned Keyman will work with Wayland in the upcoming version 15. We're currently working on it. In fact, most things already seem to work when using Wayland, but there seems to be a bug in ibus that prevents surrounding text from working properly which results in characters not being replaced.

@mcdurdin mcdurdin modified the milestones: A15S17, A15S18 Nov 14, 2021
@mcdurdin mcdurdin modified the milestones: A15S18, A15S19 Nov 29, 2021
@mcdurdin mcdurdin removed this from the A15S19 milestone Dec 11, 2021
@mcdurdin mcdurdin modified the milestones: A16S13, 17.0 Oct 25, 2022
@ermshiperete ermshiperete modified the milestones: 17.0, A17S6 Feb 6, 2023
ermshiperete added a commit that referenced this issue Feb 13, 2023
This change skips the four failing Wayland tests so that the builds
pass on CI. They will have to be re-enabled once Wayland support
is implemented (#4273).

Also remove `run-tests.sh` which got moved to `scripts/run-tests.sh`
but I forgot to delete the old one when I did the move.
ermshiperete added a commit that referenced this issue Feb 14, 2023
This change skips the four failing Wayland tests so that the builds
pass on CI. They will have to be re-enabled once Wayland support
is implemented (#4273).

Also remove `run-tests.sh` which got moved to `scripts/run-tests.sh`
but I forgot to delete the old one when I did the move.
@mcdurdin mcdurdin modified the milestones: A17S6, A17S7 Feb 18, 2023
ermshiperete added a commit that referenced this issue Feb 20, 2023
When using Wayland `im-wayland.so` (which is part of libgtk) gets
loaded into the client app instead of `im-ibus.so`. This means that
our ordered output doesn't work with Wayland.

This change works around a problem with keyboards that use multiple
consecutive backspace actions. Because method calls get processed
asynchronously some backspaces get lost. In clients that support
surrounding text we can count the consecutive backspaces and then
do one call to delete surrounding text with the appropriate number
of characters.

This can be tested with "Khmer Angkor" keyboard by typing `xEjmr`,
or with "Vedic Sanskrit Devanagari Phonetic (ITRANS)" keyboard by
typing `shrI`.

Part of #4273.
ermshiperete added a commit that referenced this issue Feb 21, 2023
# Keyman Conventional Commit suggestions:
# - Consider appending the text ". Fixes #4273" to your commit message.
@ermshiperete
Copy link
Contributor Author

ermshiperete commented Feb 23, 2023

Another problem with the Eurolatin(SIL) keyboard where the context is wrong:
Type :ab left =s. Expected output: äßb, but instead we get ä=sb.

@mcdurdin mcdurdin modified the milestones: A17S7, A17S8 Mar 6, 2023
ermshiperete added a commit that referenced this issue Mar 17, 2023
# Keyman Conventional Commit suggestions:
# - Consider appending the text ". Fixes #4273" to your commit message.
ermshiperete added a commit that referenced this issue Mar 17, 2023
# Keyman Conventional Commit suggestions:
# - Consider appending the text ". Fixes #4273" to your commit message.
@mcdurdin mcdurdin modified the milestones: A17S8, A17S9 Mar 18, 2023
@mcdurdin mcdurdin modified the milestones: A17S9, A17S10 Apr 4, 2023
@mcdurdin mcdurdin modified the milestones: A17S10, A17S11 Apr 15, 2023
@mcdurdin mcdurdin modified the milestones: A17S11, A17S12 Apr 29, 2023
@mcdurdin mcdurdin modified the milestones: A17S12, A17S13 May 14, 2023
ermshiperete added a commit that referenced this issue May 17, 2023
Follow-up of code review comments.

# Keyman Conventional Commit suggestions:
# - Consider appending the text ". Fixes #4273" to your commit message.
@ermshiperete
Copy link
Contributor Author

This will be available in Keyman 17.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

4 participants