Need help with node-x11?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
sidorares

Description

X11 node.js network protocol client

433 Stars 78 Forks MIT License 659 Commits 38 Opened issues

Services available

Need anything else?

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.

Gitter Build Status

Install

npm install x11

Windows users:

  1. install XMing or Cygwin/X
  2. get node-x11 copy (using git or from Github)

Example

Core requests usage:

var x11 = require('x11');

var Exposure = x11.eventMask.Exposure; var PointerMotion = x11.eventMask.PointerMotion;

x11.createClient(function(err, display) { if (!err) { var X = display.client; var root = display.screen[0].root; var wid = X.AllocID(); X.CreateWindow( wid, root, // new window id, parent 0, 0, 500, 500, // x, y, w, h 0, 0, 0, 0, // border, depth, class, visual { eventMask: Exposure | PointerMotion } // other parameters ); X.MapWindow(wid); var gc = X.AllocID(); X.CreateGC(gc, wid); var white = display.screen[0].white_pixel; var black = display.screen[0].black_pixel; cidBlack = X.AllocID(); cidWhite = X.AllocID(); X.CreateGC(cidBlack, wid, { foreground: black, background: white }); X.CreateGC(cidWhite, wid, { foreground: white, background: black }); X.on('event', function(ev) { if (ev.type == 12) { X.PolyFillRectangle(wid, cidWhite, [0, 0, 500, 500]); X.PolyText8(wid, cidBlack, 50, 50, ['Hello, Node.JS!']); } }); X.on('error', function(e) { console.log(e); }); } else { console.log(err); } });

Screenshots

tetris game XRENDER gradients OpenGL glxgears OpenGL teapot

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:

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%20Xlib )
  • 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

  • https://github.com/GothAck/javascript-x-server
  • https://github.com/ttaubert/x-server-js

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.