-
Notifications
You must be signed in to change notification settings - Fork 24
Add a simple, XCompose based input method #646
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Adds a simple, XCompose-based input method (Simple IM) with optional Unicode input, integrates it into the text input pipeline, and exposes configuration and control via protocol, config, IPC, and CLI.
- Introduces Simple IM implementation and an abstraction layer (InputMethod, InputMethodKeyboardGrab) to support both external IM and Simple IM.
- Adds configuration support ([simple-im] table with enabled boolean), actions (enable/disable/toggle/reload, enable-unicode-input), and bumps jay_compositor protocol to v22 with new requests.
- Updates CLI and IPC to control Simple IM and adjusts event handling/render paths for new IM abstraction.
Reviewed Changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| wire/jay_input.txt | Adds set_simple_im_enabled and reload_simple_im requests (since v22) to control Simple IM. |
| toml-spec/spec/spec.yaml | Documents new actions and the [simple-im] configuration table. |
| toml-spec/spec/spec.generated.md | Generated docs reflecting new actions and [simple-im] config. |
| toml-spec/spec/spec.generated.json | Schema updated with SimpleIm type and new SimpleActionName values. |
| toml-config/src/lib.rs | Wires new SimpleCommand variants to seat methods; applies [simple-im].enabled at load. |
| toml-config/src/config/parsers/simple_im.rs | Adds parser for the [simple-im] table. |
| toml-config/src/config/parsers/config.rs | Hooks [simple-im] into top-level Config parsing. |
| toml-config/src/config/parsers/action.rs | Supports new simple-IM-related actions. |
| toml-config/src/config/parsers.rs | Registers simple_im parser module. |
| toml-config/src/config.rs | Adds SimpleIm struct and SimpleCommand variants; Config gains simple_im field. |
| src/tools/tool_client.rs | Negotiates JayCompositor version up to 22. |
| src/ifs/wl_surface.rs | Iterates IM popups via new trait API. |
| src/ifs/wl_seat/text_input/zwp_text_input_v3.rs | Switches to trait-based InputMethod interface. |
| src/ifs/wl_seat/text_input/zwp_input_method_v2.rs | Implements InputMethod for external IM; updates cleanup logic. |
| src/ifs/wl_seat/text_input/zwp_input_method_manager_v2.rs | Uses seat APIs to set IM respecting Simple IM precedence. |
| src/ifs/wl_seat/text_input/zwp_input_method_keyboard_grab_v2.rs | Adapts keyboard grab to new trait; controls event forwarding. |
| src/ifs/wl_seat/text_input/simple_im.rs | Implements Simple IM with XCompose and Unicode input handling. |
| src/ifs/wl_seat/text_input.rs | Introduces InputMethod traits and Simple IM lifecycle; connection logic. |
| src/ifs/wl_seat/event_handling.rs | Routes key/modifier events through IM grab and conditionally forwards to node. |
| src/ifs/wl_seat.rs | Stores dyn InputMethod, initializes Simple IM by default; toggling/reload logic. |
| src/ifs/jay_input.rs | Handles new Simple IM control requests. |
| src/ifs/jay_compositor.rs | Bumps compositor protocol version to 22. |
| src/gfx_api.rs | Uses new popups() accessor for IM popups during rendering/hit-testing. |
| src/config/handler.rs | IPC handlers for enable/disable, query, reload, and enable-unicode-input. |
| src/cli/input.rs | Adds seat simple-im CLI (enable/disable/reload). |
| jay-config/src/input.rs | Public API to control/query Simple IM and enable Unicode input. |
| jay-config/src/_private/ipc.rs | Extends IPC messages and responses for Simple IM control. |
| jay-config/src/_private/client.rs | Client-side IPC helpers for Simple IM. |
| Cargo.toml | Enables kbvm compose feature required by Simple IM. |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
7df8d8f to
2e96eae
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 29 out of 29 changed files in this pull request and generated 3 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
2e96eae to
481e9b3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 29 out of 29 changed files in this pull request and generated 3 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Since GTK no longer uses XCompose, this restores the previous functionality.
In addition to XCompose, users can also input unicode by invoking the enable-unicode-input action.