How to load the module (example using an e-variable):
ThemeDir $LitestepDir$themes\MyTheme\
LoadModule "$ThemeDir$modules\multikeys\multikeys.dll"
"Reference from" offset (same as the one used by LSXCommand):
0 -> Left/Top (default), 1 -> Horizontal/Vertical Center, 2 -> Bottom/Right
mkOffsetX 1
mkOffsetY 2
mkX 0 x position relative to offset (see above), supports negative values
mkY -24 y position relative to offset (see above), supports negative values
mkW 400 width
mkH 24 height
mkStartHidden duh!
mkAlwaysOnTop ...
mkBackBmp multikeys.bmp background bitmap, has precedence over...
mkBackColor 091F35 background color
If neither mkBackBmp nor mkBackColor is set, the multikeys window will be hidden automatically
mkFontFace "Tahoma" font (used for group name, command, error display)
mkFontSize 13 font size (...)
mkFontColor 336699 font color for the group name display
mkCommandColor 114477 font color for the command display
mkErrorColor 5588BB font color for the error display
mkDefaultGroup Default
Default group, set by multikeys at startup. "Default" is used if not defined, unless jKeys/Hotkeys are present, then "jKey"/"Hotkey" will be used instead
mkGroupShow display group name in the multikeys window
mkGroupX 7 group name display x offset inside window
mkGroupY 4 group name display y offset inside window
mkCommandShow for command and error display, same as for group name display
mkCommandX 61 ...
mkCommandY 4 ...
mkMsgErrorCmd "Error: Command failed" command error message
mkMsgErrorBang "Error: !Bang failed" !bang error message
mkErrorSound "$ThemeDir$sounds\error.wav" .wav file to play on command/!bang error
Mouse click settings:
0 = "hotkeys list" popup, 1 = "select group" popup,
2 = repeat last command, 3 = switch to default group
mkMouseLeft 1
mkMouseRight 0
mkMouseMiddle 3
mkNoLoadjKeys disable loading of *jKey configuration lines
mkNoLoadHotkeys disable loading of *Hotkey configuration lines
mkLsBoxEnable enable LsBox support
This is used with !mkLsBoxHook (see below). Please note that the module is not loaded/unloaded by the box, so hotkeys will still be available even if the box is closed! Btw, remember to check your offsets - I forgot to, and it took me quite a while to figure out why multikeys did not show up inside the box... <g>
*mkey Group Modifier(s) Key command arguments
Group = The name of the group you want the hotkey to part of. If multiple words "use quotes".
There is a global group named "All" that is always active, no matter what the current group is.
Reserved groups: "jKey" and "Hotkey" (used by multikeys)
Modifier(s) = Win, Ctrl, Shift, Alt
Combinations can also be used -> Win+Ctrl, Win+Alt etc.
(Please note that the unlikely modifier Win+Ctrl+Alt+Shift is reserved for internal use...)
Key = A-Z, 0-9, F1-F12, Left (Arrow), Right (Arrow), Up (Arrow), Down (Arrow), PrtScn, Pause, Insert, Delete, Home, End, PageUp, PageDown, Tab, Backspace, Spacebar, Enter, Mul, Div, Add, Sub, Dec, Num0-Num9, Apps (Application key, the one next to Right Win Key), Escape
command = .exe or !bang command you want executed
arguments = ...
---------------- Key definition examples -------------------
*mkey All Win F12 !Shutdown
*mkey Default Win S notepad $ThemeDir$step.rc
*mkey Links Win+Ctrl Num0 !execute [http://desktopian.org/]
!mkShow show the multikeys window
!mkHide hide the multikeys window
!mkToggle toggle the multikeys window shown/hidden
!mkGroup groupname makes "groupname" the active group
!mkPopup popup the "hotkeys list" menu at mouse pointer
!mkPopupGroups popup the "select group" menu at the mouse pointer
!mkRepeat repeat the last command
!mkMove moves the multikeys window back to the position defined in step.rc
!mkMove x y moves the multikeys window to position x,y
!mkPlayWav file.wav plays "file.wav" using synchronous sound (-> lower risk of skipping)
!mkLsBoxHook used to hook the multikeys window (GUI) to an LsBox
(Syntax: *ModuleHook !mkLsBoxHook )
The following two !bangs are used to interface with the "world outside"... =)
For example, other modules (or scripts) could use multikeys to display error messages,
or put the commands they execute in multikeys' repeat buffer / command display!
!mkSetCommand command args sets the multikeys command buffer and command display text
!mkSetError text sets the multikeys error display text, clears the command buffer
----------------- !bang command examples -----------------
!mkGroup Default
!mkSetCommand !execute [!CommandMove 0 -100][!mkShow]
!mkSetError No way, José!
|