Undroidwish – a single-file, batteries-included Tcl/Tk binary for many platforms
Undroidwish is an experimental, single-file Tcl/Tk binary that offers a 'batteries-included' approach to cross-platform GUI development. It achieves this by using a ZIP virtual file system and SDL/AGG/freetype-based X11 emulation to render applications on an impressive array of operating systems. This appeals to developers seeking highly portable, self-contained solutions with minimal dependencies across diverse computing environments.
The Lowdown
Undroidwish is presented as an experimental, single-file Tcl/Tk binary that aims to provide a robust, cross-platform graphical user interface solution. Leveraging components from the AndroWish source tree, it notably employs a ZIP virtual file system for packaging and an SDL/AGG/freetype-based X11 emulation for rendering on various platforms. This approach allows for self-contained applications that are highly portable.
- Extensive Platform Support: The project demonstrates compatibility and partial testing across a wide range of operating systems, including Windows (32/64 bit), Intel and ARM Linux (with Wayland support), macOS, FreeBSD, OpenBSD, OpenIndiana Hipster, Haiku, and Raspberry Pi.
- Portable and Self-Contained: Described as a "CAREFUL" (Click And Run Executable For Unplanned Leisure) binary for Windows, it promises not to modify system registries, emphasizing its standalone nature. It can also run on Android via Termux's X11 server.
- Advanced Rendering: The underlying AGG/SDL2/freetype X11 emulation provides anti-aliased rendering for lines, circles, and fonts, along with features like smooth zooming of the Tk root window using mouse controls.
- Specialized Video Drivers: It integrates specific video drivers, such as RPI for Raspberry Pi to enable framebuffer mode, and a jsmpeg video driver that allows display output to modern web browsers like Firefox, Safari, and Chrome.
- "Batteries Included": Undroidwish bundles numerous advanced Tcl/Tk extensions, including tkpath, tktreectrl, tkimg, Canvas3D (with OpenGL support), as well as Tcl-only extensions like tcllib, tksqlite, and bwidgets.
- Command-Line Execution: It supports direct execution of built-in scripts from its embedded ZIP file system, with examples provided for demos like the Tk widget tour, TkSQLite, and Canvas3D.
- Comprehensive Demos and Utilities: The project includes a vast array of built-in demos and utilities, ranging from standard widget examples and graphical SQLite frontends to specialized tools like a VNC viewer, an XML editor, and components from the Tcl Dev Kit (e.g., checker, debugger).
In essence, Undroidwish offers a compelling vision for highly portable, self-contained Tcl/Tk applications, providing a rich development and deployment environment across an impressive breadth of operating systems and hardware configurations through its innovative use of virtual file systems and X11 emulation.