Ubuntu – How to share two keyboard on the same laptop, french iso layout and usa ansi layout keyboard with usb

keyboardkeyboard-layoutlayoutxmodmap

I recently bought a "noppoo choc mini" with this specific ANSI US-INTERNATIONAL pc84 layout

This specific keyboard only has 84 keys, a 60% (compact tenkeyless) reduced layout.

My problem is simple, there is no keyboard layout into Ubuntu 12.04 which corresponds to this English, US keyboard layout … so it's the same problem with the reduced version and only 84 keys…

I searched for a template of a normal ANSI US-INTERNATIONAL for xmodmap/xkb, and after that I ccould try to manually map the other keys. I searched on Google, but I couldn't find any other user which has the same problem.

Edit 1 :

Here you can see there is probably a bug in Ubuntu, because the layout for USA with dead key is not correct !

I have this now.

And other users have this for the same layout:

EDIT 2

It seems after a "sudo dpkg-reconfigure keyboard-configuration" :
french standard keyboard pc105 + precision M65 keyboard from dell laptop

Now I can see the good US layout in the parameters, but I cannot choose the iso layout for French usage…

EDIT 3

Ok, I'll explain the problem a bit better: I have one laptop with an integrated French keyboard, and I want to use my USB keyboard to use an English, US layout.

It seem it's impossible in Ubuntu and "dpkg-reconfigure keyboard-configuration" to share two different physical layout (ANSI and EU ISO) on the same computer …

EDIT4

Ok, it seems I can switch the physical layout (ISO <-> ANSI) with this command in the terminal:

setxkbmap -layout us
setxkbmap -layout us -variant alt-intl

an

setxkbmap -layout fr 

It's very complicated and it seem Ubuntu 12.04 still has a problem with the keyboard manager because all works great with these two commands, but that doesn't change anything in the System parametersKeyboard !!!

Secondly: The image of the layout for FR is buggy, the layout is not ISO, but I can press on the key < > at the left of right Shift without any problem! You can see the image here (french alternative with ANSI layout ? it's crazy ?) :

Can you help me on this point ?
I'm lost with xkb, and manual mapping is very complicated …

Best Answer

I may not have a lot of experience with coding, software engineering or even with linux systems, but i do know one thing: a computer, no matter what system it uses, is mostly based on the human brain.

Now i know it's possible for a brain (and a computer) to learn 2 languages side-by-side, but what you're asking of the pc is a bit different. You're not asking it to use two languages side-by-side, you're asking it to use those two languages simultaniously, so basically to consider 2 outputs for a single input, and let the computer choose which one to use.

On itself, this shouldn't be too much of an issue, if it weren't for the fact that this translation process takes place within the software, rather than in the keyboard, making it (near) impossible for the computer to know which one to use. For instance (not entirely sure about the specific layout of the fr-iso keyboard, so forgive me if this is exaggerated) you could type the 'Q' key on the USB-keyboard, but the computer would have to interpret it as "'Q' or 'A'". Now yóu know you typed a Q, but all the computer knows is that you typed in a specific key with multiple translations. Which is where the keyboard settings come into action.

Using the keyboard layout setting, you tell your computer how to interpret your keystrokes. So you basically tell it what dictionary to use for that keyboard. If you want to use the other keyboard, you should set the dictionary to the appropriate language, or the computer might misinterpret your keystrokes, causing it to think you're still using the standard (fr-iso) keyboard, where you àctually want it to use the en-us dictionary. I would compare it with speaking spanish while in portugal: they mostly know what you mean, but some things just don't make sense due to semantic differences.

So, long story short: simultanious use is impossible, unless both keyboards have the ability to automatically tell the computer which layout to use. Imo, your best bet would be to set up shortcuts or scripts to easily change the keyboard settings (like Windows uses the Left-ctrl + Left-shift combination). However, to make sure this happens correctly, it ís recommended to manually map your keys (the only one who knows the correct interpretation for sure is you), and maybe find a way to export this mapping for easy use within either a script or application for ease of changing the layouts. (Like i said, no experience in coding, so although i assume there's a way, i'm not the person to know that way: comments would be welcome)

Hope it helps

Related Question