Just upgraded from 10.04 to 10.10, and the keyboard indicator applet no longer displays the two-letter country code for the active layout.
This is terrible. Is this the default behaviour? Anyone using two layouts can't tell which language they're in.
I can't seem to find the setting for this, it used to be in the preferences for keyboard layout.
Update 1: In case this wasn't obvious - I have two keyboard layouts - English and Hebrew. I just upgraded form 10.04, where the country code (USA/IL) was displayed, overlaid on the flag.
Now all I get is a vague keyboard icon, and can't find the settings for this.
Update 2: this seems to be a bug that people have been reporting since Lucid, and is now back in Maverick
10.10
Yes, the icon doesn't reflect the language chosen. I think it may have something to do with the fact that showing "flags" would often be inappropriate. (Examples: flag of Great Britain in India, flag of Germany in Austria, flag of France in Senegal).
The current metaphor, i.e. KEYBOARD → Langauge is very much in accordance with user experience guidelines.
The behaviour you're describing was removed quite some time ago. It was another application (can't remember the name) that dealt with keyboard layouts then. (At least I remember something like that, I'm not quite sure now come to think of it)
What i did to get the above screen shot was go to Keyboard-Layouts, select add, Hebrew/Israel and add it to the list. My system has been upgraded since 9.10, so it should be the same on nearly every Ubuntu installation.
The old behaviour is still lurking in the system. If you want the indicator to show Flags, you can open
gconf-editor
, got to/desktop/peripherals/keyboard/indicator
and enable "showFlags". However, you'll need the relevant flags to be in/home/<username>/.icons/flags
(press CTRL+H to show directories that start with a period). The flag of israel should be namedil.png
(which is israels ISO 3166-1 alpha-2 country code).12.10
By default the keyboard indicator in 12.10 shows a keyboard icon and the 2-letter abbreviation of the layout.
If you want to show the country flags instead, you have to do two things
Set the configuration option for
dconf
:Install the flags icons in the
~/.icons
(not~/.icons/flags
) folder. An easy way to do this is by installingfamfamfam-flag-png
and linking the icons to your folder byUbuntu 12.04
The keyboard indicator appears when you have more than one keyboard layout defined.
The country is displayed using the 2-letter code
for example - france:
how-to
Search in Dash for keyboard layout
Note
Unlike in 10.10 - whilst there is a gconf entry for keyboard, there is not a similar show-flags key.
If you want the country flag to be displayed instead of the keyboard indicator, you can use a small applet called
gxneur
.gxneur
To do this, we need to whitelist
gxneur
. Usedconf-editor
:dconf-tools
Auto Startup
checkbox is ticked.Ubuntu 10.04
Well, it turns out that this is a bug that was in the Lucid Beta and is now showing up again (See here: https://bugs.launchpad.net/gnome-settings-daemon/+bug/531173).
Here's a workaround:
This should supersede (replace) the current indicator group, but might make a bit of a mess.
Ubuntu 10.10
It only displays if you have more than one keyboard layout configured.
Go into System > Preferences > Keyboard
On the Layouts tab, add another keyboard layout and then notice how the icon appears in the notification area.
In other words, you do not get the applet if you have only one keyboard layout to choose from.
Ubuntu 10.10
By default, the keyboard indicator in 10.10 shows a keyboard icon and the 3-letter abbreviation of the layout.
It can also show an icon when the
/desktop/gnome/peripherals/keyboard/indicator/showFlags
key in GConf is set, and you have the required icons installed somewhere.Note that, despite the GConf key name, country flags aren't the best solution here, as some keyboard layouts are not linked to one country, and some countries might have multiple totally different layouts). So the flag (file)names are not alpha-2 country codes but XKB keyboard layout codes, which in many cases are based on country codes (but don't always correctly express all the places where a certain keyboard layout is used), but in other cases are not (
ara
= "arabic",latam
= "latin america",mao
= "maori",brai
= "braille",epo
= "esperanto"). You can find a list of all layout codes in/usr/share/X11/xkb/rules/base.lst
under the! layout
section.As far as I know, for Natty it's planned to have SVG (or SVG-based) icons that express the keyboard layout (IIRC they will use the 3-letter abbreviation as listed in
base.xml
, which can be found in the same directory that I mention above) so that we don't need the keyboard icon + text any more (indicators can't be text-only currently...).And like Richard says, it only shows when you have more than 1 layout configured.
I found a python scrypt here: ubuntu App Developer: Application indicators to do an indicator App, and I tweak it a bit and did a litle Lang flag indicator.
country-indicator.py
it could be easily run as Python scrypt or be compiled with the pyinstaller
hope this helps
Ubuntu 13.10
The keyboard language is indicated by two letters on a gray background (Example: En for English, Fr for French, etc). You can edit those images, which are SVG files, bearing in mind that SVG images are no more than XML files. You can do this in a text editor, but first you need to get the image(s) of the flag(s) into SVG file(s). For that you need to use Inkscape.
Open your flag image (PNG, JPG, whatever) in Inkscape, and save it as an SVG file. Warning -- your flag image should not be too large, byte-wise, no more than a few hundred Kb or less.
MAKE A BACKUP of the image you're going to edit. The images (the ones showing a two-letter code on a gray background) are found in:
/usr/share/icons/ubuntu-mono-dark/status/22/ AND /usr/share/icons/ubuntu-mono-light/status/22/
They are named: indicator-keyboard-En.svg for English indicator-keyboard-Fr.svg for French indicator-keyboard-Es.svg for Spanish ... you get the idea.
AFTER you've backed up the ones you want to modify, open the svg image in that directory in a text editor, with root privileges, because you're going to edit it. In the same text editor, open the flag svg image you've converted in Inkscape.
Generally, the final svg image should have all the properly formatted tags of an xml file, but you can remove almost anything between the tags, and replace it with the data from the
Everything between image tag and its closing "/>" came from the flag-image svg file produced by Inkscape, including that long alphanumeric string that is the "meat" of the image. Everything above and below that is from the original svg file.
In the example above I gave the image a width of 30 pixels and height of 18 pixels, it matches nicely with the other icons/indicators on the panel.
More details at: http://ubuntuforums.org/showthread.php?t=2193789
Ubuntu 14.04
In this case is more like user53768 answer. All you need to do is:
To convert your desired images into
*.svg
type using Inskscape.Backup your old icons under directories
/usr/share/icons/ubuntu-mono-dark/status/22/
and/usr/share/icons/ubuntu-mono-light/status/22/
(in my example i use English and Greek language).Make symbolic links of your images.
Universal solution for Ubuntu 14.04 LTS, 16.04 LTS, 18.04 LTS using Unity and GNOME FlashBack (with
gnome-panel
). Also it works on LightDM login screen.But it will not work on Ubuntu 18.04 LTS with GNOME Shell because of different keyboard layout indication mechanism.
Steps to show flags for keyboard layouts:
First of all we need to download country flags. In example below we use Russia (
ru
) and United States (us
):Note: I used
ru
andus
, you can pick others from LinuxMint GitHub repository.Then we need to convert this PNG-flags to SVG saving alpha-channel with ImageMagick:
If you want to revert the changes - reinstall the following packages.
On 14.04 LTS:
On 16.04 LTS and 18.04 LTS
Note: For Ubuntu MATE (including 18.04 LTS) see other answer. It does not use
indicator-keyboard
, so it is other story.