npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

mac-space

v1.0.4

Published

Automate spaces on Mac OS X.

Downloads

29

Readme

mac-space

Automate spaces on Mac OS X.

mac-space Demonstration


Dependencies

  • Max OS X >= 10.11

  • Node >= 4.2


Installation

npm install -g mac-space;

Commands

  • Help: mac-space --help

  • Start: mac-space --config /path/to/config.json


Configuration

See ./config/example.json for a sample configuration.

JSON Schema

The application expects the following configuration in a valid JSON format.

| Key | | | Type | Default | Required | Description | |-------|---------|---------------|--------------|---------|----------|------------------------------------------------------------| | delay | | | Number | 0.25 | No | The delay between launching windows. | | space | | | Array/Object | [] | No | The configuration for the space. | | | column | | Object | {} | No | The grid columns configuration. | | | | max | Number | 0 | No | The maximum number of columns to allow. | | | | spacing | Number | 0 | No | The number of pixels to space the columns with. | | | enabled | | Boolean | true | No | Whether the space is enabled or not. | | | row | | Object | {} | No | The grid rows configuration. | | | | max | Number | 0 | No | The maximum number of rows to allow. | | | | spacing | Number | 0 | No | The number of pixels to space the rows with. | | | space | | Number | 1 | No | The Mac OS X space to assign the windows to. | | | window | | Array/Object | [] | No | The configuration for each of the windows for the space. | | | | application | String | | Yes | The name of the application recognizable by AppleScript. | | | | description | String | | No | A description for the window. | | | | osascript | Array/String | | No | Invoke OSA commands to assist with launching the window. | | | | osascriptPost | Array/String | | No | Invoke OSA commands after the window has launched. | | | | osascriptPre | Array/String | | No | Invoke OSA commands before the window has launched. | | | | shell | Array/String | | No | Invoke shell commands to assist with launching the window. | | | | shellPost | Array/String | | No | Invoke shell commands after the window has launched. | | | | shellPre | Array/String | | No | Invoke shell commands before the window has launched. | | | | title | String | | No | The title for the window. |

Notes

  • Application: The space.window.application field usually expects the name of the Application that lives in your /Application/ folder. For example if you wanted to launch Mac OS X's native text application, then the value would be TextEdit.

  • Delay: You may need to adjust the delay depending on the speed of your system.

  • Disabling Grid/Resizing/Moving: Set the maximum number of columns and rows to 0 to disable resizing and moving of windows. Doing this will simply assign the window to a specific space.


Development

  • Help: npm run help

  • Start: npm run start -- --config /path/to/config.json

  • Test: npm run test


Known Issues

  • Resizing Problems: Some OS X applications simply don't support resizing of their windows, and there's not much that can be done about this. If you have an idea or working example, please feel free to create a new issue or make a pull request.

  • Spaces Must Already Exist: The application will not automatically create spaces for you. When running the application your spaces must already exist, otherwise the application will just use the current space where it's being run from.

  • Moving Windows Across Spaces: It's possible, but currently unsupported due the amount of work required. Feel free to make a pull request.


Copyright (c) 2016 Dolox, Inc. All rights reserved.