WayfireWM / WayfireWM/wayfire

Forward both cursor and preedit rectangles to IME to fix CJK candidate popup jumping

Open
#3,115 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement PRs-welcome waiting
Dominant language
C++
Stars
3.1k
Forks
237
Avg merge
1h 43m
Merged PRs (30d)
1

Description

Hi,

I'd like to raise an input method issue that affects CJK users on Wayland. Currently the candidate popup follows the cursor rectangle, and while typing pinyin the cursor moves continuously, so the popup jumps around constantly. It's been a known pain for years.

The proposed fix in wayland-protocols is to let applications send both a cursor rectangle and a preedit rectangle. The compositor then passes both to the IME, which can anchor to the preedit start instead of the moving cursor. Relevant discussion:
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/517
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/521

Wayfire is based on wlroots, and I've also reported this there. But it would be great if Wayfire could also express support for this and maybe help ensure wlroots implements it properly. Even a comment from a compositor project helps prioritize the fix.

Is this something you'd consider? I'm happy to test any builds.

Thanks!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with wayland-protocols merge requests 517 and 521, then inspect how Wayfire relies on wlroots for input-method handling. Determine whether the proposed protocol support belongs in Wayfire or wlroots; done requires a clearly agreed implementation path and a way to verify that both cursor and preedit rectangles reach the IME.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.