How to change the decimal comma ',' to decimal period '.' in the numeric pad of the keyboard?
I have used
xmodmap but every time that I change my keyboard layout the changes (by xmodmap) are being reset.
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It only takes a minute to sign up.Sign up to join this community
I think the problem is that you are mixing
xmodmap commands with
setxkbmap commands (whether on the command-line or by using the graphical settings menus). As you have observed, the
setxkbmap commands will override the
xmodmap commands when you change your keyboard layout. The logical solution would therefore be to use
setxkbmap to change both your layout and the keypad comma to a decimal period.
When you use
setxkbmap to change your layout any specified customisations will also be applied: the full list of options is available at
/usr/share/X11/xkb/rules/evdev.lst. I don't know which language layouts you use, so I have placed just two examples at the end of the following command, which you can use to switch layouts with ALt+Shift. If you have any more key mappings or bindings you want to activate, simply add them to the command:
setxkbmap -option '' -option kpdl:dot -option grp:switch,grp:alt_shift_toggle gb,nl
The first command switch (
-option '') clears any current settings, as when new settings are given they are added to and do not replace any existing ones unless this option is used. The second (
-option kpdl:dot) makes sure that the appropriate keypad key is a dot or period; the third command switch (
-option grp:switch,grp:alt_shift_toggle) sets up your ability to switch the layouts with ALt+Shift, and the last (
gb,nl) specifies the layouts to switch to.
To check your settings, you can enter
which results in:
rules: evdev model: pc105 layout: gb,nl options: kpdl:dot,grp:switch,grp:alt_shift_toggle
Add the full
setxkbmap line further above as a startup item to make sure it is activated and available for you to use.
More information on
setxkbmap is available by entering
man setxkbmap or by viewing the Ubuntu manpages online.
In Ubuntu 14.04 LTS, there are at least two ways to do this. Assumptions:
Run (Alt+F2) "dconf-editor", navigate in the tree to schema "org.gnome.desktop.input-sources" and set the key "xkb-options" to value that you want, e.g. "['kpdl:comma']" or "['kpdl:dot']".
Values are defined in xkeyboard-config help:
This is what I found there:
Numeric keypad delete key behaviour ┌─────────────────────────────────────────────────────────────────┐ │Option Description │ ├─────────────────────────────────────────────────────────────────┤ │kpdl:dot Legacy key with dot │ │kpdl:comma Legacy key with comma │ │kpdl:dotoss Four-level key with dot │ │kpdl:dotoss_latin9 Four-level key with dot, Latin-9 only │ │kpdl:commaoss Four-level key with comma │ │kpdl:momayyezoss Four-level key with momayyez │ │kpdl:kposs Four-level key with abstract separators │ │kpdl:semi Semicolon on third level │ └─────────────────────────────────────────────────────────────────┘
You can also use command line instead of dconf-editor GUI to accomplish the same. Like this:
gsettings set org.gnome.desktop.input-sources xkb-options "['kpdl:comma']"