jesseduffield / jesseduffield/lazygit
Accent composition using modified dead keys not working properly on Windows
- Dominant language
- Go
- Stars
- 82.4k
- Forks
- 3k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 19
Description
### Describe the bug
For languages that use diacritics (accents), a common way to type them is to press and release a "dead key" representing the accent, then the base character. To type `é` on the so called "Romanian (Programmers) layout", I type `AltGr-9 e`. In lazygit, this results in `9é`, forcing me to go back and delete the `9` in this case.
### To Reproduce
Steps to reproduce the behavior:
1. Set the keyboard layout to "Romanian (Programmers)"
2. In lazygit, start editing a commit message
3. Type an accented character, like ê, à, or é, using `AltGr` plus the 3, 7, or 9 keys respectively
4. Notice how the "dead key" was inserted
5. If you then type "e", you will get the accented letter as well
### Expected behavior
The dead keys are not supposed to be inserted on their own.
Using non-modified dead keys, like in the "United States-International" layout, one uses `' e` to type `é`, works as expected: I get only the accented character, no apostrophe.
### Version info:
`commit=aee0e40ec1235476e9328678f0f3e2462576b9ae, build date=2026-08-04T07:26:19Z, build source=binaryRelease, version=0.64.0, os=windows, arch=amd64, git version=2.51.0.windows.1`
### Terminal info:
I tried using both the legacy cmd.exe and the modern Windows Terminal (1.24.11911.0). Outside of lazygit, using the same layout and key combinations, both terminals work as expected.
Contributor guide
Research direction
Start by reproducing the modified dead-key behavior in lazygit's commit-message editor on Windows, comparing it with the same key sequences in cmd.exe or Windows Terminal. Trace the terminal input handling used by the editor; done means Romanian (Programmers) dead keys compose into the accented character without inserting the standalone digit, while ordinary dead-key layouts continue to work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, go
- Domain
- cli, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100