diff --git a/.hammerspoon/Spoons/ReloadConfiguration.spoon/docs.json b/.hammerspoon/Spoons/ReloadConfiguration.spoon/docs.json new file mode 100644 index 0000000..50c62f2 --- /dev/null +++ b/.hammerspoon/Spoons/ReloadConfiguration.spoon/docs.json @@ -0,0 +1,90 @@ +[ + { + "Command": [], + "Constant": [], + "Constructor": [], + "Deprecated": [], + "Field": [], + "Function": [], + "Method": [ + { + "def": "ReloadConfiguration:bindHotkeys(mapping)", + "desc": "Binds hotkeys for ReloadConfiguration", + "doc": "Binds hotkeys for ReloadConfiguration\n\nParameters:\n * mapping - A table containing hotkey modifier/key details for the following items:\n * reloadConfiguration - This will cause the configuration to be reloaded", + "name": "bindHotkeys", + "parameters": [ + " * mapping - A table containing hotkey modifier/key details for the following items:", + " * reloadConfiguration - This will cause the configuration to be reloaded" + ], + "signature": "ReloadConfiguration:bindHotkeys(mapping)", + "stripped_doc": "", + "type": "Method" + }, + { + "def": "ReloadConfiguration:start()", + "desc": "Start ReloadConfiguration", + "doc": "Start ReloadConfiguration\n\nParameters:\n * None", + "name": "start", + "parameters": [ + " * None" + ], + "signature": "ReloadConfiguration:start()", + "stripped_doc": "", + "type": "Method" + } + ], + "Variable": [ + { + "def": "ReloadConfiguration.watch_paths", + "desc": "List of directories to watch for changes, defaults to hs.configdir", + "doc": "List of directories to watch for changes, defaults to hs.configdir", + "name": "watch_paths", + "signature": "ReloadConfiguration.watch_paths", + "stripped_doc": "", + "type": "Variable" + } + ], + "desc": "Adds a hotkey to reload the hammerspoon configuration, and a pathwatcher to automatically reload on changes.", + "doc": "Adds a hotkey to reload the hammerspoon configuration, and a pathwatcher to automatically reload on changes.\n\nDownload: [https://github.com/Hammerspoon/Spoons/raw/master/Spoons/ReloadConfiguration.spoon.zip](https://github.com/Hammerspoon/Spoons/raw/master/Spoons/ReloadConfiguration.spoon.zip)", + "items": [ + { + "def": "ReloadConfiguration:bindHotkeys(mapping)", + "desc": "Binds hotkeys for ReloadConfiguration", + "doc": "Binds hotkeys for ReloadConfiguration\n\nParameters:\n * mapping - A table containing hotkey modifier/key details for the following items:\n * reloadConfiguration - This will cause the configuration to be reloaded", + "name": "bindHotkeys", + "parameters": [ + " * mapping - A table containing hotkey modifier/key details for the following items:", + " * reloadConfiguration - This will cause the configuration to be reloaded" + ], + "signature": "ReloadConfiguration:bindHotkeys(mapping)", + "stripped_doc": "", + "type": "Method" + }, + { + "def": "ReloadConfiguration:start()", + "desc": "Start ReloadConfiguration", + "doc": "Start ReloadConfiguration\n\nParameters:\n * None", + "name": "start", + "parameters": [ + " * None" + ], + "signature": "ReloadConfiguration:start()", + "stripped_doc": "", + "type": "Method" + }, + { + "def": "ReloadConfiguration.watch_paths", + "desc": "List of directories to watch for changes, defaults to hs.configdir", + "doc": "List of directories to watch for changes, defaults to hs.configdir", + "name": "watch_paths", + "signature": "ReloadConfiguration.watch_paths", + "stripped_doc": "", + "type": "Variable" + } + ], + "name": "ReloadConfiguration", + "stripped_doc": "\nDownload: [https://github.com/Hammerspoon/Spoons/raw/master/Spoons/ReloadConfiguration.spoon.zip](https://github.com/Hammerspoon/Spoons/raw/master/Spoons/ReloadConfiguration.spoon.zip)", + "submodules": [], + "type": "Module" + } +] \ No newline at end of file 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 " +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 diff --git a/.hammerspoon/init.lua b/.hammerspoon/init.lua index fe2e212..2739054 100644 --- a/.hammerspoon/init.lua +++ b/.hammerspoon/init.lua @@ -1,76 +1,30 @@ local mash = {"cmd", "alt", "ctrl"} local smash = {"cmd", "alt", "ctrl", "shift"} -function current_app() - return hs.application.frontmostApplication() -end - --- Application shortcuts - --- local safari_esc = hs.hotkey.new({}, "escape", function() end, function() --- if current_app():name() == "Safari" then --- hs.eventtap.keyStroke({"alt"}, "escape") --- end --- end) - --- local safari_close_tab = hs.hotkey.new({"cmd"}, "w", function() end, function() --- if current_app():name() == "Safari" then --- current_app():selectMenuItem({"File", "Close Tab"}) --- end --- end) - --- local wf = hs.window.filter --- wf.new("Safari"):subscribe(wf.windowFocused, function() --- -- safari_esc:enable() --- safari_close_tab:enable() --- end):subscribe(wf.windowUnfocused, function() --- -- safari_esc:disable() --- safari_close_tab:disable() --- end) - --- hs.hotkey.bind({"cmd", "shift"}, "[", function() --- current_app():selectMenuItem({"Window", "Select Previous Tab"}) --- end) - --- hs.hotkey.bind({"cmd", "shift"}, "]", function() --- current_app():selectMenuItem({"Window", "Select Next Tab"}) --- end) - -- Window management -local throw_left = function() - local win = hs.window.focusedWindow() - local f = win:frame() - local screen = win:screen() - local max = screen:frame() - - f.x = max.x - f.y = max.y - f.w = max.w / 2 - f.h = max.h - win:setFrame(f) -end - -local throw_right = function() - local win = hs.window.focusedWindow() - local f = win:frame() - local screen = win:screen() - local max = screen:frame() - - f.x = max.x + (max.w / 2) - f.y = max.y - f.w = max.w / 2 - f.h = max.h - win:setFrame(f) +function chunkc (args) + hs.task.new("/usr/local/bin/chunkc", nil, args) + :start() end -hs.hotkey.bind(mash, "h", throw_left) -hs.hotkey.bind(mash, "left", throw_left) -hs.hotkey.bind(mash, "l", throw_right) -hs.hotkey.bind(mash, "right", throw_right) - -hs.pathwatcher.new(os.getenv("HOME") .. "/.hammerspoon/", function() - hs.reload() -end):start() +hs.hotkey.bind(mash, "left", function() + chunkc({"tiling::window", "--warp", "west"}) +end) +hs.hotkey.bind(mash, "right", function() + chunkc({"tiling::window", "--warp", "east"}) +end) +hs.hotkey.bind(mash, "up", function() + chunkc({"tiling::window", "--warp", "north"}) +end) +hs.hotkey.bind(mash, "down", function() + chunkc({"tiling::window", "--warp", "south"}) +end) +hs.hotkey.bind(mash, "z", function() + chunkc({"tiling::window", "--toggle", "fullscreen"}) +end) + +hs.loadSpoon("ReloadConfiguration") +spoon.ReloadConfiguration:start() hs.alert.show("Config loaded") diff --git a/.vim/after/ftplugin/ruby.vim b/.vim/after/ftplugin/ruby.vim index 1684cd6..8e4e4c6 100644 --- a/.vim/after/ftplugin/ruby.vim +++ b/.vim/after/ftplugin/ruby.vim @@ -1,5 +1,4 @@ " https://github.com/vim-ruby/vim-ruby/issues/243 set regexpengine=1 -highlight rubyDefine ctermbg=235 set foldmethod=syntax diff --git a/ansible/playbooks/homebrew.yml b/ansible/playbooks/homebrew.yml index b6366bc..87513f8 100644 --- a/ansible/playbooks/homebrew.yml +++ b/ansible/playbooks/homebrew.yml @@ -72,7 +72,7 @@ - fantastical - firefox-developer-edition - google-chrome - - hammerspoon + # - hammerspoon - night-owl - qlmarkdown - qlstephen diff --git a/ansible/playbooks/pivotal.yml b/ansible/playbooks/pivotal.yml new file mode 100644 index 0000000..50e7a13 --- /dev/null +++ b/ansible/playbooks/pivotal.yml @@ -0,0 +1,10 @@ +# Extra configuration for work + +- hosts: all + tasks: + - name: update + homebrew: update_homebrew=yes + + - name: install hammerspoon + homebrew_cask: + name: hammerspoon