On 9 Sep 2004, [EMAIL PROTECTED] wrote:

> I've posted mine before, let me know if you want a copy.  I use the
> keypad for navigation (Left/Right move between tabs; Up/Down move
> up/down between frames; 5 (center) moves to the next frame on the
> right).  In addition the / through the Ins keys navigate between
> workspaces.  No chording, intentionally.
> 
> Scroll Lock and Pause do the frame splitting/destroying work.

Here are my config files.  They are a bit strange because I use them
for a Sun USB keyboard and a PC keyboard on the same PC machine - but
I'm sure you'll see the general idea.

Ted

-- Load a library to create common queries.
include("querylib")
-- Load a library to create menu display callbacks.
include("menulib")

global_bindings{
    kpress(DEFAULT_MOD.."Help", make_exec_fn("xterm")), -- Sun
    kpress("Help", make_exec_fn("/home/tzz/bin/Eterm -f yellow --shade 100 --term-name 
xterm --double-buffer -L 500000 --font 
-misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1")), -- Sun
    kpress("SunPowerSwitch", make_exec_fn("dtaction LockDisplay")), -- Sun
    kpress(DEFAULT_MOD.."SunPowerSwitch", make_exec_fn("dtaction ExitSession")), -- Sun
    kpress("F13", make_exec_fn("emacs -name gnus -f gnus")), -- Sun Props
    kpress("F15", make_exec_fn("emacs")),                 -- Sun Front
    kpress("F17", make_exec_fn("mozilla")),               -- Sun Open
    kpress("KP_Delete", function(s) s:switch_nth(5) end), -- Sun
    kpress("KP_Insert", function(s) s:switch_nth(6) end), -- Sun

    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("F19", querylib.query_restart),            -- Sun
    kpress(DEFAULT_MOD.."F19", querylib.query_exit), -- Sun

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

    kpress("XF86Mail", make_exec_fn("emacs -name gnus -f gnus")),
    kpress("XF86Standby", make_exec_fn("xlock -mode matrix")),
    kpress("XF86AudioMute", make_exec_fn("/home/tzz/articles/snippets/aumix.sh")),
    kpress("XF86AudioRaiseVolume", make_exec_fn("/usr/bin/aumix -v+3")),
    kpress("XF86AudioLowerVolume", make_exec_fn("/usr/bin/aumix -v-3")),
    kpress("Shift+XF86AudioRaiseVolume", make_exec_fn("/usr/bin/aumix -v+1")),
    kpress("Shift+XF86AudioLowerVolume", make_exec_fn("/usr/bin/aumix -v-1")),
    kpress("XF86AudioPlay", make_exec_fn("xmms --play")),
    kpress("XF86AudioStop", make_exec_fn("xmms --pause")),
    kpress("XF86AudioPrev", make_exec_fn("xmms --rew")),
    kpress("XF86AudioNext", make_exec_fn("xmms --fwd")),

    kpress("SunAudioMute", make_exec_fn("xmms --play-pause")), -- Sun
    kpress("SunAudioLowerVolume", make_exec_fn("xmms --rew")), -- Sun
    kpress("SunAudioRaiseVolume", make_exec_fn("xmms --fwd")), -- Sun

    kpress("XF86PowerOff", make_exec_fn("Eterm -f yellow --shade 100 --term-name xterm 
--double-buffer -L 500000 --font 
-misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1")), 
    kpress("Mod1+XF86PowerOff", make_exec_fn("xterm")),

    kpress("XF86Start", make_exec_fn("emacs")),
    kpress("XF86Search", make_exec_fn("mozilla")),
    kpress("Print", make_bigmenu_fn("mainmenu")),

--    kpress(DEFAULT_MOD.."Shift+D", function() lookup_workspace("dock").attach_tagged,
--     -- Create a new workspace with a default name.
--     kpress(DEFAULT_MOD.."F9", 
--           function(scr)
--               scr:attach_new({ type=default_ws_type, switchto=true })
--           end),
    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),
    -- Tag viewed object
    kpress(DEFAULT_MOD.."T", make_mplex_sub_fn(WRegion.toggle_tag)),
    kpress("KP_6", WGenFrame.switch_next),
    kpress("KP_4", WGenFrame.switch_prev),

    kpress("KP_Right", WGenFrame.switch_next), -- Sun
    kpress("KP_Left", WGenFrame.switch_prev),  -- Sun

    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("F31", WIonWS.goto_left),    -- Sun
    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),
    kpress(DEFAULT_MOD.."F21", function(frame) frame:split_empty("bottom") end), -- Sun
    kpress("F21", function(frame) frame:split_empty("right") end), -- Sun
    kpress("Shift+F21", function(frame) frame:close() end), -- Sun
    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),
}

ionframe_moveres_bindings{
    kpress("AnyModifier+Escape", WIonFrame.cancel_resize),
    kpress("AnyModifier+Return", WIonFrame.end_resize),
    
    kpress("Left", function(f) f:do_resize( 1, 0, 0, 0) end),
    kpress("Right",function(f) f:do_resize( 0, 1, 0, 0) end),
    kpress("Up",   function(f) f:do_resize( 0, 0, 1, 0) end),
    kpress("Down", function(f) f:do_resize( 0, 0, 0, 1) end),
    kpress("F",    function(f) f:do_resize( 1, 0, 0, 0) end),
    kpress("B",    function(f) f:do_resize( 0, 1, 0, 0) end),
    kpress("P",    function(f) f:do_resize( 0, 0, 1, 0) end),
    kpress("N",    function(f) f:do_resize( 0, 0, 0, 1) end),

    kpress("Shift+Left", function(f) f:do_resize(-1, 0, 0, 0) end),
    kpress("Shift+Right",function(f) f:do_resize( 0,-1, 0, 0) end),
    kpress("Shift+Up",   function(f) f:do_resize( 0, 0,-1, 0) end),
    kpress("Shift+Down", function(f) f:do_resize( 0, 0, 0,-1) end),
    kpress("Shift+F",    function(f) f:do_resize(-1, 0, 0, 0) end),
    kpress("Shift+B",    function(f) f:do_resize( 0,-1, 0, 0) end),
    kpress("Shift+P",    function(f) f:do_resize( 0, 0,-1, 0) end),
    kpress("Shift+N",    function(f) f:do_resize( 0, 0, 0,-1) end),
}

Reply via email to