On Mon, 16 Feb 2004, [EMAIL PROTECTED] wrote:

> But I've got a rather simple problem - I don't find enought
> modifiers to accomplish everything I'd like! My left thumb is aching
> now, as I have put a lot of combinations onto the left
> Windows-key. [...]
> 
> What is your experience with setting keybindings, what did you find
> ergonomic and useful? (of course, except for the default bindings)

My personal settings are evolving with time, but I found a scheme in
Ion 1 that I just recently ported to Ion 2 (when I started using Ion
2).  It's not done yet, but it works pretty well for me.

Look at your keypad.  That's a lot of real estate dedicated to numbers
and punctuation that I'll bet you rarely use.  Most "hardcore"
computer users, based on my observations, don't use the keypad.

I mapped the [ / * - + Enter Del Ins ] keys on the keypad (sort of a
semi-circle around it) to workspaces 0 through 6.  Also,
Mod1+Shift+Left/Right go left/right between workspaces.

Keypad 8/2 go up/down between frames.

Keypad 4/6 go left/right between tabs.

Keypad 5 goes to the frame on the right (I don't need to go back,
usually - it's faster to just hit 5 a few times because it's so easy
to find).

The Pause key with various modifiers does splitting.

Mod1 + F keys do various Ion-specific things.

I've omitted all my exec_fn bindings that won't be interesting to
anyone.

Random questions:

I could not figure out how to put the ionws bindings in a file NOT
called ionws.lua.  I would like to have just one configuration file
for all my keybindings.  The ionws stuff is not valid until the ionws
module is loaded, though.

Also, I could not figure out how to send any window to the dock after
the window is created.  Is that possible?  I tried to look up the
workspace but kept getting Lua "you're not smart enough, bub" errors.

Hope that helps someone.  Thanks to Tuomo for writing the best WM
I've ever used.

Ted

global_bindings{
    kpress("KP_Divide", function(s) s:switch_nth(0) end),
    kpress("KP_Multiply", function(s) s:switch_nth(1) end),
    kpress("KP_Subtract", function(s) s:switch_nth(2) end),
    kpress("KP_Add", function(s) s:switch_nth(3) end),
    kpress("KP_Enter", function(s) s:switch_nth(4) end),
    kpress("KP_Decimal", function(s) s:switch_nth(5) end),
    kpress("KP_0", function(s) s:switch_nth(6) end),

    kpress(DEFAULT_MOD..KEYF11, querylib.query_restart),
    kpress(DEFAULT_MOD..KEYF12, querylib.query_exit),

    kpress(DEFAULT_MOD.."Shift+Left", WScreen.switch_prev),
    kpress(DEFAULT_MOD.."Shift+Right", WScreen.switch_next),

    kpress("Print", make_bigmenu_fn("mainmenu")),

    mpress("Button2", make_pmenu_fn("windowlist")),
    mpress("Button3", make_pmenu_fn("mainmenu")),
}

mplex_bindings{
    kpress_waitrel(DEFAULT_MOD.."Return", 
                   make_mplex_clientwin_fn(WClientWin.toggle_fullscreen)),
    kpress_waitrel(DEFAULT_MOD.."W", WMPlex.close_sub_or_self),
}

genframe_bindings{
    kpress(DEFAULT_MOD.."Shift+A", WGenFrame.attach_tagged),
    kpress(DEFAULT_MOD.."T", make_mplex_sub_fn(WRegion.toggle_tag)),
    kpress("KP_6", WGenFrame.switch_next),
    kpress("KP_4", WGenFrame.switch_prev),

    kpress(DEFAULT_MOD.."A", querylib.query_attachclient),
    kpress(DEFAULT_MOD.."G", querylib.query_gotoclient),
    kpress(DEFAULT_MOD.."F3", querylib.query_exec),
    kpress(DEFAULT_MOD.."F4", querylib.query_ssh),
    kpress(DEFAULT_MOD.."F5", querylib.query_editfile),
    kpress(DEFAULT_MOD.."F6", querylib.query_runfile),
    kpress(DEFAULT_MOD.."F7", querylib.query_lua),
    kpress(DEFAULT_MOD.."F9", querylib.query_workspace),
    kpress(DEFAULT_MOD.."M", make_menu_fn("ctxmenu")),
    mpress("Button3", make_pmenu_fn("ctxmenu"), "tab"),
}


ionws_bindings{
    kpress("KP_5", WIonWS.goto_left),
    kpress("KP_Down", WIonWS.goto_below),
    kpress("KP_Up", WIonWS.goto_above),
    kpress(DEFAULT_MOD.."Tab", WIonWS.goto_right),
}

ionframe_bindings{
    kpress(DEFAULT_MOD.."Pause", function(frame) frame:split_empty("bottom") end),
    kpress("Pause", function(frame) frame:split_empty("right") end),
    kpress("Shift+Pause", function(frame) frame:close("right") end),
    mclick("Button1", WGenFrame.p_switch_tab, "tab"),
    mdblclick("Button1", WIonFrame.toggle_shade, "tab"),
    mdrag("Button1", WGenFrame.p_tabdrag, "tab"),
    mdrag("Button1", WGenFrame.p_resize, "border"),
    
    mclick("Button2", WGenFrame.p_switch_tab, "tab"),
    mdrag("Button2", WGenFrame.p_tabdrag, "tab"),
    
    mdrag(DEFAULT_MOD.."Button3", WGenFrame.p_resize),
}

Reply via email to