node-x11
X11 protocol client for Node.js: implements the core X11 protocol, as well as Xrender, Damage, Composite, Big-Requests, Dpms, Screensaver, XFixes, Shape, XTest, XC-Misc, GLX, and Apple-WM extensions.
Install
npm install x11
Windows users:
Example
Core requests usage:
var x11 = ; var Exposure = x11eventMaskExposure;var PointerMotion = x11eventMaskPointerMotion; x11;
Screenshots
In use
- ntk - higher level toolkit on top of X11
- node-remote - media center controller
- tiles - tiling window manager
- vnc - vnc client.
- node-ewmh - set of EWMH helpers.
- OdieWM - window manager
- Dbusmenu - unity global menu client.
- AirWM - tiling window manager
- npdf - pdf viewer
- tinywm The famous TinyWM written in node.js
- basedwm Infinite-desktop panning X window manager in LiveScript
X11 resources/documentation:
- Xplain - A series of articles to help explain the X Window System http://magcius.github.io/xplain/article/
- Official X11 docs
- protocol specification
- C Xlib to X11 request mapping table http://tronche.com/gui/x/xlib/appendix/a.html
- How to write composite manager
- Extended Window Manager Hints specification
Other implementations
- C: XLib - http://www.sbin.org/doc/Xlib/ http://www.tronche.com/gui/x/xlib/ http://www.x.org/docs/X11/xlib.pdf
- C: XCB - http://xcb.freedesktop.org/
- Python: http://sourceforge.net/projects/python-xlib/ ( github fork: https://github.com/Ademan/python-xlib-branch pypi: http://pypi.python.org/pypi/Python Xlib )
- https://github.com/alexer/python-xlib-render
- Python/twisted: https://launchpad.net/twisted-x11
- Perl: http://search.cpan.org/~smccam/X11-Protocol-0.56/Protocol.pm
- Go: https://github.com/BurntSushi/xgb
- Java: https://github.com/xderoche/J11
- Ruby: https://github.com/dj2/x-ruby-bindings
- Clojure: https://github.com/noodlewiz/xcljb
- Guile: https://github.com/mwitmer/guile-xcb
- Emacs lisp: https://github.com/ch11ng/xelb ( autogenerated from XCB XML )
Server side (protocol + functionality) implementations for js + DOM
would be really great to make completely web based playground page, connecting node-x11 api to DOM based implementation