-- $Id: ion-xsteve.lua 84 2004-02-19 08:43:48Z reichr $ include "xsteve-functions.lua" global_bindings{ -- xterm, -sb = scrollbar, -sl = scrollbuffer, -vb = visual bell, -e = execute kpress("Control+F3", make_exec_fn("xterm -sl 10000 -sb -vb -e zsh")), kpress("Control+Shift+F3",function () x_load_config() end), -- Remove unwanted standard bindings kpress(DEFAULT_MOD.."Left", None), kpress(DEFAULT_MOD.."Right", None), kpress("F1", None), kpress("F2", None), kpress(DEFAULT_MOD.."F9", None), kpress(SECOND_MOD.."F12", None), } -- special configuration for the laptop if os.getenv("HOST") == "waldi" then global_bindings{ -- volume control on my laptop kpress("F21", make_exec_fn("aumix -v -5 -S")), -- turn sound softer kpress("F22", make_exec_fn("aumix -v +5 -S")), -- turn sound louder } end mplex_bindings{ -- remove some standard bindings kpress_waitrel(DEFAULT_MOD.."C", None), kpress_waitrel(DEFAULT_MOD.."L", None), kpress_waitrel(DEFAULT_MOD.."Return", None), -- new bindings on M-a submap(DEFAULT_MOD.."A", { kpress("AnyModifier+C", WMPlex.close_sub_or_self), kpress("AnyModifier+L", make_mplex_clientwin_fn(WClientWin.broken_app_resize_kludge)), kpress("AnyModifier+Return", make_mplex_clientwin_fn(WClientWin.toggle_fullscreen)), }), } -- These bindings are common to all types of frames. The rest of frame -- bindings that differ between frame types are defined in the modules' -- configuration files. genframe_bindings{ -- These two bindings were on the DEFAULT_MOD + K map kpress(DEFAULT_MOD.."N", WGenFrame.switch_next), kpress(DEFAULT_MOD.."P", WGenFrame.switch_prev), kpress(DEFAULT_MOD.."F12", make_bigmenu_fn("mainmenu")), -- Remove unwanted standard bindings kpress(SECOND_MOD.."F3", None), kpress(SECOND_MOD.."F4", None), kpress(SECOND_MOD.."F5", None), kpress(SECOND_MOD.."F6", None), kpress(DEFAULT_MOD.."M", None), kpress(DEFAULT_MOD.."T", None), kpress(DEFAULT_MOD.."A", None), kpress(DEFAULT_MOD.."G", None), -- new bindings on M-a submap(DEFAULT_MOD.."A", { kpress("AnyModifier+T", make_mplex_sub_fn(WRegion.toggle_tag)), kpress("AnyModifier+A", querylib.query_attachclient), kpress("AnyModifier+G", querylib.query_gotoclient), }), } -- Bindings for the tiled workspaces (ionws). These should work on any -- object on the workspace. ionws_bindings{ submap(DEFAULT_MOD .. "K") { -- These two bindings were on DEFAULT_MOD + N and DEFAULT_MOD + P kpress("AnyModifier+N", WIonWS.goto_below), kpress("AnyModifier+P", WIonWS.goto_above), }, -- release the bindings in ionws_bindings kpress(DEFAULT_MOD.."N", None), kpress(DEFAULT_MOD.."P", None), -- new bindings on M-a submap(DEFAULT_MOD.."A", { kpress("AnyModifier+1", collapse.collapse), }), } -- Frame bindings. These work in (Ion/tiled-style) frames. Some bindings -- that are common to all frame types and multiplexes are defined in -- ion-bindings.lua. ionframe_bindings{ -- remove some default bindings kpress(DEFAULT_MOD.."R", None), kpress(DEFAULT_MOD.."S", None), -- new bindings on M-a submap(DEFAULT_MOD.."A", { kpress("AnyModifier+R", WIonFrame.begin_resize), kpress("AnyModifier+2", function(frame) frame:split("bottom") end), kpress("AnyModifier+3", function(frame) frame:split("right") end), kpress("AnyModifier+0", WIonFrame.relocate_and_close), kpress("AnyModifier+Left", function(frame) ionws_goto_direction(frame, "left") end), kpress("AnyModifier+Right", function(frame) ionws_goto_direction(frame, "right") end), kpress("AnyModifier+Up", function(frame) ionws_goto_direction(frame, "up") end), kpress("AnyModifier+Down", function(frame) ionws_goto_direction(frame, "down") end), }), } -- xprop returns the WM_CLASS: -- WM_CLASS(STRING) = "xfig", "Fig" -- Windows for the mainframe add_winprops("main",{ {"xfig","Fig"}, {"gv","GV"}, {"vsim","Vsim"}}) -- Put some windows in the bottomframe add_winprops("bottomframe",{{"wave","Toplevel"}}) -- Put some windows in the sidebar add_winprops("side-bar",{ {"signals","Toplevel"}, {"wxVusionSimple","wxVusionSimple"}, {"wxVusionGarageGate","wxVusionGarageGate"}, {"wxVusionCounter","wxVusionCounter"}}) add_winprops("latex-dvi",{ {"xdvi","XDvi","^Xdvi:%s+diss%s"}}) -- some hints: -- rename a frame with: querylib.query_renameframe(_) -- print the name of a frame: query_message(_, _:name()) -- arch-tag: 39e996da-43d9-4104-84bc-8bbdbc2936e1