Skip to content

Instantly share code, notes, and snippets.

@tavisrudd
Created March 2, 2013 18:10
Show Gist options
  • Save tavisrudd/5072309 to your computer and use it in GitHub Desktop.
Save tavisrudd/5072309 to your computer and use it in GitHub Desktop.
A partial list of the Kinesis Advantage / Controllermate / Emacs keybinding tweaks I've done.
Remapped on kinesis itself
--------------------------------------------------------------------------------
caps lock -> backspace (freq use)
backspace -> right gui/windows (freq use)
left alt -> return/enter (very infreq use)
right ctrl -> return/enter (freq use)
right gui/windows -> left gui
enter -> right gui (infreq use)
left ctrl == left gui/windows
because I use the kinesis mac mode (=m)
(freq use)
(is then remapped immediately to f4)
Always remapped in controllermate (applied after kinesis hardware remaps)
--------------------------------------------------------------------------------
left gui (aka left ctrl) -> f4
(see above)
right gui -> activate Thumb Mode 1 (silences all other keys)
(real keys = backspace & enter already remapped by kinesis)
delete forward -> activate Thumb Mode 2 (silences all other keys)
(by left thumb)
right-arrow -> left ctrl
left-arrow -> left alt
end -> left gui/windows
page-down -> right gui/windows
down-arrow -> right alt
up-arrow -> left ctrl
# I also do some funky changes with these to make underscore more
# handy, while keeping hyphen as top level key:
\ -> underscore
shift hyphen -> backslash \
backtick -> tilda
left backslash -> backtick
(aka insert)
Thumb Mode 1 (very freq use)
--------------------------------------------------------------------------------
I also have a usb numeric keypad positioned under my right foot that
has most of its keys remapped to activate Thumb Mode 1. So this could
also be called big-toe mode Under my left foot I have the kinesis
foot pedal mapped to right-shift. Using toe-mode allows me to use
these macros without tiring out my thumbs.
v -> backspace
=/+ -> capslock
' (apostrophe) -> return/enter
# general navigation in emacs and bash, etc
j -> left-arrow
k -> down-arrow
l -> right-arrow
i -> up-arrow
; -> page-down
p -> page-up
m -> home
, -> end
s -> ctrl left-arrow
d -> ctrl down-arrow
f -> ctrl right-arrow
e -> ctrl up-arrow
# macros for Awesome WM
0 -> gui+enter
1 -> gui+1
2 -> gui+2
3 -> gui+3
4 -> gui+4
5 -> gui+5
6 -> gui+6
7 -> gui+ctrl+return
8 -> gui+ctrl+k
9 -> gui+ctrl+j
# I also used to have these two:
# . -> gui+k
# / -> gui+j
# but I'm currently experimenting with this intead:
. -> (
/ -> )
# macro for gnu screen
u -> C-o (my screen command key rather than C-a)
# macros for Emacs
right shift -> C-l
q -> [f5] (doubles as refresh in browser)
x -> C-x C-s
w -> [f4] (faster to reach)
right ctrl -> C-x C-s
right gui -> C-x v = (vc-diff, I usually just type this out)
[ -> C-x C-f
] -> M-x (remapped by emacs to smex)
down-arrow -> C-s
up-arrow -> C-r
b -> C-x b
g -> C-g
t -> [f7]-0 (which toggles the mark)
o -> C-x o
space -> M-/
a -> C-space
(this is awesome in combination with my navigation keys above
and quick access to C-y and M-w)
backslash (right pinky)-> C-y
hyphen (right pinky) -> M-w
Thumb Mode 2 (less freq use)
--------------------------------------------------------------------------------
# macro for nested copies of gnu screen
u -> C-u (rather than C-a, or C-o)
# macros for Emacs
j -> [f2]-j (bound to windmove-left)
k -> [f2]-k (bound to windmove-down)
l -> [f2]-l (bound to windmove-right)
i -> [f2]-i (bound to windmove-up)
m -> [f2]-m (bound to flymake-goto-prev-error)
, -> [f2]-, (bound to flymake-goto-next-error)
[ -> C-u 5 C-x{ (shrink-window-horizontally)
] -> C-u 5 C-x} (enlarge-window-horizontally)
The emacs remappings are related to this:
http://bitbucket.org/tavisrudd/emacs.d/src/tip/dss-keybindings.el
(also see http://xahlee.org/emacs/keyboard_shortcuts.html)
Here's the OS X app I'm using:
http://www.orderedbytes.com/controllermate/
It's awesome, despite using a weird visual programming language for the rule definitions. 'AutoHotKey' seems to be the Windows equivalent, though I don't think it allows you to define separate rulesets per usb device.
I haven't found anything exactly like it for Linux, but these might work:
- http://usbhotkey.sourceforge.net/
- http://code.google.com/p/autokey/
(seems hard to install without a debian based system)
- http://www.autohotkey.com/forum/topic54494.html
- or AwesomeWM's own keybinding system
To get something equivalent to my controllermate setup you would need:
- the ability to remap a single key into a multiple-key output sequence
(I know the Kinesis can do this at the hardware level, but I don't trust its potentially volatile memory and hate the opaque interface for defining them)
- the ability to activate sub-maps like I'm doing with my thumb-modes.
- the ability define separate maps per usb input device. Hopefully usbhotkey can do that.
Here's some other related notes:
http://debian-user.blogspot.com/2009/01/autohotkey-for-linux.html
http://www.hotsolder.com/2008/08/autohotkey-for-linux-sort-of.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment