Cannot create binds containing a modifier and plain letters for non-ascii layouts

Author: ch3rn1kaCreated Aug 2, 2026Updated Aug 6, 2026
Labelscomponent: keyinputpriority: 2 - lowstatus: needs triagebug: behavior

Version info: qutebrowser v3.7.0 Git commit: Backend: QtWebEngine 6.11.1 based on Chromium 140.0.7339.225 with security patches up to 148.0.7778.96 (plus any distribution patches) (source: api) Qt: 6.11.1

Does the bug happen if you start with --temp-basedir? Yes.

Description If a bind contains a modified Unicode key, and a plain Unicode key, e.g. <Ctrl-ч>щ, it won't trigger. Interestingly enough, just <Ctrl-x> and щ by themselves seem to work fine, it's their combination that messes everything up.

How to reproduce

  1. Define this bind (this mimics Emacs' <C-x>k bind to kill a buffer):
python
config.bind('<Ctrl-ч>л', 'tab-close')
  1. Try to use it

I wrote about this in #8953, but it didn't get much traction, so I'm reposting here. There I described a particular use case for Unicode binds -- a function that converts existing binds to their cross-layout equivalents, like with <Ctrl-x>o to <Ctrl-ч>щ.