On Wed, 21 Mar 2007 12:29:41 +0000 Giles Constant <[EMAIL PROTECTED]> wrote: 

GC> I've got this lot.  I also disabled F3/F5/F6, because many apps use F3 
GC> for "find next", F5 for "reload", and F6 for "highlight location bar" (in 
web 
GC> browsers).

GC>     kpress(MOD1.."XF86AudioNext", "ioncore.exec_on(_, 'mpc seek 
+00:00:10')"),
GC>     kpress(MOD1.."XF86AudioPrev", "ioncore.exec_on(_, 'mpc seek 
-00:00:10')"),
GC>     kpress("XF86Standby", "ioncore.exec_on(_, 'xlock')"),
GC>     kpress(MOD1.."T", "WRegion.set_tagged(_sub, 'toggle')", "_sub:non-nil"),
GC>     kpress(MOD1.."A", "WFrame.attach_tagged(_)"),
GC>         ^^^  got rid of the alt-k
GC>     kpress(MOD1.."I", "WFrame.switch_next(_)"),
GC>     kpress(MOD1.."U", "WFrame.switch_prev(_)"),
GC>         ^^^ easy to switch around with the right hand.
GC>     kpress(MOD1.."P", "WIonWS.goto_dir(_, 'above')"),
GC>     kpress(MOD1.."N", "WIonWS.goto_dir(_, 'below')"),
GC>     kpress(MOD1.."F", "WIonWS.goto_dir(_, 'right')"),
GC>     kpress(MOD1.."B", "WIonWS.goto_dir(_, 'left')"),
GC>         ^^^^ emacs-style window navigation
GC>     kpress("XF86AudioLowerVolume", "ioncore.exec_on(_, 'umix vol 4-')"),
GC>     kpress("XF86AudioRaiseVolume", "ioncore.exec_on(_, 'umix vol 4+')"),
GC>     kpress("XF86AudioPlay", "ioncore.exec_on(_, 'mpc toggle')"),
GC>     kpress("XF86AudioStop", "ioncore.exec_on(_, 'mpc stop')"),
GC>     kpress("XF86AudioNext", "ioncore.exec_on(_, 'mpc next')"),
GC>     kpress("XF86AudioPrev", "ioncore.exec_on(_, 'mpc prev')"),

I've posted on this in the past.  Any modifier keys are bad, because
they strain the hand in unnatural ways.  There are several medical
problems that can come from overuse of the wrong fingers, especially
using the pinky finger (which is weakest) to hit key combinations.
I'm a heavy Emacs user, and I map as much as possible to single-key
combinations (Meta is just "Escape" for me, I usually don't use Alt).
If I have to use modifiers, I make sure I use either the thumb (the
strongest finger) or multiple fingers at once.

I had wrist and finger joint problems before adopting the "no
modifiers when possible" rule, and have been OK since.  I would
recommend it to anyone concerned about their physical health who types
more than 2 hours per day.  Of course, you should also consult an
ergonomics specialist or a doctor if you are uncomfortable or in pain,
and consider things like elbow angle, eye level with the top of the
monitor, etc.  This is just my experience, and I hope others find it
useful.

For Ion specifically, I've long used the keypad.  It's almost never
used by applications, so why not?  Here's a summary without the actual
config stanza, just the interesting bits.  Just think about how often
you use the keypad--almost never!  Try this for a few days and you'll
see how convenient keypad-based navigation is.

Ted

-- move left/right between tabs
   kpress("KP_6", "WFrame.switch_next(_)"),
   kpress("KP_4", "WFrame.switch_prev(_)"),
-- 'close' should not be a single key, of course
    kpress_wait(META.."W", "WRegion.rqclose_propagate(_, _sub)"),

-- split H/V
    kpress("Pause", "WTiling.split_at(_, _sub, 'right', true)"),
    kpress(MOD1.."Pause", "WTiling.split_at(_, _sub, 'bottom', true)"),    
-- unsplit is not a single key
    kpress("Shift+Pause", "WTiling.unsplit_at(_, _sub)"),

-- these are the keys around the numbers in the keypad, sequentially clockwise
    kpress("KP_Divide",   "WScreen.switch_nth(_, 0)"),
    kpress("KP_Multiply", "WScreen.switch_nth(_, 1)"),
    kpress("KP_Subtract", "WScreen.switch_nth(_, 2)"),
    kpress("KP_Add",      "WScreen.switch_nth(_, 3)"),
    kpress("KP_Enter",    "WScreen.switch_nth(_, 4)"),
    kpress("KP_Delete",   "WScreen.switch_nth(_, 5)"),
    kpress("KP_Insert",   "WScreen.switch_nth(_, 6)"),

-- navigate between splits: 5 and Shift+5 on the keypad to go
-- left/right (I almost never need Shift+5);
-- 8 and 2 to go up and down between splits
    kpress("KP_5", "ioncore.goto_next(_chld, 'right')", 
    kpress("KP_8", "ioncore.goto_next(_chld, 'up')", 
    kpress("Shift+KP_5", "ioncore.goto_next(_chld, 'left')", 
    kpress("KP_2", "ioncore.goto_next(_chld, 'down')", 

Reply via email to