Web site and RayCast extension that allows you to find shortcuts for your app.
RayCast extension adds additional automation features:
- Find shortcuts for the frontmost application
- Run shortcuts by selecting from the list
- Copy bundle id for the frontmost application
Shortcuts are stored as a json files in shortcuts-disco-site/shortcuts-data
.
GitHub link.
Interfaces for input model can be found by this link.
To add new application create a json file in shortcuts-disco-site/shortcuts-data
with following template:
{
"$schema": "schema/shortcut.schema.json"
}
Schema will help with json structure. It doesn't provide all the validation, but dramatically simplifies the whole process.
Each application is described by name
, slug
and optional bundleId
of the macOS application.
- App contains
keymaps
- Keymap contain
title
and list ofsections
- Section contains
title
and list ofshortcuts
- Shortcut contain
title
,comment
and shortcut declaration insidekey
property. There should be at leastkey
orcomment
field. Key contains structured shortcut declaration while comment is just a string value.
Shortcuts key
rules:
- Key consist of modifiers plus base key separated by
+
sign. - Supported modifiers:
ctrl
,shift
,opt
,cmd
. Modifiers should be specified in that exact order, lowercase {@link modifierTokens}. - Final shortcut token should always be a base key. List of all base keys: {@link public/data/key-codes.json}.
- Examples:
ctrl+s
,shift+cmd+e
. - Shortcut macro or sequences of shortcuts are also supported and should be separated by space (
- Example:
cmd+k cmd+s
(first pressCmd+K
and thenCmd+S
)
Basic example of shortcuts for Safari
{
"$schema": "schema/shortcut.schema.json",
"bundleId": "com.apple.Safari",
"name": "Safari",
"keymaps": [
{
"title": "Default",
"sections": [
{
"title": "Bookmarks",
"shortcuts": [
{
"title": "Open Bookmarks Manager",
"key": "opt+cmd+b"
}
]
},
{
"title": "Current Webpage",
"shortcuts": [
{
"title": "Search the current webpage",
"key": "cmd+f"
},
{
"title": "Print the current webpage",
"key": "cmd+p"
}
]
}
]
}
]
}