My first attempt was to make the control keys act simultaneously as Control and as a third-level chooser, then define a keyboard layout with Dvorak on levels 1 and 2, and Qwerty on levels 3 and 4. This doesn't seem possible in XKB, however. In addition, the comments in the source of the dvorak-qwerty program you've linked state that
Although it is possible to define an XKB layout which implements Dvorak-Qwerty, doing so exposes a depressing number of bugs across the board in X apps. Since it is the responsibility of each X app to interpret the keyboard layout itself, rather than having the X server do the work, different GUI frameworks actually tend to have different bugs that kick in when using such a layout. Fixing them all would be infeasible.
Your best bet is probably to get the dvorak-qwerty hack working. Most of what I'm about to write you probably know. The source says to compile it with
gcc xdq.c -o xdq -std=c99 -O2 -lX11
then run it with
./xdq
or give the absolute path so you can put it in your startup items.
When I ran the program it gave me the following warning:
Failed to grab 35 key combinations.
This is probably because some hotkeys are already grabbed by the system.
Unfortunately, these system-wide hotkeys cannot be automatically remapped by
this tool. However, you can usually configure them manually.
However, I tested it with ^W
, ^Q
, ^C
, ^X
, and ^V
, and it worked as expected. If you want it to grab other modifiers (ALt+Ctrl
and Super
) the combinations the system is already using for other things, add -DXQD_GREEDY
(not -DXDQ_GREEDY
as the source says) to the compilation command.
If it failed to compile with the error
xdq.c:87:22: fatal error: X11/Xlib.h: No such file or directory
compilation terminated.
then you should install the package libx11-dev
with
sudo apt-get install libx11-dev
If this doesn't get the program working, let me know and we can try to work it out.
You can change your Keyboard Settings from System >> Keyboard >> Shortcuts.
Under Navigation, you should see "Switch Application". You can click it and set the new short cut as you want. Hope it helps.
Best Answer
You can switch the alt and super keys using the keyboard configuration panel. I use xmodmap to switch the left keys and do a few more things. This setup appears to be more reliable over successive system updates. Here is my annotated .xmodmap: