Repository navigation
TSharpVision 1.0.0
First stable release of TSharpVision. It contains everything in the 1.0.0 release candidates below, and the public
API baseline of all eight packages is now shipped, with no pending Unshipped entries. Changes since 1.0.0-rc.4:
Keyboard and input
- Added a cross-platform Meta modifier:
Keys.kbMetaShift(0x0100) incontrolKeyStaterepresents Command on macOS,
the Windows key and Linux Super. It combines with Shift, Ctrl, Alt and the lock states; there is no separate Meta
key-code family, so Meta+F5 iskbF5and Ctrl+Meta+F5 iskbCtrlF5, each with the full modifier state. Existing
key codes, masks and the Alt > Ctrl > Shift key-code precedence are unchanged. - Added
KeyboardCapabilities.StandaloneMetaTransitions: a driver that advertises it reports Meta presses and
releases on their own asevModifierChanged. - SDL: left and right GUI keys (Command / Windows / Super) set
kbMetaShift, including standalone transitions, on
bothSDLDriverandSDLGpuDriver. - ANSI terminal: an xterm/CSI modifier parameter with the Meta bit (8), including SS3 function keys, and Kitty's
Super modifier setkbMetaShift; with the full Kitty protocol, standalone Super transitions are reported too.
ESC-prefixed text is still Alt, and Kitty's separate Hyper and Meta modifiers are not mapped. The Win32 console
reports no Meta state. - The opt-in input trace is enabled by
TSHARPVISION_TRACE_INPUT=1, as documented (the mixed-case name it read
before is still accepted), and always writestsharpvision-input-trace.log, in lowercase, in the working directory.
SDL
- Both SDL drivers render at the display's native pixel density (Retina / HiDPI). Glyphs are rasterised at the
configured font size times the density, and box drawing, shading, cursor and underline are drawn at drawable
resolution, so text and frames are sharp instead of being magnified from a 1× surface. The column/row grid, window
size in points and the meaning offontSizeare unchanged. - When the window's pixel density changes, for example on a display with a different scale, the drivers
re-rasterise glyphs without a restart; mouse positions are converted from window coordinates to cells at the
current density. - Mouse-wheel and trackpad scrolling follow the operating system's scrolling preference, such as macOS natural
scrolling, vertically and horizontally. Previously, the SDL drivers reversed the direction whenever SDL reported a
flipped device. Both drivers share the same wheel translation; scrolling speed is unchanged. - Environment variables are documented in
docs/environment-variables.md.TSHARPVISION_SDL_VSYNCnow accepts its
values in any case,TSHARPVISION_DRIVERignores surrounding whitespace, and the SDL headless switch is spelled
TSHARPVISION_NO_SDL(the mixed-case name is still accepted).
Driver selection
- Driver selection is the same for
TSHARPVISION_DRIVERand[driver] name:sdlselectsSDLGpuDriver, and
consoleandterminalselect the platform's native text driver (Win32ConsoleDriveron Windows,
AnsiTerminalDriveron Linux and macOS), so one configuration file works on every OS. Exact driver names select
exactly that driver. Automatic selection now prefersSDLGpuDriveroverSDLDriver;SDLDriverstays available
by name.
Samples
- TVDemo: Diagnostics > Function keys shows which of F1–F10 arrive with no modifier, Shift, Ctrl, Alt/Option and
Cmd/Meta on the active driver, with live event details, so a terminal's keyboard limits are easy to see.
NuGet
Packages are available from NuGet.org, the canonical package distribution location:
- TSharpVision
- TSharpVision.CodeEditor
- TSharpVision.Drivers.Console
- TSharpVision.Drivers.SDL
- TSharpVision.Drivers.Terminal
- TSharpVision.HexView
- TSharpVision.TableView
- TSharpVision.Terminal
dotnet add package TSharpVision --version 1.0.0Demo downloads
- Windows x64: TVDemo-1.0.0-win-x64.zip
- Linux x64: TVDemo-1.0.0-linux-x64.tar.gz
- macOS Intel: TVDemo-1.0.0-osx-x64.tar.gz
- macOS Apple Silicon: TVDemo-1.0.0-osx-arm64.tar.gz
Extract the archive and run TSharpVision.Samples.TVDemo.exe on Windows, or
./TSharpVision.Samples.TVDemo from a terminal on Linux/macOS. The distributions
are self-contained and do not require a separately installed .NET runtime.
SHA256SUMS.txt contains SHA-256 checksums for all four demo archives.
macOS binaries are unsigned/not notarized; Gatekeeper may warn. Windows binaries
are unsigned and SmartScreen may warn. The bundled configuration selects the SDL driver, which
requires a compatible display and system graphics libraries; set TSHARPVISION_DRIVER to
Win32ConsoleDriver (Windows) or AnsiTerminalDriver (Linux/macOS) to run in a console or terminal.
Built from tagged commit 7600d31.