A lightweight wrapper for creating new panes within Atom


A lightweight wrapper for creating new panes within Atom.

atom-pane is packaged as an npm module, so you can simply install it like you would your other package dependencies.

Create a new pane, calling ready(err, pane) when complete. The returned pane is an instance of ScrollView, but you can easily append standard DOM elements like so:

var createPane = require('atom-pane')
exports.activate = function() {
  atom.workspaceView.command('atom-plugin:open', function() {
    // create a div, any div 
    var div = document.createElement('div')
    div.innerHTML = 'hello world!' = '#fff'
    createPane(function(errpane) {
      if (err) throw err
      // append the dive to your new pane 
    }, function() {

You'll need to clean up after yourself too – use the closed callback function, which will get called when the pane has been closed.

Takes the following options:

  • opts.searchAllPanes passed onto, defaults to false.

  • opts.uri may be one of the following:

    • undefined, in which case a unique value will be genrated for you.
    • A unique string, e.g. markdown-preview-pane.
    • A full URI, e.g. markdown-preview://Users/hughsk/

    Note that the latter two approaches are recommended, to prevent creating a bunch of one-off openers each time a user opens a pane.

  • opts.changeFocus passed onto, defaults to true.

  • opts.split passed onto, defaults to undefined.

MIT. See for details.