Releases: directvt/vtm
Releases · directvt/vtm
v0.9.83
Changes (release for testing window rendering in GUI mode, win32 only)
- This is still only a test GUI window.
- Add support for glyph run alignment, rotation and flipping (using Unicode Variation Selectors VS4-VS14). See #571 for details.
- Update to Unicode 16.0 ("Large Type Pieces" support).
- Add support for GUI full screen mode.
- Add a GUI related config section:
<config> <gui> <!-- GUI related settings. (win32 platform only for now) --> <antialiasing = off /> <!-- Antialiasing of rendered glyphs. Note: Multi-layered color glyphs such as emoji are always antialiased. --> <cellheight = 20 /> <!-- Text cell height in physical pixels. Note: The width of the text cell depends on the primary font (the first one in the font list). --> <gridsize = 0,0 /> <!-- Window initial grid size in text cells. --> <wincoor = 0,0 /> <!-- Window initial coordinates (top-left corner on the desktop in physical pixels). --> <winstate = undefined /> <!-- Window initial state: undefined | maximized | minimized --> <fontlist> <!-- Font fallback list (LF-delimited (\n), ordered). The rest of the fonts available in the system will be loaded dynamically. --> "Courier New\n" <!-- Primary font. Its metrics define the cell geometry. --> "Iosevka Term\n" "JetBrains Mono\n" "Cascadia Mono\n" "DejaVu Sans Mono\n" "Envy Code R\n" "Fira Code\n" "monofur for Powerline\n" "Lucida Console\n" "Consolas\n" "Anonymous Pro\n" "Source Code Pro\n" "NSimSun\n" "Noto Sans Devanagari\n" </fontlist> <testtext="test \e[41;94m UTF-8 \e[m string 👌︌︉︅😃👌︋︅ (See ~/.config/vtm/settings.xml: /config/gui/testtext/)"/> </gui> </config>
- https://learn.microsoft.com/en-us/cpp/overview/cpp-conformance-improvements?view=msvc-170#__va_opt__-is-enabled-as-an-extension-under-zcpreprocessor
Note: vtm automatically switches to the graphical mode if it is launched by the graphical shell (explorer.exe), or by the
start vtm.exe
command (e.g. on Windows Core).
v0.9.82
v0.9.81
Changes
- Implement one-shot toggle to copy text while mouse tracking is active. #588
New configurable menu button:
Action | Description |
---|---|
TerminalSelectionOneShot |
One-shot toggle to copy text while mouse tracking is active. Keep selection if Ctrl key is pressed.The data= attribute can have the following values none , text , ansi , rich , html , protected . |
Closes #588
Configuration example (~/.config/vtm/settings.xml
)
<config>
<term>
<item label=" HTML " data=none type=Option action=TerminalSelectionOneShot>
<label="\e[48:2:0:128:128;38:2:0:255:255m HTML \e[m" data=html/>
<notes>
" One-shot toggle to copy as HTML \n"
" while mouse tracking is active. "
</notes>
</item>
<item label=" Text " data=none type=Option action=TerminalSelectionOneShot>
<label="\e[48:2:0:128:0;38:2:0:255:0m Text \e[m" data=text/>
<notes>
" One-shot toggle to copy as Text \n"
" while mouse tracking is active. "
</notes>
</item>
<item label="One-Shot" data=none type=Option action=TerminalSelectionOneShot>
<label="\e[48:2:0:128:0;38:2:0:255:0m Text \e[m" data=text/>
<label="\e[48:2:0:128:128;38:2:0:255:255m HTML \e[m" data=html/>
<notes>
" One-shot toggle to copy as Text/HTML \n"
" while mouse tracking is active. "
</notes>
</item>
</term>
</config>
Terminal.Dev.2024-04-22.21-40-05.mp4
v0.9.80
v0.9.79
Changes:
- Revise title/footer rendering in GUI mode (fix shadows and overbright). #571
- Add a side border option
config/term/layout/border
(=0 by default). #584:
settings.xml
:<config> <term> <layout> <oversize=0 opacity=0xC0/> <!-- Scrollback horizontal (left and right) oversize. (for convenient horizontal scrolling). --> <border=1/> <!-- Viewport's left and right border. --> </layout> </term> </config>
config/term/fields
section renamed toconfig/term/layout
config/term/fields/size
option renamed to theconfig/term/layout/oversize
sectionconfig/term/fields/lucent
option renamed toconfig/term/layout/oversize/opacity
v0.9.78
Changes
- Switch to ARGB pixel format (0xaarrggbb) from ABGR. All color settings in your current configurations are affected - the red channel has been swapped with the blue channel. This had to be done for compatibility with GUI mode.
- Terminal: Fix viewport reset when changing selection mode. #584
- Introducing a graphical window that can run on various Windows platforms starting with Windows 8.1 (including Window Server 2019 Core). #571
- vtm automatically switches to the graphical mode if it is launched by the graphical shell (explorer.exe), or by the
start vtm.exe
command (e.g. on Windows Core). - Text cell rendering is not implemented. It is just a proof of concept.
- The vtm server starts in the background, despite the fact that its interface is not rendered yet.
- It is not yet clear whether we need to involve the GPU here for rendering. It's not a big deal, but at the moment it seems that software rendering is quite enough (60fps, etc). Over time it will become clear.
- Colored emojis are funny on Windows8:
- On Windows Server Core (which is desktopless), the system window manager doesn't support "overbright" pixels (it requires alpha-premultiplied pixel values), so translucent windows are a little buggy, but that's not a big deal:
- Windows PE is also supported:
- vtm automatically switches to the graphical mode if it is launched by the graphical shell (explorer.exe), or by the
v0.9.77
v0.9.76
Changes
- Add color cursor support (OSC 12/112):
Set/reset cursor color:Run terminal with red cursor:printf "\e]12;rgb:00/ff/00\e\\" # Set cursor color to green. printf "\e]112;\e\\" # Reset cursor color to default.
Set red cursor in settings.xml:printf "vtm.run(id=Term cfg='<config><term><cursor><color bgc=reddk/></cursor></term></config>')" | vtm
<config> <term> <cursor> <style="block"/> <!-- Cursor style: underline | block --> <blink=400ms/> <!-- Cursor blink period. Set to zero for a steady cursor. --> <show=true/> <color bgc=reddk fgc=default /> <!-- Cursor cell color. By default, the cursor color (bgc) is set to either black or white depending on the lightness of the underlying text background. --> </cursor> </term> </config>
- Make the terminal window opaque by default.
- Make window shadow configurable:
<config> <appearance> <defaults> <shadow> <!-- Window shadow configuration. --> <enabled = true /> <blur = 3 /> <!-- Blur radius (in cells). Default is 3. --> <bias = 0.37 /> <!-- Shadow contour bias [0.0 - 1.0]. Default is 0.37 --> <opacity = 105.5 /> <!-- Opacity level (alpha) [0.0 - 255.0]. Default is 105.5 --> <offset = 2,1 /> <!-- 2D offset relative to the window (in cells). Default is 2,1. --> </shadow> </defaults> </appearance> </config>
v0.9.75b
v0.9.75b
Changes
- Make terminal scrollback transparent by default to provide clear boundaries for the console applications output:
<config> <term> <color> <bground = transparent /> <!-- Independent background color of the scrollback canvas. Set to 0x00ffffff(default) to sync with SGR49 (default background). --> </color> </term> </config>
v0.9.75a
Changes
- Add window shadows:
- Make the terminal scrollback background color independent and configurable:
<config> <term> <color> <bground = transparent /> <!-- Independent background color of the scrollback canvas. Set to 0x00ffffff(default) to sync with SGR49 (default background). --> </color> </term> </config>
- Remove taskbar menu item's attributes:
bgc=...
,fgc=...
,slimmenu=...
(usecfg=...
attribute instead).echo "vtm.set(id=Azure label='Azure Terminal' type=dtvt cmd='vtm -r term' cfg='<config><term><color><default fgc=0xFFffff00 bgc=bluedk/></color></term></config>')" | vtm
- Add support for styled and colored underlining (SGR-4:*, SGR-58/59).
- Fix bug with CSI subparameters parsing.
repro:printf "\e[48:2::255:255:255mWhite\e[m\n" printf "\e[48:2:255:255:255mWhite\e[m\n"