Skip to content

config: allow external input methods - #1486

Draft
abjfh30 wants to merge 1 commit into
microsoft:mainfrom
abjfh30:feature/allow-external-input-method
Draft

config: allow external input methods#1486
abjfh30 wants to merge 1 commit into
microsoft:mainfrom
abjfh30:feature/allow-external-input-method

Conversation

@abjfh30

@abjfh30 abjfh30 commented Jul 17, 2026

Copy link
Copy Markdown

Summary

  • opt the WSLg Weston configuration into external input-method binding
  • allow an input method running outside the system distro, such as Fcitx5, to bind the input-method protocol

Motivation

The WSLg configuration leaves [input-method] path empty, so Weston does not launch an input-method client inside the system distro. Input methods such as Fcitx5 run in the user distribution instead.

The Weston text backend normally permits only the compositor-launched client to bind the privileged input-method protocol. With no configured path, an external input method cannot bind. Enabling allow-external provides the required WSLg-side wiring for native Wayland text-input support.

Required Merge Set

All three PRs are required for the complete native Wayland input-method path:

Weston #168 and #169 can be reviewed independently. This WSLg configuration change should take effect only in a Weston revision that contains both.

Related Issues

Scope

This PR intentionally contains only the WSLg configuration change. Protocol bridging, privileged binding policy, and RDPRAIL input-panel behavior remain in the linked Weston PRs.

Security

The input-method protocol is privileged: a bound client can observe and modify text-input state. Enabling this option allows the first external client to claim that protocol. The Weston option remains disabled by default; this PR opts WSLg in explicitly. The WSLg trust boundary and client-selection policy therefore require maintainer review before this draft is ready to merge.

Testing

Tested with a locally built system distro containing the linked Weston changes:

  • the input-method-bind, rdprail-input-panel, and rdprail-window-state tests pass
  • the system distro build completes successfully
  • Fcitx5 reports Using Wayland native input method protocol: 1
  • IDEA uses the native Wayland toolkit and accepts Chinese input
  • the input-method candidate window is visible and positioned at the text cursor
  • git diff --check upstream/main...HEAD passes

The WSLg system distro does not launch an input method because its
configured path is empty. Input methods such as Fcitx5 run outside the
system distro and therefore need to bind the input-method protocol as an
external client.

Enable the opt-in external binding policy. Weston keeps the policy
disabled by default, so the broader permission is limited to the WSLg
configuration.
Copilot AI review requested due to automatic review settings July 17, 2026 15:08

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the WSLg Weston configuration to explicitly opt into the (upstream/dependent) Weston capability that allows an external input-method client (running outside the system distro) to bind the privileged input-method protocol, enabling native Wayland text-input for scenarios like Fcitx5 in the user distro.

Changes:

  • Enable the [input-method] allow-external option in WSLg’s weston.ini.
  • Preserve the existing behavior of not launching an input-method client in the system distro (path= remains empty).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI left a comment

Copy link
Copy Markdown

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 1 out of 1 changed files in this pull request and generated no new comments.

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.

2 participants