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

Focus change required for virtual keyboard to work #99

Open
hrdl-github opened this issue Dec 12, 2024 · 1 comment
Open

Focus change required for virtual keyboard to work #99

hrdl-github opened this issue Dec 12, 2024 · 1 comment

Comments

@hrdl-github
Copy link

regreet 0.1.1, sway 1.10+wlroots 0.18.1, also sway 1.9+wlroots 0.17.4

Trying ReGreet on a touchscreen-only device, I've noticed that keyboard input using squeekboard does not work as intended. zwp_text_input_v3 enter is not called until an input field is selected AFTER a window focus change has taken place. This is not the case with gtkgreet.

swaymsg -t get_tree |jq yields the same result after touching the text input the second time, so the surface focus logic in https://github.com/swaywm/sway/blob/master/sway/input/text_input.c might be relevant here.

To reproduce:

Start via greetd/sway:

for_window [app_id="apps.regreet"] fullscreen disable
exec "gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true"
exec "squeekboard"
exec "WAYLAND_DEBUG=1 regreet -l trace 2> /tmp/regreet.log; swaymsg exit"
include /etc/sway/config.d/*

Then

  1. Press the edit user button using touch input
  2. Press the user name field using touch input. The keyboard is toggled, but no zwp_text_input_v3#.*.enter event is received. Keyboard input via squeekboard is not received.
  3. Via ssh, run SWAYSOCK=/run/user/*/sway*.sock swaymsg focus parent
  4. Select the user name field using touch input. Not until now the zwp_text_input_v3#.*.enter event is received.
@rharish101
Copy link
Owner

rharish101 commented Dec 22, 2024

I don't have a touch-enabled device to test this out 😅. I tried this same setup on my Arch desktop, but squeekboard wouldn't pop up. I had to type with my physical keyboard. Is it actually supported on desktops, or only on touchscreen-only devices?

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

No branches or pull requests

2 participants