An open API service indexing awesome lists of open source software.

https://github.com/koding/keyconfig


https://github.com/koding/keyconfig

Last synced: 8 months ago
JSON representation

Awesome Lists containing this project

README

          

# keyconfig

stores keyboard shortcut definitions.

# usage

```js
var keyconfig = new Keyconfig({
x: [
{
name: 'foo',
binding: [ [ 'ctrl+z' ], [ 'command+z' ] ]
}
]
});

keyconfig
.on('change', function (collection, model) { });
.find({ name: 'x '})
.find({ name: 'foo' })
.update({ binding: ['command+d'] });
```

# spec

Below is an example of a collection:

```json
{
"editor":
[
{
"name": "save",
"description": "Save",
"binding": [
[ "ctrl+s" ],
[ "command+s" ]
],
"options": {
"enabled": true
}
}
]
}
```

### fields

- `name` must be unique
- `binding` is an array of two arrays that defines win and mac shortcuts respectively
- `description` is description text
- `options` is always extended when you do `update`

# api

# keyconfig(collections={})

# Collection(name, models=[])

## .add(model)
## .update(name, value={}, silent=false)
## .toJSON()
## .getCollidingWin()
## .getCollidingMac()

`Keyconfig` and `Collection` instances also proxy underscore methods.

# Model(value={})

## .update(value={}, silent=false)
## .getWinKeys()
## .getMacKeys()
## .getWinChecksum()
## .getMacChecksum()
## .toJSON()

Updating a model triggers a `change` event that bubble up.

# license

mit