All Projects → ghaerr → Microwindows

ghaerr / Microwindows

Licence: other
The Nano-X Window System

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Microwindows

2bwm
A fast floating WM written over the XCB library and derived from mcwm.
Stars: ✭ 609 (+164.78%)
Mutual labels:  x11, window
Wmwm
Pure Go autotiling window manager
Stars: ✭ 107 (-53.48%)
Mutual labels:  x11, window
Howm
A lightweight, X11 tiling window manager that behaves like vim
Stars: ✭ 619 (+169.13%)
Mutual labels:  x11, window
Node X11
X11 node.js network protocol client
Stars: ✭ 453 (+96.96%)
Mutual labels:  gui, x11
Alttab
The task switcher for minimalistic window managers or standalone X11 session
Stars: ✭ 196 (-14.78%)
Mutual labels:  x11, window
Berry
🍓 A healthy, byte-sized window manager
Stars: ✭ 496 (+115.65%)
Mutual labels:  x11, window
Assortedwidgets
OpenGL GUI library
Stars: ✭ 92 (-60%)
Mutual labels:  emscripten, gui
eseed-window
A minimal cross-platform C++17 window management library for rendering (deprecated)
Stars: ✭ 18 (-92.17%)
Mutual labels:  x11, window
Docker X11 Bridge
Simple Xpra X11 bridge to enable GUI with any docker image
Stars: ✭ 143 (-37.83%)
Mutual labels:  gui, x11
Custard
custard window manager
Stars: ✭ 141 (-38.7%)
Mutual labels:  x11, window
Wxwidgets
wxWidgets is a free and open source cross-platform C++ framework for writing advanced GUI applications using native controls.
Stars: ✭ 3,994 (+1636.52%)
Mutual labels:  gui, x11
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (-7.83%)
Mutual labels:  gui, x11
Stdweb
A standard library for the client-side Web
Stars: ✭ 3,201 (+1291.74%)
Mutual labels:  emscripten, gui
Penrose
A library for writing an X11 tiling window manager
Stars: ✭ 495 (+115.22%)
Mutual labels:  x11, window
mcwm
mcwm window manager
Stars: ✭ 34 (-85.22%)
Mutual labels:  x11, window
X11ui
Simple UI framework using github.com/BurntSushi/xgbutil package using Go.
Stars: ✭ 18 (-92.17%)
Mutual labels:  gui, x11
Yew
Yew is a modern Rust framework for creating multi-threaded front-end web apps with WebAssembly.
Stars: ✭ 18,243 (+7831.74%)
Mutual labels:  emscripten, gui
mmwm
Modern Minimalistic Window Manager
Stars: ✭ 45 (-80.43%)
Mutual labels:  x11, window
Hello imgui
Hello, Dear ImGui: cross-platform Gui apps for Windows / Mac / Linux / iOS / Android / Emscripten with the simplicity of a "Hello World" app
Stars: ✭ 120 (-47.83%)
Mutual labels:  emscripten, gui
Dock
A docking layout system.
Stars: ✭ 204 (-11.3%)
Mutual labels:  system, gui

Microwindows or the Nano-X Window System

Microwindows or Nano-X is a small graphical windowing system that implements both Win32 and Nano-X (X11-like) APIs for clipped graphics drawing in windows on Linux, Mac OS X, EMSCRIPTEN, Android and other platforms. It is Open Source and licenced under the the Mozilla Public License. For creating GUIs, the Nuklear immediate mode GUI, Win32 builtin controls, and TinyWidget's controls based on Nano-X are included. FLTK can be used with the X11 compability library NX11.

This is a slightly outdated overview of the system:

Architecture

Some of the supported platforms are listed at the bottom on the left side. Next to that there are available screen drivers, mouse drivers and keyboard drivers. The Nano-X / Microwindows engine is the core code that implements all drawing and clipping, with the Win32 and Nano-X graphical windowing APIs implemented in seperately configurable layers on top of that. The engine is configured to use various OS platforms and associated screen, mouse and keyboard drivers, or bare hardware. The Nano-X API and the Win32 APIs are used to write applications. To provide close X11 compatibility the NX11 library can be built on top of the Nano-X API, which allows X11 applications to be linked and run without recompilation. The FLTK GUI toolkit runs based on NX11.

Areas where Microwindows can be used are:

  • NEW: Microui immediate-mode UI library port to Nano-X
  • NEW: PDF viewer and MP4 media player support on Nano-X through FBPDF and FBFF projects
  • NEW: updated Nano-X window frame drawing code resembles Nuklear UI
  • NEW: Nuklear immmediate-mode GUI apps now supported in seperate windows
  • NEW: run multiple simultaneous Win32 apps on Linux, OS X and in a browser
  • original classic shareware Doom v1.10 ported to Nano-X
  • run X11 or Win32 applications in a browser using EMSCRIPTEN
  • provide an excellent GUI for small embedded devices with FLTK, TinyWidgets or Win32
  • port the FLTK GUI toolkit to small platforms
  • linking an application with Microwindows can provide it with a GUI on console based Linux distros
  • provide Xlib support for platforms without Xlib
  • run FLTK or Win32 applications on Android phones
  • Portrait and Landscape modes and auto-flipping are supported for handheld devies

Platforms

Microwindows is very portable, is written in C and can be used on a wide range of platforms.

Currently supported platforms include Linux, Mac OS X, Android, EMSCRIPTEN, Nuklear GUI, Windows, Raspberry Pi, DOS DJGPP, RTEMS, ECOS, Sony PSP, Atari Jaguar, Nintendo DS and more.

Currently supported screen drivers include Memory-mapped framebuffer, X11, SDL 2, Allegro 5, Windows and an X11 based framebuffer emulator.

Support for cross-compiler toolchains on x86, x86_64, ARM, M68K, PowerPC and MIPS, big- and little-endian, and other processors.

Library design

The Nano-X Window System has a layered design. At the lowest level there are drivers for screen output as well as mouse and keyboard input. Touch input devices are also supported. Drivers are available for X11, frame buffer, SDL, the Allegro graphics library, VESA or the SVGA library. Additional drivers can be added to port Microwindows to more platforms.

At the mid level, a portable graphics engine is implemented, providing support for line draws, area fills, polygons, clipping and 1, 2, 4, 8, 15, 16, 24 and 32 bit color models.

At the upper level, the Nano-X/NX11 and Win32 API's are implemented providing access to the graphics applications programmer.

The Nano-X Window System can be compiled either as a separate server for several clients or linked together to a single, standalone library.

Web site

The main Nano-X web site is at http://www.microwindows.org

Install

To build Microwindows, see microwindows/src/README plus the faq files in the doc directory. For Android there is an application note in the doc directory. The Atari Jaguar requires a specific treatment.

An HTML based FAQ and Architecture document are available from the web site.

Gallery

AGG Nuklear Emscripten FLTK Doom AJaguar

Links

The chief maintainer of the project is Greg Haerr [email protected]

Microwindows and Nano-X are discussed on the NanoGUI mailing list. Mailing list archives are available at: http://www.linuxhacker.org/ezmlm-browse/index.cgi?list=nanogui

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].