Map a number of hotkeys according to a definition table
Parameters
def - table containing name-to-function definitions for the hotkeys supported by the Spoon. Each key is a hotkey name, and its value must be a function that will be called when the hotkey is invoked.
map - table containing name-to-hotkey definitions and an optional message to be displayed via hs.alert() when the hotkey has been triggered, as supported by bindHotkeys in the Spoon API. Not all the entries in def must be bound, but if any keys in map don't have a definition, an error will be produced.
name: name of the new spoon, without the .spoon extension
basedir: (optional) directory where to create the template. Defaults to ~/.hammerspoon/Spoons
metadata: (optional) table containing metadata values to be inserted in the template. Provided values are merged with the defaults. Defaults to: { version = "0.1", author = "Your Name <your@email.org>", homepage = "https://github.com/Hammerspoon/Spoons", license = "MIT - https://opensource.org/licenses/MIT", download_url = "https://github.com/Hammerspoon/Spoons/raw/master/Spoons/"..name..".spoon.zip" }
template: (optional) absolute path of the template to use for the init.lua file of the new Spoon. Defaults to the templates/init.tpl file included with Hammerspoon.
Returns
The full directory path where the template was created, or nil if there was an error.
name - the name of the Spoon to load (without the .spoon extension).
arg - if provided, can be used to specify the configuration of the Spoon. The following keys are recognized (all are optional):
config - a table containing variables to be stored in the Spoon object to configure it. For example, config = { answer = 42 } will result in spoon.<LoadedSpoon>.answer being set to 42.
hotkeys - a table containing hotkey bindings. If provided, will be passed as-is to the Spoon's bindHotkeys() method. The special string "default" can be given to use the Spoons defaultHotkeys variable, if it exists.
fn - a function which will be called with the freshly-loaded Spoon object as its first argument.
loglevel - if the Spoon has a variable called logger, its setLogLevel() method will be called with this value.
start - if true, call the Spoon's start() method after configuring everything else.
noerror - if true, don't log an error if the Spoon is not installed, simply return nil.