diff options
Diffstat (limited to 'hammerspoon/Spoons/ReloadConfiguration.spoon/init.lua')
-rw-r--r-- | hammerspoon/Spoons/ReloadConfiguration.spoon/init.lua | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/hammerspoon/Spoons/ReloadConfiguration.spoon/init.lua b/hammerspoon/Spoons/ReloadConfiguration.spoon/init.lua new file mode 100644 index 0000000..bb83f67 --- /dev/null +++ b/hammerspoon/Spoons/ReloadConfiguration.spoon/init.lua @@ -0,0 +1,49 @@ +--- === ReloadConfiguration === +--- +--- Adds a hotkey to reload the hammerspoon configuration, and a pathwatcher to automatically reload on changes. +--- +--- Download: [https://github.com/Hammerspoon/Spoons/raw/master/Spoons/ReloadConfiguration.spoon.zip](https://github.com/Hammerspoon/Spoons/raw/master/Spoons/ReloadConfiguration.spoon.zip) + +local obj = {} +obj.__index = obj + +-- Metadata +obj.name = "ReloadConfiguration" +obj.version = "1.0" +obj.author = "Jon Lorusso <jonlorusso@gmail.com>" +obj.homepage = "https://github.com/Hammerspoon/Spoons" +obj.license = "MIT - https://opensource.org/licenses/MIT" + + +--- ReloadConfiguration.watch_paths +--- Variable +--- List of directories to watch for changes, defaults to hs.configdir +obj.watch_paths = { hs.configdir } + +--- ReloadConfiguration:bindHotkeys(mapping) +--- Method +--- Binds hotkeys for ReloadConfiguration +--- +--- Parameters: +--- * mapping - A table containing hotkey modifier/key details for the following items: +--- * reloadConfiguration - This will cause the configuration to be reloaded +function obj:bindHotkeys(mapping) + local def = { reloadConfiguration = hs.fnutils.partial(hs.reload, self) } + hs.spoons.bindHotkeysToSpec(def, mapping) +end + +--- ReloadConfiguration:start() +--- Method +--- Start ReloadConfiguration +--- +--- Parameters: +--- * None +function obj:start() + self.watchers = {} + for _,dir in pairs(self.watch_paths) do + self.watchers[dir] = hs.pathwatcher.new(dir, hs.reload):start() + end + return self +end + +return obj |