ghaerr/microwindows logo

ghaerr/microwindows

Free

The Nano-X Window System

FreeFree tier
Type
Open Source

About ghaerr/microwindows

Microwindows (also known as the Nano-X Window System) is a small, open-source graphical windowing system written in C. It implements both Win32 and Nano-X (X11-like) APIs for clipped graphics drawing on a wide range of platforms including Linux, Mac OS X, Android, ELKS, EMSCRIPTEN, and many more. The system includes built-in support for Nuklear immediate-mode GUI, Win32 built-in controls, and TinyWidgets. It can run FLTK applications via the NX11 X11 compatibility library, and supports multiple screen drivers (framebuffer, X11, SDL2, Allegro 5, Windows, VGA) along with mouse, keyboard, and touch input. Microwindows is licensed under the Mozilla Public License and is highly portable, supporting cross-compilation for x86, ARM, M68K, PowerPC, MIPS, and other architectures.

Key Features

Implements both Win32 and Nano-X (X11-like) APIs for clipped graphics drawing
Runs on Linux, Mac OS X, Android, ELKS, EMSCRIPTEN, Windows, Raspberry Pi, DOS, RTEMS, and more
Includes Nuklear immediate-mode GUI, Win32 built-in controls, and TinyWidgets
FLTK support via NX11 X11 compatibility library
Multiple screen drivers: framebuffer, X11, SDL2, Allegro 5, Windows, VGA
Mouse, keyboard, and touch input support
Supports cross-compiler toolchains (x86, ARM, M68K, PowerPC, MIPS)
Open source under Mozilla Public License (MPL)
Can run multiple simultaneous Win32 applications on Linux, OS X, and in a browser
Recent additions: PDF viewer, MP4 media player, Nuklear GUI, Doom port, EMSCRIPTEN browser support

Pros & Cons

Pros
  • Very portable, written in C, and supports a wide range of platforms and architectures
  • Small footprint suitable for embedded systems
  • Open source under MPL with permissive licensing
  • Supports both Win32 and X11-like APIs, easing application porting
  • Includes multiple built-in GUI toolkits (Nuklear, Win32 controls, TinyWidgets)
  • Active development with recent additions like PDF viewer and media player
  • Can run multiple Win32 apps simultaneously (unique feature)
  • Touch input and multiple screen driver support
Cons
  • Documentation may be slightly outdated (as noted on the site)
  • Limited community and ecosystem compared to larger GUI frameworks like Qt or GTK
  • Does not appear to leverage GPU acceleration (software rendering only)
  • Some new features (e.g., PDF viewer, media player) are early-stage and may lack maturity

Best For

Providing a GUI for small embedded devicesRunning Win32 or X11 applications on Linux/OS X without a full desktop environmentPorting FLTK GUI toolkit to small or resource-constrained platformsBuilding graphical applications for ELKS (Embedded Linux Kernel System)Running X11 or Win32 applications in a web browser via EMSCRIPTENAdding a GUI to console-based Linux distributionsDeveloping software for retro platforms (Sony PSP, Atari Jaguar, Nintendo DS)

FAQ

What is Microwindows?
Microwindows (also called Nano-X) is a small open-source graphical windowing system that implements Win32 and Nano-X (X11-like) APIs for clipped graphics drawing. It is written in C and designed for portability across platforms.
Which platforms does Microwindows support?
Supported platforms include Linux, Mac OS X, Android, ELKS, EMSCRIPTEN, Windows, Raspberry Pi, DOS (DJGPP), RTEMS, ECOS, Sony PSP, Atari Jaguar, Nintendo DS, and more.
What input devices are supported?
Microwindows supports mouse, keyboard, and touch input through various drivers.
Is Microwindows open source?
Yes, it is open source and licensed under the Mozilla Public License (MPL).
Can I run Windows applications on Linux using Microwindows?
Yes, Microwindows implements the Win32 API, allowing Win32 applications to be compiled and run on Linux and other platforms. It can also run multiple simultaneous Win32 apps.
Does Microwindows support EMSCRIPTEN?
Yes, it supports EMSCRIPTEN, enabling applications to run in a web browser.