Changes
- Provide uniform access to keyboard key properties from Lua. #957
ObjectID/ClassID Role Methods Method description keysKeyboard key properties vtm.keys[string key_name] -> key_recordGet keyboard key properties.
Available properties:keycode(int): ALL (Abstract Latin Layout) specific key codegeneric(string): Generic key name (no distinction between left/right/numpad)virtcod(int): Virtual key codescancod(int): Scancodeextflag(bool): Extended flag (abstract)is_editkey(bool): Involvement in text editingis_functional(bool): Functional or not<config> <events> <terminal> <script=ExclusiveKeyboardMode on="preview: Ctrl-Alt | Alt-Ctrl"/> <script="vtm.gear.SetHandled()" on="Esc"/> <script on="-Esc"> vtm.terminal.ClearSelection() -- No more magic key codes (e.g. keycode=118) local EscCode=vtm.keys["Esc"].keycode; -- log("EscCode=", EscCode); vtm.terminal.KeyEvent({ virtcod=0x1b, scancod=1, keystat=1, cluster='\\u{1b}', keycode=EscCode, shifted='\\u{1b}', unshift='\\u{1b}' }, { virtcod=0x1b, scancod=1, keystat=0, cluster='\\u{1b}', keycode=EscCode, shifted='\\u{1b}', unshift='\\u{1b}' }) </script> </terminal> </events> </config>
- Fix 'vtm.*' objects referencing in Lua.
Test:<config> <events> <desktop> <script on="F1"> local cfg=vtm.config local term=vtm.terminal log("/config/gui/winstate=", cfg["/config/gui/winstate"]); log("term.CodePage()=", term.CodePage()); log("term.CodePage=", term.CodePage); log("term=", term); log("terminal.CodePage()=", terminal.CodePage()); log("terminal=", terminal); log("vtm.gear=", vtm.gear); log("tostring(term)=", tostring(term)) log("tostring(vtm.gear)=", tostring(vtm.gear)) </script> </desktop> </events> </config>