é us-intl-windows-like GitHub

US-International keyboard for Linux, the Windows way

A single .XCompose file that makes the US-International layout on Linux behave like it does on Windows. Apostrophes make accents on vowels, and stay a plain apostrophe before consonants. So I'm stays I'm, not Iḿ.

The problem

The stock US-International layouts on Linux both get in the way of everyday English typing:

Windows US-International handles this correctly: the apostrophe only accents vowels (á, é, í, ó, ú), never consonants. This fix brings that same behavior to Linux.

' + e gives é
I ' m gives I'm (not Iḿ)

Install

# clone and run the installer
git clone https://github.com/T-21/us-intl-windows-like.git
cd us-intl-windows-like
chmod +x install.sh
./install.sh

Then set your keyboard layout to US alt. intl. or US international with dead keys, log out and back in, and test with 'e (gives é) and I'm (stays I'm). Full manual and per-desktop steps for KDE, GNOME and XFCE are in the README.

Wayland and Chromium browsers

The fix uses X11's .XCompose system. On Wayland it works in most GTK and Qt apps, but not in Chromium-based browsers (Chrome, Edge, Brave) running as native Wayland clients. Force them under XWayland by adding --ozone-platform=x11 to the launch command. The repo has ready-made steps for both native and Flatpak installs.

How it works

The .XCompose file overrides the default dead-key behavior for consonants while keeping the accent behavior for vowels, using the X11 Compose system that every Linux desktop supports. No background process, no dependencies, and it removes cleanly with ./uninstall.sh.

Common questions

Why does my Linux keyboard put an accent on consonants?

The US alt. intl. layout treats the apostrophe as a dead key for every following letter, so an apostrophe before m produces an accented m. This fix limits dead-key behavior to vowels only.

How do I get Windows US-International behavior on Linux?

Install this .XCompose file, select the US alt. intl. layout, and log out and back in. Apostrophes then accent a, e, i, o and u, and stay plain before any consonant, exactly like Windows.

Why does typing I'm give Iḿ on Linux?

The apostrophe combines with the next character as a dead key. Before the m it forms an accented m. With this fix the apostrophe only combines with vowels, so contractions like I'm, don't and it's stay intact.

Does it work on Wayland?

Yes in most GTK and Qt apps. Chromium browsers as native Wayland clients do not read .XCompose; use the --ozone-platform=x11 flag described above.