Currently there is a github repo that provides a .deb file that solves this problem:

Windows US International XCompose for Linux

It is based on a customized .XCompose file as other answers have suggested.

From that page (Ubuntu/Debian):

sudo apt-add-repository -y ppa:rael-gc/utils
sudo apt update
sudo apt install win-us-intl
im-config -n uim

Logout and login. If that doesn't work, try rebooting the system.

Answer from yms on Stack Exchange
Top answer
1 of 4
10

Currently there is a github repo that provides a .deb file that solves this problem:

Windows US International XCompose for Linux

It is based on a customized .XCompose file as other answers have suggested.

From that page (Ubuntu/Debian):

sudo apt-add-repository -y ppa:rael-gc/utils
sudo apt update
sudo apt install win-us-intl
im-config -n uim

Logout and login. If that doesn't work, try rebooting the system.

2 of 4
7

One possibility is to avoid having dead keys and type accented letters with a Compose key instead. For example, type Compose " a to enter ä. You'll have to choose a keyboard layout option that includes a Compose key; a common choice is the key to the left of the right Ctrl key (which I think Windows calls Menu). The advantage of Compose is that you get to be able to type many fancy characters without changing your main layout. The disadvantage is that it takes three presses instead of two for an accented letter.

Alternatively, you can configure the effect of dead keys by creating a file called .XCompose (note CApitalization) in your home directory and listing the combinations you want. Something like:

include "/usr/share/X11/locale/en_US.UTF-8/Compose"

<dead_acute> <space> : "'" apostrophe
<dead_acute> <exclam> : "'!"
<dead_acute> <quotedbl> : "'\""
# etc...
<dead_acute> <a> : "á"
<dead_acute> <b> : "'b"
# etc...

The syntax is fairly simple: the sequence of keys to the left of the : is turned into the string between "" on the right of the :. The extra word on the right is the keysym (i.e., the name of the key) corresponding to this sequence of keys; it's not terribly important. Anything from a # to the end of the line is ignored.

Change the first line to point to the system file if your distribution puts it in a different place. You can look in this file for more syntax examples. <Multi_key> is another name for the Compose key.

On the left, the names between <angle brackets> are keysyms. You can find the list of keysyms in /usr/include/X11/keysymdef.h (this file is in a development package, e.g., x11proto-core-dev on Ubuntu).

Yes, that's a lot of typing, but you should be able to automate much of it by copy-pasting chunks of keysymdef.h and doing a few clever mass replacements. Something that will help is that you can reuse the hexadecimal code on the right to make the right-hand string thanks to the "\xdd" syntax: turn e.g.

#define XK_exclam                        0x0021  /* U+0021 EXCLAMATION MARK */

into

<dead_acute> <exclam> : "'\x21"

Finally, you can set up a keyboard layout with dead keys and a Compose key. Being German, you might set up only " as a dead key. If you're going that route, the simplest option is to use the GUI to set up a keyboard with no dead key and an .Xmodmap file for the dead key, containing something like

keysym apostrophe = apostrophe dead_quotedbl
🌐
Linux Mint Forums
forums.linuxmint.com › board index › main edition support › beginner questions
US - International keyboard, is there an equivalent in Linux? - Linux Mint Forums
The layout "US alt. intl." has the same problem. The Spanish accented vowels (á é í ó ú) work, but I don't want any accented consonants. Basically, I want the apostrophe key to turn into an accent only when the following key I press is a vowel, and stay as a regular apostrophe when the following key is a consonant. Any suggestions...? I don't think that's possible.... The "international" layout of Linux is apparently more international than its equivalent in Windows, because there are languages that do feature accented consonants (e.g.
🌐
Sailingissues
dry.sailingissues.com › us-international-keyboard-layout.html
US International keyboard layout
SailingIssues “dry.” domain Atheism & Religion Open source Linguistics Privacy Holding the right Alt Key (Alt Gr) while pressing another key on the US International Keyboard yields the blue characters depicted in the layout below. Shown here is the PC104 (with 104 keys) which will obviously ...
Top answer
1 of 4
19

Summary

  1. If you are using Ubuntu, it probably changed around 2005, when the default character set changed from ISO 8859-1 to UTF-8.
  2. US Alternative International adds some dead keys.

The dead key settings depend on your locale and character set.

For example:

  • en_US.UTF-8 is defined in /usr/share/X11/locale/en_US.UTF-8/Compose
  • ISO 8859-1 is defined in /usr/share/X11/locale/iso8859-1/Compose

If you look in them using grep, you can see there is a difference:

$ grep '<dead_acute> <c>' /usr/share/X11/locale/en_US.UTF-8/Compose 
<dead_acute> <c>                    : "ć"   U0107 # LATIN SMALL LETTER C WITH ACUTE

$ grep '<dead_acute> <c>' /usr/share/X11/locale/iso8859-1/Compose
<dead_acute> <c>            : "\347"    ccedilla

Namely:

  • Latin1 encoding: ', c = ç
  • UTF-8 encoding: ', c = ć

The git logs ((en_US.UTF-8) (iso8859-1)) show it has been this way since at least 2004.


The difference between US International and US Alternative International is defined in /usr/share/X11/xkb/symbols/us.

Namely, the US Alternative International layout adds these extra AltGr dead keys:

  • dead_macron: on AltGr-minus
  • dead_breve: on AltGr-parenleft
  • dead_abovedot: on AltGr-period
  • dead_abovering: on AltGr-0
  • dead_doubleacute: on AltGr-equal (as quotedbl is already used)
  • dead_caron: on AltGr-less (AltGr-shift-comma)
  • dead_cedilla: on AltGr-comma
  • dead_ogonek: on AltGr-semicolon
  • dead_belowdot: on AltGr-underscore (AltGr-shift-minus)
  • dead_hook: on AltGr-question
  • dead_horn: on AltGr-plus (AltGr-shift-equal)
  • dead_diaeresis: on AltGr-colon (Alt-shift-semicolon)

For example:

  • US International: AltGr+- = ¥
  • US Alternative International: AltGr+-, a = ā

UTF-8 became the default encoding:

  • Red Hat 8.0 "Psyche", released September 30, 2002 reference
  • Ubuntu 5.04 "hoary", released April 8, 2005 reference
  • Debian 4.0 "etch", released as "stable" April 8, 2007 reference 1 reference 2
2 of 4
4

Complementing Vítor Souza answer

Using an US international keyboard layout with OS Language in English and having a beautiful cedilla.

To have English Language with ç/Ç working beautifully ( 'c -> cedilla ) isn't necessary to change the compose files. What one have to do is to set the LC_CTYPE with a locale that contains this definition:

<dead_acute> <c>            : "\347"    ccedilla.

Like pt_BR.UTF-8 (Brazilian Portuguese / Português Brasileiro).

X keyboard map:

# setxkbmap -layout us -variant intl

/etc/locale.conf

# nano /etc/locale.conf
LANG=en_US.UTF-8
LANGUAGE="en_US"
LC_CTYPE=pt_BR.UTF-8

Update locale

# source /etc/profile

And for tty:

Set the right keymap, font and font map, eg.

# nano /etc/vconsole.conf
KEYMAP=us-acentos
FONT=ter-114n
FONT_MAP=8859-1
🌐
Martin Ueding
martin-ueding.de › posts › us-international-keyboard-variants
US International Keyboard Variants | Martin Ueding
February 6, 2021 - I have been using the ANSI keyboard layout for many years now and stronly prefer it over the ISO layout. The ANSI layout has the smaller enter button and a longer left shift key. Then I use the US international layout such that I can create German umlaut characters and other fancy things. On top of that I use the Linux compose key to create even more characters.
🌐
GitHub
github.com › raelgc › win_us_intl
GitHub - raelgc/win_us_intl: Windows™ US International XCompose for Linux
Make sure your keyboard is using English (US, intl., with dead keys) as layout. Make sure you logged out before testing. Make sure you rebooted your computer if logging out didn't work.
Starred by 300 users
Forked by 32 users
Languages   Shell
Find elsewhere
🌐
Linux Mint Forums
forums.linuxmint.com › board index › main edition support › beginner questions
Want MS US International keyboard back - Linux Mint Forums
Is the problem that the keyboard isn't supported or that the Linux implementation requires different keystrokes to achieve the same output? ETA: Did a bit of surfing to see what this is about. This was the best explanation I found. Been like this since 2005, apparently. Not likely to change soon. Also a somewhat enlightening askubuntu conversation (less penetrating but more recent). ... I could have sworn that the keyboard layout you want is available in System Settings, Hardware, Keyboard, Layouts.
🌐
Reddit
reddit.com › r/linuxquestions › configure us intl keyboard layout
r/linuxquestions on Reddit: Configure US Intl keyboard layout
August 19, 2022 -

I have following issue: I am German, so I would like to use letters like ü and ö. But the German keyboard is terrible, because I program a lot and have to write a lot in English. I currently use the US-intl layout, but I don't like it. To print " I have to press first the "-key and then a space to confirm it, because if I would want to make an ö, I would press: ¨ and then o. This is extremely annoying, because I can write an ö just with Alt Gr + p.

So I would like to change this behavior. I just want to use Alt Gr + p and if I want an ", I want it instant. It's unnecessary to have multiple options for ö.

Furthermore, I don't want to change my keyboard layout every 2 seconds.

Is there a somewhat manageable way to create my custom layout? I use Fedora and looked into X Keyboard extension and Kmonad, but both of these solution seem to be overly complicated - I wasn't even able to get kmonad running.

Is there a simple solution? If there are any Germans here, how are you solving this issue?

Top answer
1 of 1
1
You probably want to use the variant "alt-intl" of the us layout. edit: nevermind, that doesn't have the property you want. I assumed that it does because it doesn't have "with dead keys" in its description. That being said, using custom layouts is reasonably easy if and only if you use wayland. In this case you can just "augment" the vendor xkb tree with local files in ~/.config/xkb or /etc/xkb/. The syntax of xkb files should be rather easy to understand. edit: the following should do what you want: ~/.config/xkb/symbols/us: partial alphanumeric_keys xkb_symbols "intl-custom" { name[Group1]= "English (US, intl., with dead keys, but undead quotes)"; include "us(intl)" key { [apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; }; ~/.config/xkb/rules/evdev.xml: us intl-custom intl-custom International, with dead keys, but not for quotes Then this custom layout should appear in your keyboard settings. This doesn't work with the legacy display server though, there are only hacks stacked upon hacks that might somehow do what you want if you hold it right and don't use any other software that somehow does anything with keyboards (so if you use a desktop environment (in particular Gnome), you're probably out of luck) and never plug in new keyboards (because new keyboards will always have the default layout …) This is the reason why there are hundreds of "custom" keyboard layouts in upstream xkeyboard-config. There used to be no usable way to have custom keyboard layouts other than having them merged into xkeyboard-config.
🌐
Reddit
reddit.com › r/framework › what is different between us english / international (and linux, besides win keycap)
r/framework on Reddit: What is different between US English / International (and linux, besides Win keycap)
August 3, 2023 -

Trying to place a preorder for the Framework 16 (woot!)

Sorry, but i'm staring at the picture (and have searched!) But cannot find any differences (other than the win/super silkscreen) between:

  • us english

  • international english

  • international english linux

I will be running linux & i3 FWIW - although i dont really care if it says windoze on the key or not :). I would love if they'd relabel caps/ctrl "correctly" tho so my partner can stop getting confused! :)

🌐
Linux Magazine
linux-magazine.com › Online › Blogs › Off-the-Beat-Bruce-Byfield-s-Blog › Choosing-an-English-Keyboard-Configuration
Choosing an English Keyboard Configuration » Linux Magazine
English (US, with Euro on 5): The ... (US, alternative, international): This layout adds the € to the 5 key, and € and ¢ as the third and fourth level characters on the e key....
🌐
Raelcunha
raelcunha.com › 2014 › 03 › 31 › en-us-international-keyboard-on-ubuntu
English (US) International Keyboard on Ubuntu
To double check this, go to System Settings > Keyboard. At the left bottom, click on Text Entry. First selected option must be English (US, international with dead keys).
🌐
Arch Linux Forums
bbs.archlinux.org › viewtopic.php
US International keyboard layout, but without dead keys / Community Contributions / Arch Linux Forums
partial alphanumeric_keys xkb_symbols "intl_nodeadkeys" { name[Group1]= "U.S. English - International (without plain dead keys)"; include "us(intl)" // Alphanumeric section (overriding some annoying dead keys) key <TLDE> { [ grave, asciitilde ] }; key <AE06> { [ 6, asciicircum, onequarter, asciicircum ] }; key <AC11> { [ apostrophe, quotedbl ] }; }; After adding this to /usr/share/X11/xkb/symbols/us, you can test it instantly with the following command: ... Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "pc104" # Fill in your keyboard model Option "XkbLayout" "us" Option "XkbVariant" "intl_nodeadkeys" EndSection
🌐
Linux Mint Forums
forums.linuxmint.com › board index › main edition support › beginner questions
I want "US-International" keyboard ON, where is it? - Linux Mint Forums
Under System Settings-Regional Settings you can find the chosen keyboard layout type. With the + you can add another keyboard layout and make this default.