Install CompizConfig Settings Manager, find the Ubuntu unity plugin, Switcher tab, Set Key to start switcher
to disabled
Ok, yet another try, this one will do the trick I hope... ;)
Credits are due to reverendj1, who described a way of assigning a Custom key to toggle keyboard layout, using setxkbmap, which featured in the workaround alluded to in Edit 2 of my previous answer...
Here is the slightly more involved way, but will give you more
flexibility for the key combination. First, copy and paste this script
I wrote and name it something like kb_toggle.sh. Make sure to edit
LANG1 and LANG2 to be the keyboard layout codes you need.
#!/bin/bash
LANG1="us"
LANG2="de"
CURRENT_LANG=$(setxkbmap -query | tail -n 1 | cut -f6 -d ' ')
if [ "$CURRENT_LANG" = $LANG1 ]; then
setxkbmap $LANG2
else
setxkbmap $LANG1
fi
make the file by right-clicking on it -> "Properties" -> "Permissions"
tab, then select "Allow executing file as program.
Now, open "System Settings" -> "Keyboard" -> "Shortcuts" tab and
select "Custom Shortcuts". Click the + button on the bottom and name
the shortcut "Keyboard Toggle" or whatever you want, really. Then give
the full path to the script you made earlier in the command box. Hit
Apply. Click where it says "Disabled" then you can set the shortcut to
whatever you want by clicking your key combination!
I think you'd need to change "de"
to "ir"
.
Again, good luck!
Edit
You may even get away with a one-liner, if you prefer:
setxkbmap us,ir -option "grp:alt_shift_toggle"
Now you can switch by pressing alt+shift
See also http://wiki.lxde.org/en/Change_keyboard_layouts and http://www.x.org/releases/X11R7.7/doc/man/man1/setxkbmap.1.xhtml
Edit 2
Depending on how you decide to achieve your goal, you may want to include lv3:ralt_alt
in your command, resulting in
setxkbmap us,ir -option "lv3:ralt_alt,grp:alt_shift_toggle"
See man xkeyboard-config | grep lv3
for details:
lv3:ralt_alt
Right Alt key never chooses 3rd level
xkeyboard-config provides the description files for the X Keyboard Extension (XKB). The configuration options below are
usually applied with setxkbmap(1).
Best Answer
Try
xev
andxmodmap
:xev
then hover your mouse over the black square.Press the Alt key, and make a note of the following: My output was this (shortened):
KeyPress event... keycode 64 (keysym 0xffe9, Alt_L), ... XFilterEvent returns: False
The important part is the keycode: Mine was 64, but yours is probably different.
Run the command
xmodmap -e "keycode 64 = Alt_L"
substituting64
for whatever output you get (possibly135
on your keyboard)This should have changed it. If it has, you then need to run the following command:
xmodmap -pke >~/.Xmodmap
Create a file called
.xinitrc
in your home folder (/home/username)In that file paste the line
xmodmap .Xmodmap
. This should save it forever.See this answer for details about remapping.
My pronouns are He / Him