Skip to content

Keyboard layout settings (dead keys) not working in Brave Beta on Linux #46230

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

Closed
2 of 6 tasks
insilications opened this issue May 21, 2025 · 2 comments
Closed
2 of 6 tasks

Comments

@insilications
Copy link

insilications commented May 21, 2025

Description

Maybe related: XInput2 changes in Linux were reverted yesterday in upstream (https://issues.chromium.org/issues/412608405) because of regression. These XInput2 changes changed the way key pressing was flagged/registered so maybe it also affected dead keys functioning properly.

As I like to use a US keyboard (and keyboard layout) for programming, but am also a Brazilian person, I need to use the US international keyboard layout. The so-called dead keys (~, ^, ', " and `), which combine with letter to make characters such as à, é, ç, ã, etc. usually work by first pressing the dead key and then pressing the letter key with which you'd like to combine the accent. However since the last two Brave Betas, they have stopped working. Chrome Stable, VS Code Nightly and every other program is using the configured keyboard layout set by the Xorg keyboard configuration and they are able to produce such characters.

localectl output:

System Locale: LANG=C.UTF-8
    VC Keymap: us-acentos
   X11 Layout: us
    X11 Model: pc105
  X11 Variant: alt-intl

setxkbmap -print -verbose 10 output:

Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     us
variant:    alt-intl
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+us(alt-intl)+inet(evdev)
geometry:   pc(pc105)
xkb_keymap {
	xkb_keycodes  { include "evdev+aliases(qwerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete"	};
	xkb_symbols   { include "pc+us(alt-intl)+inet(evdev)"	};
	xkb_geometry  { include "pc(pc105)"	};
};

Steps to reproduce

  1. Set x11 variant for US international layout (alt-intl)
  2. Try to produce any character with the dead keys (~, ^, ', " and `), which combine with letter to make characters such as à, ç, é...
  3. Fail.

Actual result

Not being able to output the correct output while respecting the current international keyboard layout.

Expected result

Being able to output the correct output while respecting the current international keyboard layout.

Reproduces how often

Easily reproduced

Brave version (brave://version info)

Brave 1.79.111 Chromium: 137.0.7151.32 (Official Build) beta (64-bit)
Revision e536a3698e99b972ac4ea46274d2474517128a21
OS Linux

Channel information

  • release (stable)
  • beta
  • nightly

Reproducibility

  • with Brave Shields disabled
  • with Brave Rewards disabled
  • in the latest version of Chrome

Miscellaneous information

No response

@rebron
Copy link
Collaborator

rebron commented May 22, 2025

cc: @fallaciousreasoning

@insilications
Copy link
Author

I discovered the cause. It's due to a recent upstream change (135) related to IME. Chromium finally adopted GTK4. In GTK4, XI2 is mandatory when building the X11 backend, and support for the XIM input method has been removed in favor of IBus. I was using XIM (X Input Method) because I had an entry for GTK_IM_MODULE="xim" in my dotfiles. Setting GTK_IM_MODULE to "ibus" or even unsetting GTK_IM_MODULE solved the issue.


[X11] After updating Chrome 135 on Ubuntu, IME no longer works or backspace, enter, arrow keys not working in Korean

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants