[pivotal][hammerspoon][chunkwm]
change
commit 699f4bb41194596ab71dcf53d7566dae07f9a2ad
author Alpha Chen <alpha.chen@gmail.com>
date
parent 4a0c2392
diff --git a/.hammerspoon/Spoons/ReloadConfiguration.spoon/docs.json b/.hammerspoon/Spoons/ReloadConfiguration.spoon/docs.json
new file mode 100644
index 00000000..50c62f29
--- /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 00000000..bb83f671
--- /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
diff --git a/.hammerspoon/init.lua b/.hammerspoon/init.lua
index fe2e212d..2739054f 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 1684cd67..8e4e4c65 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 b6366bcf..87513f81 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 00000000..50e7a13a
--- /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