Note: This vtm release is not compatible with previous versions.
Changes
- Unify event scripting and make the window menu fully customizable. See
doc/settings.md#event-scriptingfor details.
Example of the terminal menu window'sAlwaysOnTopbutton declaration:<config> <terminal> <menu> <item label=" " tooltip=" AlwaysOnTop off "> <script=AlwaysOnTopApplet on="LeftClick"/> <!-- The default event source is the parent object, i.e. source="item" (aka vtm.item). --> <script> <!-- A binding to update the menu item label at runtime. --> <on="release: e2::form::prop::zorder" source="applet"/> local is_topmost=vtm() -- Use event arguments to get the current state. -- local is_topmost=vtm.applet.ZOrder() -- or ask the object iteslf for the current state. vtm.item.Label(is_topmost==1 and "\\x1b[38:2:0:255:0m▀ \\x1b[m" or " ") vtm.item.Tooltip(is_topmost==1 and " AlwaysOnTop on " or " AlwaysOnTop off ") vtm.item.Deface() </script> </item> </menu> </terminal> </config>
- Implement full VT2D support. Now it is possible to print a solid characters higher than on cell. See
doc/character_geometry.mdfor details.
For example, you could print a solid 9x3 character:
pwsh:"👩👩👧👧`u{D03C3}"bash:printf "👩👩👧👧\UD03C3\n"
- Fix mouse tracking in unfocused Windows Terminal (fix unexpected drag on left click).
- Change the default tooltip timeout to 400ms (TUI mode only).
- Add
AlwaysOnToptoggle to the top-left corner of the window. - Deprecate support for templates in settings.xml. It will be replaced by another templating mechanism.
- Amplify the UI element highlighting on any mouse button press.
- Fix crashing/freezing on window resize (deadlock).
- Fix Win32 job breakway issue (
os: Failed to fork process (5)). - Fix xml parsing issue (
Unexpected '{token}' after '<'). - Fix several filesystem::path encoding issues.
- Make
SetConsoleScreenBufferSizetop-anchored (Win32 Console API). - Fix multi-session mouse handling.
- Allow to use unique id="..." to access objects from Lua scripting.
- Apply decimal prefixes to terminal scrollback buffer size
K,Min terminal status in window footer. - Fix Bold+Italic Courier New 22px latin letter 'V'.
- Fix RTL vt-rendering (reverse cluster order). See info-page.
- Completely ignore transparent (alpha=0) null (ASCII 0x00) characters (do nothing, just move cursor forward).
pwsh:"`e[2J`e[H`e[44m `e[m`e[12H" "`e[1;3H`e[48:2:255:255:255:0mB`0b`0`0A`e[m`e[12H"
bash:printf "\e[2J\e[H\e[44m \e[m\e[12H" printf "\e[1;3H\e[48:2:255:255:255:0mB\0b\0\0A\e[m\e[12H"
- Allow output of transparent (bga=0: bgc=0x00'FF'FF'FF) text, while leaving SGR attributes intact.
pwsh:"`e[2J`e[H`e[44m `e[m`e[12H" "`e[H`e[48:2:255:255:255:0mAAAAAAAAA`e[m`e[12H"
bash:printf "\e[2J\e[H\e[44m \e[m\e[12H" printf "\e[H\e[48:2:255:255:255:0mAAAAAAAAA\e[m\e[12H"
- Allow nulls (ASCII 0x00) output to change SGR attributes while leaving text intact.
pwsh:"😎😎😎`e[44m`b`b`b`u{0}`u{0}`u{0}`e[m" "`e[H`e[44mww😎qqq`e[m`e[12H" "`e[1;4H`e[45m`u{0}`e[m`e[12H"
bash:printf "😎😎😎\e[44m\b\b\b\0\0\0\e[m" printf "\e[H\e[44mww😎qqq\e[m\e[12H" printf "\e[1;4H\e[45m\0\e[m\e[12H"
- Fix negative coordinates in mouse reporting on Windows.
- Clear terminal scrollback buffer except the current line.
- Fix emoji bleed through in internal windows (type=term).
- Fix trailing null in vtm binary executable name (on FreeBSD).
- Implement Insert/Replace Mode IRM (FreeBSD shell requirement).
- Fix vi text editor scrolling issues.
- Fix SGR mouse reporting
M/mwhen mouse moving.