Skip to content

fix(input): keep modifier-only binds alive while an input method is active - #196

Merged
ItsLemmy merged 2 commits into
noctalia-dev:mainfrom
Qaaxaap:fix/ime-modifier-tap
Sep 11, 2026
Merged

ItsLemmy merged 2 commits into
noctalia-dev:mainfrom
Qaaxaap:fix/ime-modifier-tap

Conversation

@Qaaxaap

@Qaaxaap Qaaxaap commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Only let physical keyboards arm modifier taps; virtual-keyboard echoes no longer cancel them.

Motivation

An input method grabs the physical keyboard and echoes each forwarded key back through its own virtual keyboard. Every key press cancels the pending modifier tap (armModifierTap starts with cancelForKeyPress), so the virtual echo of a held modifier cancels the physical tap and the modifier-only bind never fires on release. Combination binds are unaffected because they match on press.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Refactoring
  • Build / packaging
  • Documentation

Related Issue

Closes #139

Testing

just check and manual test

Manual Coverage

  • Tested in a nested Umbriel session
  • Tested in a native Umbriel session
  • Tested with multiple monitors
  • Tested with a scaled output
  • Tested with native Wayland applications
  • Tested with X11 applications through xwayland-satellite
  • Tested with the scrolling layout
  • Tested with the dwindle layout

Screenshots / Videos

Checklist

  • This PR is ready for review, or it is marked as Draft.
  • This change fits SCOPE.md, or its scope was agreed in an issue or on Discord first.
  • I read and followed the relevant guidance in CONTRIBUTING.md.
  • I ran just format, or this PR has no C++ changes.
  • I ran the relevant build, test, lint, or verification commands, or explained why they were not run.
  • I functionally verified compositor behavior where automated checks are insufficient.
  • I self-reviewed the changes.
  • I checked for new warnings or errors.
  • I updated docs/ and examples/config.toml, or this PR does not change user-facing configuration or behavior.
  • I used canonical names for config keys, IPC actions, paths, and identifiers.

Additional Notes

I am a non-native English speaker and used an LLM for translation

@ItsLemmy
ItsLemmy merged commit d3cf218 into noctalia-dev:main Sep 11, 2026
@ItsLemmy

Copy link
Copy Markdown
Contributor

Thanks, reworked it a bit so that it exclude only IME keyboards from modifier taps and not all virtual keyboards, since our test harness use virtual keyboard.

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.

[BUG] With fcitx5 running, binds for mod keys individually stop working properly

2 participants