xvfb

Easily start and stop an X Virtual Frame Buffer from your node apps.

var Xvfb = require('xvfb');
var xvfb = new Xvfb();
xvfb.startSync();
 
// code that uses the virtual frame buffer here 
 
xvfb.stopSync();
// the Xvfb is stopped 

or:

var Xvfb = require('xvfb');
var xvfb = new Xvfb();
xvfb.start(function(errxvfbProcess) {
  // code that uses the virtual frame buffer here 
  xvfb.stop(function(err) {
    // the Xvfb is stopped 
  });
});

The Xvfb constructor takes four options:

  • displayNum - the X display to use, defaults to the lowest unused display number >= 99 if reuse is false or 99 if reuse is true.
  • reuse - whether to reuse an existing Xvfb instance if it already exists on the X display referenced by displayNum.
  • timeout - number of milliseconds to wait when starting Xvfb before assuming it failed to start, defaults to 500.
  • silent - don't pipe Xvfb stderr to the process's stderr.
  • xvfb_args - Extra arguments to pass to Xvfb.
  • kesla for https://github.com/kesla/node-headless
  • leonid-shevtsov for https://github.com/leonid-shevtsov/headless
  • paulbaumgart for creating the initial version of this package.

both of which served as inspiration for this package.