naming standard functions LHS::RHS is turned into LHS__RHS parameters of functions that are functions are denoted by #. LHS__RHS#f if the function takes a function parameter with takes a function paraeter you create a chain of #. LHS__RHS#f#g and so on LHS_RHS#f#g#h there is one alias per function parameter. LSH::RHS(f(g()), h()) will have 3 sub aliases when defining specific functions parameter values you put an = after the # chain and then the parameter name. LHS__RHS#f=#LHS2__RHS2 or LHS__RHS#f#g=#h a # before the parameter name denotes the parameter is a function. only used if there is necessary translation of the function I know this is terribly explained but I dont really know how to explain what is going on in my head. function Scout::fun(f(g())) { f(Scout::stuff) } function Scout::bla(h()) { h() } function Scout::stuff() { dostuff } function Scout::otherstuff() { dootherstuff } bind "MOUSE4" { Scout::fun(Scout::bla) } //translates to alias "Scout__fun#f" "" alias "Scout__fun#f#g" "" alais "Scout__fun" "alias Scout__fun#f#g Scout__stuff; Scout__fun#f; alias Scout__fun#f#g Scout__otherstuff; Scout__fun#f" alias "Scout__bla#h" "" alias "Scout_bla" "Scout__bla#h" alias "Scout__stuff" "dostuff" alias "Scout__otherstuff" "dootherstuff" alias "Scout__fun#f=#Scout__bla" "Scout__fun#f#g" bind "MOUSE4" "alias Scout__fun#f Scout__fun#f=#Scout__bla; Scout__fun" function Scout::fun(f(g(), h()), i(), j()) { f(i, j) f(j, i) } function Scout::bla(j(), k()) { j() k() } function Scout::stuff() { dostuff } function Scout::otherstuff() { dootherstuff } bind "MOUSE4" { Scout::fun(Scout::bla, Scout::stuff, Scout::otherstuff) } alias "Scout__fun#f" "" alias "Scout__fun#f#g" "" alias "Scout__fun#f#h" "" alias "Scout__fun#i" "" alias "Scout__fun#j" "" alias "Scout__fun" "alias Scout__fun#f#g Scout__fun#i; alias Scout__fun#f#h Scout__fun#j; Scout__fun#f; alias Scout__fun#f#g Scout__fun#j; alias Scout__fun#f#h Scout__fun#i; Scout__fun#f" alias "Scout__bla#j" "" alias "Scout__bla#k" "" alias "Scout__bla" "Scout__bla#j; Scout__bla#k" alias "Scout__stuff" "dostuff" alias "Scout__otherstuff" "dootherstuff" alias "Scout__fun#f=#Scout__bla" "Scout__fun#f#g; Scout__fun#f#h" bind "MOUSE4" "alias Scout__fun#f Scout__fun#f=#Scout__bla; alias Scout__fun#i Scout__stuff; alias Scout__fun#j Scout__otherstuff; Scout__fun"