How can I make Ctrl + Alt act like Alt gr in Ubuntu?
You could add global shortcuts to write special chars. I use this often for my German keyboard layout with Ubuntu (on Windows this work out of the box).
I added the following shortcuts:
Shift+Enter+7 to write the letter {
Shift+Enter+0 to write the letter }
Shift+Enter+8 to write the letter [
Shift+Enter+9 to write the letter ]
To add these shortcuts you will need xbindkeys
and xvkbd
:
sudo apt-get install xbindkeys xvkbd
Then edit the configuration file:
vim ~/.xbindkeysrc
And add the following lines (edit them as you prefer):
"xvkbd -xsendevent -text '{'"
m:0xc + c:16
Control+Alt + 7
"xvkbd -xsendevent -text '['"
m:0xc + c:17
Control+Alt + 8
"xvkbd -xsendevent -text ']'"
m:0xc + c:18
Control+Alt + 9
"xvkbd -xsendevent -text '}'"
m:0xc + c:19
Control+Alt + 0
"xvkbd -xsendevent -text '\[backslash]'"
m:0xc + c:20
Control+Alt + ssharp
"xvkbd -xsendevent -text '\[asciitilde]'"
m:0xc + c:35
Control+Alt + plus
Then reload xbindkeys:
xbindkeys -f ~/.xbindkeysrc
Thanks to whizz for sharing this (http://forum.ubuntuusers.de/topic/strg-%2B-alt-alt-gr-wie-in-windows/).
After trying and failing to get it to work with a combination of xbindkeys and xvkbd/xte (I could never get certain characters {, [, ], }, \, etc. to behave properly perhaps because I use a Scandinavian keyboard layout), I finally found a simple and practical solution: Autokey. Here are the exact instructions to get it working:
- Install Autokey through Ubuntu Software (I used the GTK-version, not KDE) or by: “sudo apt-get install autokey-gtk”.
- Configure one script per key, e.g. for { use this code:
keyboard.send_keys("<alt_gr>+7")
and set the hotkey to Ctrl+Alt+7 (first set hotkey to 7 then add Ctrl and Alt as modifiers). This at least worked for the most important code-writing keys: { [ ] } . - Add autokey to Startup Applications (search for “start” to find it) and then add a program with “autokey” as the command.
This solution will work for anything running in the current X-session (I think) but will not work if you start a new terminal session using Ctrl+Alt+(F2-F6).
Although this still doesn't answer your question, I find this to be an easier solution than the other answers.
To make R-ALT work like AltGr, you can add the following line to your ~/.xinitrc
:
setxkbmap -option lv3:ralt_switch
Other ways to shift to the 3rd level (that which is usually achieved using AltGr key) can found, and new ways can be defined in /usr/share/X11/xkb/symbols/level3
.