{"_id":"nwm","_rev":"19-c2d5cf8eed2738306a31b6c3d5d18a5a","name":"nwm","description":"Dynamic window manager for X11","dist-tags":{"latest":"1.3.0"},"versions":{"0.0.1":{"name":"nwm","description":"Dynamic window manager for X11","version":"0.0.1","author":{"name":"Mikito Takada","email":"mixu@mixu.net","url":"http://blog.mixu.net/"},"keywords":["nwm","window manager","X11"],"repository":{"type":"git","url":"git://github.com/mixu/nwm.git"},"main":"index.js","_npmJsonOpts":{"file":"/home/mtakada/.npm/nwm/0.0.1/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"nwm@0.0.1","scripts":{"preinstall":"node-waf clean || true; node-waf configure build"},"dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.27","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"76107f92f9d45dcaad7c64d7e1fafbb5b7e587c3","tarball":"https://registry.npmjs.org/nwm/-/nwm-0.0.1.tgz","integrity":"sha512-dJLGa/2Ep0bFvSsEynzLtMkEzIDFdB9EOSCOkbt4o79zCUFi3ZbNrNJJ/6tpV1QyDW3k/8coIOLG7DPUmw1z5A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBLrPi8OT7ZN6td0RcNBr/dJuixuvRwjZ0uBWy/XICXTAiEAjDpKojO0xZ6rCQ1+10GkDD97dY4Q+V+JK/l82AcmVTg="}]},"maintainers":[{"name":"mixu","email":"mixu@mixu.net"}]},"1.0.0":{"name":"nwm","description":"Dynamic window manager for X11","version":"1.0.0","author":{"name":"Mikito Takada","email":"mixu@mixu.net","url":"http://blog.mixu.net/"},"keywords":["nwm","window manager","X11"],"repository":{"type":"git","url":"git://github.com/mixu/nwm"},"main":"index.js","devDependencies":{"mocha":"~1.2.1"},"dependencies":{"bindings":"~1.0.0"},"scripts":{"install":"node-gyp rebuild"},"gypfile":true,"_id":"nwm@1.0.0","dist":{"shasum":"8f4fc896bf97b6c1559f6217652a6be8ddd10f19","tarball":"https://registry.npmjs.org/nwm/-/nwm-1.0.0.tgz","integrity":"sha512-PfwFSwi4JffiIc8heLuUrnaA2Xm0CTKts5+eFCQk2L8Ynl8aWknGogJAtOE56OxrqveLiDIsZ4eOQ9O+XPmTTg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHhPPekPVh5qg3ntOBePvPvTTH5nG+jm66u697ACkNIVAiEA3++lT0k6n/N9nY6nhjoHRCWmtAj/uGZZoDkzuKK6Ku8="}]},"_from":".","_npmVersion":"1.2.10","_npmUser":{"name":"mixu","email":"mixu@mixu.net"},"maintainers":[{"name":"mixu","email":"mixu@mixu.net"}]},"1.0.1":{"name":"nwm","description":"Dynamic window manager for X11","version":"1.0.1","author":{"name":"Mikito Takada","email":"mixu@mixu.net","url":"http://blog.mixu.net/"},"keywords":["nwm","window manager","X11"],"repository":{"type":"git","url":"git://github.com/mixu/nwm"},"main":"index.js","devDependencies":{"mocha":"~1.2.1"},"dependencies":{"bindings":"~1.0.0"},"scripts":{"install":"node-gyp rebuild"},"gypfile":true,"_id":"nwm@1.0.1","dist":{"shasum":"f1edeb5adf29cf79f31a777b64e3b10190f3ae8e","tarball":"https://registry.npmjs.org/nwm/-/nwm-1.0.1.tgz","integrity":"sha512-z44hRzp3uHWnyfc5YZJ+b8iQ2a0vdZz3nEQ9yjqJlQPfJ2msfcrSPPbHuEv2Su+xRsWyHbClF7JNPzc3nbSJiA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyftQ3lyGQUOaq/knhx6o0BC90MAPdsp3KGsbwKiVoGAIhANJ9+FzLkYpJz3SETE8UzLZy1zNkwV4LKcd2SabLQdrS"}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"mixu","email":"mixu@mixu.net"},"maintainers":[{"name":"mixu","email":"mixu@mixu.net"}]},"1.0.2":{"name":"nwm","description":"Dynamic window manager for X11","version":"1.0.2","author":{"name":"Mikito Takada","email":"mixu@mixu.net","url":"http://blog.mixu.net/"},"license":"MIT","bin":{"nwm":"./bin/nwm"},"keywords":["nwm","window manager","X11"],"repository":{"type":"git","url":"git://github.com/mixu/nwm"},"main":"index.js","devDependencies":{"mocha":"~1.2.1"},"dependencies":{"bindings":"~1.0.0"},"scripts":{"install":"node-gyp rebuild"},"gypfile":true,"gitHead":"fe0bcd7a5c987b37b5727eaeaadf7fa8556ac91a","bugs":{"url":"https://github.com/mixu/nwm/issues"},"homepage":"https://github.com/mixu/nwm","_id":"nwm@1.0.2","_shasum":"ec61123ff6a859495c1ef911c8cdd99bd2fc015b","_from":".","_npmVersion":"2.1.5","_nodeVersion":"0.10.32","_npmUser":{"name":"mixu","email":"mixu@mixu.net"},"maintainers":[{"name":"mixu","email":"mixu@mixu.net"}],"dist":{"shasum":"ec61123ff6a859495c1ef911c8cdd99bd2fc015b","tarball":"https://registry.npmjs.org/nwm/-/nwm-1.0.2.tgz","integrity":"sha512-ON/KYsNXAFMwLqoh3pqMHv1SICAOdrVSt98X7zkWdOx8hWFZHqoAg09VCOQXm4X9xifmaKO8I8V8ExVdxE1W1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaaw1tTMiAONWM3VVpVP5XmXSMMAeldveS+yjmu70qtgIgZ3ZIQk488wdpy49S+N1Iqk0G2grAVQwzbtLkbEayiX4="}]}},"1.1.0":{"name":"nwm","description":"Dynamic window manager for X11","version":"1.1.0","author":{"name":"Mikito Takada","email":"mixu@mixu.net","url":"http://blog.mixu.net/"},"license":"MIT","bin":{"nwm":"./bin/nwm"},"keywords":["nwm","window manager","X11"],"repository":{"type":"git","url":"git://github.com/mixu/nwm"},"main":"index.js","devDependencies":{"mocha":"~1.2.1"},"dependencies":{"bindings":"~1.0.0","which":"~1.0.8","yargs":"^1.3.3"},"scripts":{"install":"node-gyp rebuild"},"gypfile":true,"gitHead":"977ff3606082301b471531f61a00aa58bbe9ffca","bugs":{"url":"https://github.com/mixu/nwm/issues"},"homepage":"https://github.com/mixu/nwm","_id":"nwm@1.1.0","_shasum":"448e8e1c214448f42b0ee0b65b757b6dcea569db","_from":".","_npmVersion":"2.1.5","_nodeVersion":"0.10.32","_npmUser":{"name":"mixu","email":"mixu@mixu.net"},"maintainers":[{"name":"mixu","email":"mixu@mixu.net"}],"dist":{"shasum":"448e8e1c214448f42b0ee0b65b757b6dcea569db","tarball":"https://registry.npmjs.org/nwm/-/nwm-1.1.0.tgz","integrity":"sha512-hIyuWXLt7ATANMjN5+F1w7kbIRZp8lhZXiOpExKBNPQJ9Yp9PoekcTTILh/Gocw1KKzHpyFeg4cu/OtmnrQOKg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAkBRY7PdFKYWMBu9yBZfNF1saaPwXr2wa0frGcT9VlaAiEA6oMZWNeSHX85vvAbenEyt7ByAHzA1aUftJOzcr1ffuM="}]}},"1.1.1":{"name":"nwm","description":"Dynamic window manager for X11","version":"1.1.1","author":{"name":"Mikito Takada","email":"mixu@mixu.net","url":"http://blog.mixu.net/"},"license":"MIT","bin":{"nwm":"./bin/nwm"},"keywords":["nwm","window manager","X11"],"repository":{"type":"git","url":"git://github.com/mixu/nwm"},"main":"index.js","devDependencies":{"mocha":"~1.2.1"},"dependencies":{"bindings":"~1.0.0","which":"~1.0.8","yargs":"^1.3.3"},"scripts":{"install":"node-gyp rebuild"},"gypfile":true,"gitHead":"3a6afa4a0f31557980742507252e2565b13ca2bb","bugs":{"url":"https://github.com/mixu/nwm/issues"},"homepage":"https://github.com/mixu/nwm","_id":"nwm@1.1.1","_shasum":"116b9dedbce908d24a361c461525e038c5910ebd","_from":".","_npmVersion":"2.1.5","_nodeVersion":"0.10.32","_npmUser":{"name":"mixu","email":"mixu@mixu.net"},"maintainers":[{"name":"mixu","email":"mixu@mixu.net"}],"dist":{"shasum":"116b9dedbce908d24a361c461525e038c5910ebd","tarball":"https://registry.npmjs.org/nwm/-/nwm-1.1.1.tgz","integrity":"sha512-KvC4MdIXbPq9IzYSPjT0LuRac3EO9hyRujPHgllDKaZX/GSgI5+9LDwWwclIG0Q622Hr/zV7ghKuWVKyDW1gzw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDz+FHA+nzQLvG5WBwx7qSJoRS/yiw3srLBQf7PKSe/QQIgRoCzLAaxrFirDcqH4v8TYD+Muus9ED8mOX5XQbXziPM="}]}},"1.2.0":{"name":"nwm","description":"Dynamic window manager for X11","version":"1.2.0","author":{"name":"Mikito Takada","email":"mixu@mixu.net","url":"http://blog.mixu.net/"},"license":"MIT","bin":{"nwm":"./bin/nwm"},"keywords":["nwm","window manager","X11"],"repository":{"type":"git","url":"git://github.com/mixu/nwm"},"main":"index.js","devDependencies":{"mocha":"~1.2.1"},"dependencies":{"bindings":"~1.0.0","which":"~1.0.8","yargs":"^1.3.3"},"scripts":{"install":"node-gyp rebuild"},"gypfile":true,"gitHead":"21ffbfba1a486e88a9ab502278e15da393842c77","bugs":{"url":"https://github.com/mixu/nwm/issues"},"homepage":"https://github.com/mixu/nwm","_id":"nwm@1.2.0","_shasum":"83c6759435bbc334dbd2def39744031581116ed6","_from":".","_npmVersion":"2.1.12","_nodeVersion":"0.10.34","_npmUser":{"name":"mixu","email":"mixu@mixu.net"},"maintainers":[{"name":"mixu","email":"mixu@mixu.net"}],"dist":{"shasum":"83c6759435bbc334dbd2def39744031581116ed6","tarball":"https://registry.npmjs.org/nwm/-/nwm-1.2.0.tgz","integrity":"sha512-s12rt2p4KgZuHYFrKcTqeD1FYiarNWQut9UfS8T0z8lMEKDgHlqiT/MwkxGimKFqjJZF5XxFBe6ealLyZbp1lw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA+2lvxCeQl3b7XbLxDrTHKB426DxX9QGWaw0Sr8RUJuAiEAq1bU+GpUw2Yff0ErqgZ75NYe+RmSeaTKfUwsJF5YhFw="}]}},"1.3.0":{"name":"nwm","description":"Dynamic window manager for X11","version":"1.3.0","author":{"name":"Mikito Takada","email":"mixu@mixu.net","url":"http://blog.mixu.net/"},"license":"MIT","bin":{"nwm":"./bin/nwm"},"keywords":["nwm","window manager","X11"],"repository":{"type":"git","url":"git://github.com/mixu/nwm.git"},"main":"index.js","devDependencies":{"mocha":"~1.2.1"},"dependencies":{"bindings":"~1.2.1","nan":"~2.0.9","which":"~1.0.8","yargs":"~1.3.3"},"scripts":{"install":"node-gyp rebuild"},"gypfile":true,"gitHead":"c1d63e0452d79ada30fcc40247082bdf5e79c496","bugs":{"url":"https://github.com/mixu/nwm/issues"},"homepage":"https://github.com/mixu/nwm#readme","_id":"nwm@1.3.0","_shasum":"bf94bc6241fde3bc31a7911935d052d94d5d6a7c","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"mixu","email":"mixu@mixu.net"},"maintainers":[{"name":"mixu","email":"mixu@mixu.net"}],"dist":{"shasum":"bf94bc6241fde3bc31a7911935d052d94d5d6a7c","tarball":"https://registry.npmjs.org/nwm/-/nwm-1.3.0.tgz","integrity":"sha512-Pe5vDXat5lGwcyxM6zu4DpuEDVPL+/SF1H8JgnOTxcdmSiPaBzUAuxcg68b4Ds8FO5yPmZmkinYXbbVL1ycN3A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIJ2iL+HkOdsM1aQup6zc2/UXlnrP8AB8m4P72RDlPLwIhAMmkkxU+FU0fl0Xw1wjVSSrjqD1f+sRqU26l2TmVseUc"}]}}},"maintainers":[{"name":"mixu","email":"mixu@mixu.net"}],"time":{"modified":"2022-06-22T14:35:17.283Z","created":"2011-09-10T06:48:51.090Z","0.0.1":"2011-09-10T06:48:52.265Z","1.0.0":"2013-02-14T19:40:45.963Z","1.0.1":"2013-04-20T01:03:18.952Z","1.0.2":"2014-12-12T07:47:38.569Z","1.1.0":"2014-12-19T04:27:06.394Z","1.1.1":"2014-12-19T04:49:32.745Z","1.2.0":"2014-12-19T06:41:20.574Z","1.3.0":"2015-09-09T10:06:18.860Z"},"author":{"name":"Mikito Takada","email":"mixu@mixu.net","url":"http://blog.mixu.net/"},"repository":{"type":"git","url":"git://github.com/mixu/nwm.git"},"readme":"# nwm\n\nA dynamic window manager for X11 written with Node.js\n\nnwm is what I use for window management in ChromeOS, Arch, Debian and Ubuntu.\n\n### Why?\n\n- **New in 1.3.x**: added support for Node `4.0.x` and `0.12.x`!\n- Supported: Ubuntu, ChromeOS, Arch, Fedora, Debian\n- Dynamically tiling window manager with adjustable main window size\n- Multiple monitor support (Xinerama)\n- Workspaces/virtual desktops (0 - 9 by default)\n- Layouts: vertical tiling, horizontal tiling, grid, fullscreen\n- Each workspace can have its own layout\n- Everything is defined/laid out in Javascript; a native X11 binding written in in C++/C emits events to Node.js\n\n*New in 1.1.0*: simplified the installation process by adding a `nwm` command, and simplified customization by introducing a new `~/.nwm-user` loading mechanism.\n\n# Installation\n\nStarting with `v1.3.0`, nwm works with the following Node versions: `4.0.x`, `0.12.x`, `0.10.x`, `0.8.x`. An old commit works with `0.6.x` as well, see [appendix.md](./appendix.md). For `4.0.x`, you may need a newer GCC version, see [this section for instructions](#compiling-under-node-40x).\n\nOther prerequisites: `xterm` and `python` (for node-gyp). Also install the following dev packages:\n\n- On Ubuntu (14.04/12.04/10.04) and Debian (6 stable): `sudo apt-get install libx11-dev libxinerama-dev`\n- On ChromeOS, [set up developer mode](https://www.google.com/webhp?#q=chromeos+developer+mode) and then follow the [chromeos.md](/chromeos.md) guide for running my custom [crouton](https://github.com/dnschneid/crouton) deploy target\n- On Arch (after installing X11): `sudo pacman -S xterm libxinerama`; also, you need to [set python to be python2](http://stackoverflow.com/questions/15400985/how-to-completely-replace-python-3-with-python-2-in-arch-linux) for [gyp](http://en.wikipedia.org/wiki/GYP_%28software%29), the build tool that gets invoked by [node-gyp](https://github.com/TooTallNate/node-gyp).\n- On Fedora: (need to update this, please file a readme PR!)\n\nNext, install nwm via npm with the `-g` flag:\n\n    npm install -g nwm\n\nThis installs the `nwm` command globally, which can be then used to easily launch the window manager. If you want to install using git, see [appendix.md](./appendix.md) for more instructions.\n\nNext, add an entry for nwm using `/usr/share/xsessions` (assuming you are using Gnome / GDM) as a login manager:\n\n    nwm --init > /usr/share/xsessions/nwm.desktop\n\nSelect \"nwm\" from the Sessions menu when logging in.\n\n## Customizing nwm\n\nStarting with `v1.1.0`, when nwm is launched via the `nwm` command line tool, it will first look for a file or folder called\n`~/.nwm-user` (e.g. `~/.nwm-user.js` or `~/.nwm-user/index.js`). This file allows you to customize your nwm keyboard shortcuts and overall behavior.\n\nIf this file is not found, then the default `nwm-user-sample.js` is used to launch the window manager.\n\nNote that the new mechanism is different from the old one. The custom file should export a single function, which takes one parameter: the hash in nwm's `index.js`. This is done so that your custom configuration doesn't need to know where `nwm` is installed.\n\nTo get started, copy `nwm-user-sample.js` and customize it. It contains all the necessary boilerplate. You could also keep your custom config in a git repo, and clone it using something like `git clone https://github.com/mixu/nwm-user.git ~/.nwm-user && cd ~/.nwm-user && npm install`.\n\n# Tutorial\n\nYoutube: http://www.youtube.com/watch?v=sihgPfBj6yE (sorry for the crappy audio!)\n\n## Launching programs\n\nWhen you start nwm, you will be presented with an empty screen.\n\nTo start a terminal (xterm), press: ```Win + Shift + Enter```. nwm takes care of dynamically rearranging windows. Launch a second terminal by pressing ```Win + Shift + Enter``` again.\n\nOther programs are launched from the console. For example: ```google-chrome &``` launches Google Chrome, if you have it installed.\n\n## Switching between layouts\n\nnwm comes bundled with a number of different layouts. Press: ```Win + Space``` to toggle between different layouts.\n\n## Moving focus\n\nMove the mouse on top of the window you want to focus. You can also use ```Win + j``` / ```Win + k``` if you don't like the mouse.\n\n## Using workspaces\n\nThe way I use nwm is by dedicating workspaces to different tasks (e.g. different programming projects, managing files, terminal windows). Each monitor has 9 workspaces, numbered from 1 to 9. To change the workspace, press:\n\n```\nWin + [number key between from 1 to 9]\n```\n\nTo move the focused window to a different workspace, press:\n\n```\nWin + Shift + [number key between from 1 to 9]\n```\n\nIf you have more than one monitor attached, then you will have 9 workspaces on each monitor. You can change the layout on each workspace individually.\n\n## Resizing the window\n\nSometimes, you want to make one of the windows larger or smaller than the others, like a terminal window next to a web browser window.\n\nIn nwm, the window on the right hand side is considered to be the main window.\n\nPress: ```Win + H``` or ```Win + F10``` to shrink the main window.\n\nPress: ```Win + L``` or ```Win + F11``` to grow the main window.\n\nYou can change the main window size setting for each workspace separately.\n\n## Reordering windows\n\nTo set the focused window as the main window, use Win + Tab.\n\n## Closing windows\n\nTo close the currently focused window, press: ```Win + shift + c```\n\n## Using multiple monitors\n\nThis is basically just like using workspaces. You can move the currently focused window to a different screen by pressing: ```Win + Shift + ,``` and ```Win + Shift + .```\n\nThat's it.\n\n# Keyboard shortcuts\n\n    # Launching programs\n    Meta + Shift + Enter -- Start xterm\n\n    # Switching between layouts\n    Meta + Space -- Switch between tile, monocle, wide and grid layouts\n\n    # Focus\n    Meta + j -- Focus next window\n    Meta + k -- Focus previous window\n\n    # Main window\n    Meta + h -- Decrease master area size\n    Meta + F10\n    Meta + l -- Increase master area size\n    Meta + F11\n    Meta + Enter -- Sets currently focused window as main window\n\n    # Closing windows\n    Meta + Shift + c -- Close focused window\n\n    # Workspaces\n    Meta + [1..n] -- Switch to workspace n\n    Meta + Shift + [1..n] -- Move window to workspace n\n    Meta + BackSpace -- Switch back and forth between the last two workspaces\n\n    # Multi-monitor keys\n    Meta + Shift + , -- Send focused window to previous screen\n    Meta + Shift + . -- Send focused window to next screen\n\n## Changing keyboard shortcuts\n\nTo customize the keyboard shortcuts, change nwm-user-sample.js. Let's look at the keyboard shortcut for xterm in nwm-user-sample.js:\n\n    {\n      key: 'Return', // enter key launches xterm\n      modifier: [ 'shift' ],\n      callback: function(event) {\n        child_process.spawn('xterm', ['-lc'], { env: process.env });\n      }\n    },\n\nThere are three parts to a basic shortcut:\n\n- The key ('Return'). You can find the names of the keys in ./lib/keysyms.js.\n- The modifier key ([ 'shift' ]). You can use shift or ctrl.\n- The callback.\n\n## Writing new layouts and reassigning keyboard shortcuts\n\nFor more extensive customization, see https://github.com/mixu/nwm-user which has a package.json file and hence makes it possible to git clone + npm install your window manager.\n\n## Vertical Stack Tiling (e.g. DWM's tiling)\n\n![screenshot](https://github.com/mixu/nwm/raw/master/docs/screenshots/tile.png)\n\n## Bottom Stack Tiling (a.k.a. wide)\n\n![screenshot](https://github.com/mixu/nwm/raw/master/docs/screenshots/wide.png)\n\n## Grid (a.k.a fair)\n\n![screenshot](https://github.com/mixu/nwm/raw/master/docs/screenshots/grid.png)\n\n# Compiling under Node 4.0.x\n\nTo recompile nwm after switching Node version, make sure you install by cloning the repo, then run `rm -rf build && npm install` or reinstall via npm by uninstalling `npm uninstall -g nwm` and then reinstalling `npm install -g nwm`.\n\nIn order to compile nwm for Node `4.0.x`, you'll need a GCC version `~4.8`. Older distros - like Ubuntu 12.04 - ship with a GCC `~4.6` which will cause a wall of errors when compiling Node native modules. Here's a recipe for Ubuntu 12.04 (which also allows you to reset back using `update-alternatives --config gcc`:\n\n```sh\nsudo add-apt-repository ppa:ubuntu-toolchain-r/test\nsudo apt-get update\nsudo apt-get install gcc-4.8 g++-4.8\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8\nsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6\nsudo update-alternatives --config gcc\n```\n\n# Running under a secondary X11 server (Xephyr)\n\nIf you want to test or develop nwm, the easiest way is to use Xephyr:\n\n    # start Xephyr\n    Xephyr -screen 1024x768 -nodri -br :1 &\n    # export gedit to the X server on display 1\n    DISPLAY=:1 gedit\n    DISPLAY=:1 gnome-terminal\n    # now start nwm.js on display 1\n    DISPLAY=:1 node bin/nwm --xephyr\n\nUnder Xephyr, the base key combination is Ctrl+Meta (e.g. Ctrl+Win). When running natively, the base key is Meta (Win). This is so that I can test nwm inside itself, yet have decent shortcuts. Note the new `--xephyr` option which controls whether to use Ctrl+Meta or just Meta as the base key combination.\n\n# Tips for running under a VM\n\nSome tips for running nwm in a VM:\n\n- If you use VMware Workstation, you have to start vmware-user manually for multi-monitor support via Xinerama after starting nwm.\n- If you use VirtualBox, you have to use xrandr manually for multi-monitor support (e.g. xrandr --output VBOX0 --auto --left-of VBOX1).\n\nVirtualBox sometimes gets your virtual screen sizes wrong. If this happens, you need to rerun xrandr, otherwise Xinerama reports the starting index of your second display incorrectly. You can see this by running xrandr:\n\n    VBOX0 connected 1440x900+0+0 0mm x 0mm\n    VBOX1 connected 2560x1440+2560+0 0mm x 0mm\n                              !!!!\n\nThe display VBOX1 is marked as starting at x=2560 even though VBOX0 ends at 1440. This was because VirtualBox resized the VBOX0 screen incorrectly when you ran xrandr. This is a VirtualBox bug, not a nwm one.\n","homepage":"https://github.com/mixu/nwm#readme","keywords":["nwm","window manager","X11"],"bugs":{"url":"https://github.com/mixu/nwm/issues"},"license":"MIT","readmeFilename":"readme.md","users":{"nordstrom":true}}