[alfred][hammerspoon] windoe management experimentation
diff --git a/.hammerspoon/init.lua b/.hammerspoon/init.lua
index 2739054f..8516cc92 100644
--- a/.hammerspoon/init.lua
+++ b/.hammerspoon/init.lua
@@ -3,25 +3,30 @@ local smash = {"cmd", "alt", "ctrl", "shift"}
-- Window management
-function chunkc (args)
- hs.task.new("/usr/local/bin/chunkc", nil, args)
- :start()
-end
+-- TODO implement desktop and window gaps
+hs.urlevent.bind("wm", function(eventName, params)
+ local log = hs.logger.new("wm", "debug")
-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"})
+ local win = hs.window.focusedWindow() -- TODO figure out why focusedWindow doesn't work
+ -- local win = hs.window.frontmostWindow()
+ local f = win:frame()
+ local screen = win:screen()
+ local max = screen:frame()
+
+ local t = {
+ left = function(f) return hs.layout.left50 end,
+ right = function(f) return hs.layout.right50 end,
+ ne = function(f) return { 0.5, 0, 0.5, 0.5 } end,
+ nw = function(f) return { 0, 0, 0.5, 0.5 } end,
+ se = function(f) return { 0.5, 0.5, 0.5, 0.5 } end,
+ sw = function(f) return { 0, 0.5, 0.5, 0.5 } end,
+ max = function(f) return hs.layout.maximized end,
+ }
+
+ local unitRect = hs.geometry(t[params["layout"]](f))
+ local frame = unitRect:fromUnitRect(max)
+ win:setFrame(frame)
+ -- win:focus()
end)
hs.loadSpoon("ReloadConfiguration")
diff --git a/Alfred.alfredpreferences/workflows/user.workflow.009A9FEA-698A-48E3-A5E9-E3C8C422CC6A/icon.png b/Alfred.alfredpreferences/workflows/user.workflow.009A9FEA-698A-48E3-A5E9-E3C8C422CC6A/icon.png
new file mode 100644
index 00000000..2ddc88a4
Binary files /dev/null and b/Alfred.alfredpreferences/workflows/user.workflow.009A9FEA-698A-48E3-A5E9-E3C8C422CC6A/icon.png differ
diff --git a/Alfred.alfredpreferences/workflows/user.workflow.009A9FEA-698A-48E3-A5E9-E3C8C422CC6A/info.plist b/Alfred.alfredpreferences/workflows/user.workflow.009A9FEA-698A-48E3-A5E9-E3C8C422CC6A/info.plist
new file mode 100644
index 00000000..ec64606c
--- /dev/null
+++ b/Alfred.alfredpreferences/workflows/user.workflow.009A9FEA-698A-48E3-A5E9-E3C8C422CC6A/info.plist
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>bundleid</key>
+ <string>dev.kejadlen.hammerspoon</string>
+ <key>category</key>
+ <string>Tools</string>
+ <key>connections</key>
+ <dict>
+ <key>3B186D08-EE0B-478D-94CF-DA1E9EBDA477</key>
+ <array>
+ <dict>
+ <key>destinationuid</key>
+ <string>01F0EFEF-6E0E-4B8F-8A96-25E48B5BF995</string>
+ <key>modifiers</key>
+ <integer>0</integer>
+ <key>modifiersubtext</key>
+ <string></string>
+ <key>vitoclose</key>
+ <false/>
+ </dict>
+ </array>
+ <key>64E1CBFD-F669-470E-AF5D-A4C8E53A06E9</key>
+ <array>
+ <dict>
+ <key>destinationuid</key>
+ <string>01F0EFEF-6E0E-4B8F-8A96-25E48B5BF995</string>
+ <key>modifiers</key>
+ <integer>0</integer>
+ <key>modifiersubtext</key>
+ <string></string>
+ <key>vitoclose</key>
+ <false/>
+ </dict>
+ </array>
+ <key>B179BB0D-FB64-4011-A70E-83A5530A4C19</key>
+ <array>
+ <dict>
+ <key>destinationuid</key>
+ <string>01F0EFEF-6E0E-4B8F-8A96-25E48B5BF995</string>
+ <key>modifiers</key>
+ <integer>0</integer>
+ <key>modifiersubtext</key>
+ <string></string>
+ <key>vitoclose</key>
+ <false/>
+ </dict>
+ </array>
+ <key>B435EAE0-B272-46D0-986C-EB80EB34BD10</key>
+ <array>
+ <dict>
+ <key>destinationuid</key>
+ <string>01F0EFEF-6E0E-4B8F-8A96-25E48B5BF995</string>
+ <key>modifiers</key>
+ <integer>0</integer>
+ <key>modifiersubtext</key>
+ <string></string>
+ <key>vitoclose</key>
+ <false/>
+ </dict>
+ </array>
+ </dict>
+ <key>createdby</key>
+ <string>Alpha Chen</string>
+ <key>description</key>
+ <string></string>
+ <key>disabled</key>
+ <false/>
+ <key>name</key>
+ <string>hammerspoon</string>
+ <key>objects</key>
+ <array>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>argumenttype</key>
+ <integer>0</integer>
+ <key>keyword</key>
+ <string>wm</string>
+ <key>subtext</key>
+ <string></string>
+ <key>text</key>
+ <string>hammerspoon window manager</string>
+ <key>withspace</key>
+ <true/>
+ </dict>
+ <key>type</key>
+ <string>alfred.workflow.input.keyword</string>
+ <key>uid</key>
+ <string>B435EAE0-B272-46D0-986C-EB80EB34BD10</string>
+ <key>version</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>browser</key>
+ <string>org.hammerspoon.Hammerspoon</string>
+ <key>spaces</key>
+ <string></string>
+ <key>url</key>
+ <string>hammerspoon://wm?layout={query}</string>
+ <key>utf8</key>
+ <true/>
+ </dict>
+ <key>type</key>
+ <string>alfred.workflow.action.openurl</string>
+ <key>uid</key>
+ <string>01F0EFEF-6E0E-4B8F-8A96-25E48B5BF995</string>
+ <key>version</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>action</key>
+ <integer>0</integer>
+ <key>argument</key>
+ <integer>3</integer>
+ <key>argumenttext</key>
+ <string>left</string>
+ <key>focusedappvariable</key>
+ <false/>
+ <key>focusedappvariablename</key>
+ <string></string>
+ <key>hotkey</key>
+ <integer>123</integer>
+ <key>hotmod</key>
+ <integer>12320768</integer>
+ <key>hotstring</key>
+ <string>←</string>
+ <key>leftcursor</key>
+ <false/>
+ <key>modsmode</key>
+ <integer>0</integer>
+ <key>relatedAppsMode</key>
+ <integer>0</integer>
+ </dict>
+ <key>type</key>
+ <string>alfred.workflow.trigger.hotkey</string>
+ <key>uid</key>
+ <string>3B186D08-EE0B-478D-94CF-DA1E9EBDA477</string>
+ <key>version</key>
+ <integer>2</integer>
+ </dict>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>action</key>
+ <integer>0</integer>
+ <key>argument</key>
+ <integer>3</integer>
+ <key>argumenttext</key>
+ <string>right</string>
+ <key>focusedappvariable</key>
+ <false/>
+ <key>focusedappvariablename</key>
+ <string></string>
+ <key>hotkey</key>
+ <integer>124</integer>
+ <key>hotmod</key>
+ <integer>12320768</integer>
+ <key>hotstring</key>
+ <string>→</string>
+ <key>leftcursor</key>
+ <false/>
+ <key>modsmode</key>
+ <integer>0</integer>
+ <key>relatedAppsMode</key>
+ <integer>0</integer>
+ </dict>
+ <key>type</key>
+ <string>alfred.workflow.trigger.hotkey</string>
+ <key>uid</key>
+ <string>64E1CBFD-F669-470E-AF5D-A4C8E53A06E9</string>
+ <key>version</key>
+ <integer>2</integer>
+ </dict>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>action</key>
+ <integer>0</integer>
+ <key>argument</key>
+ <integer>3</integer>
+ <key>argumenttext</key>
+ <string>max</string>
+ <key>focusedappvariable</key>
+ <false/>
+ <key>focusedappvariablename</key>
+ <string></string>
+ <key>hotkey</key>
+ <integer>6</integer>
+ <key>hotmod</key>
+ <integer>1835008</integer>
+ <key>hotstring</key>
+ <string>Z</string>
+ <key>leftcursor</key>
+ <false/>
+ <key>modsmode</key>
+ <integer>0</integer>
+ <key>relatedAppsMode</key>
+ <integer>0</integer>
+ </dict>
+ <key>type</key>
+ <string>alfred.workflow.trigger.hotkey</string>
+ <key>uid</key>
+ <string>B179BB0D-FB64-4011-A70E-83A5530A4C19</string>
+ <key>version</key>
+ <integer>2</integer>
+ </dict>
+ </array>
+ <key>readme</key>
+ <string></string>
+ <key>uidata</key>
+ <dict>
+ <key>01F0EFEF-6E0E-4B8F-8A96-25E48B5BF995</key>
+ <dict>
+ <key>xpos</key>
+ <integer>365</integer>
+ <key>ypos</key>
+ <integer>35</integer>
+ </dict>
+ <key>3B186D08-EE0B-478D-94CF-DA1E9EBDA477</key>
+ <dict>
+ <key>xpos</key>
+ <integer>35</integer>
+ <key>ypos</key>
+ <integer>145</integer>
+ </dict>
+ <key>64E1CBFD-F669-470E-AF5D-A4C8E53A06E9</key>
+ <dict>
+ <key>xpos</key>
+ <integer>35</integer>
+ <key>ypos</key>
+ <integer>255</integer>
+ </dict>
+ <key>B179BB0D-FB64-4011-A70E-83A5530A4C19</key>
+ <dict>
+ <key>xpos</key>
+ <integer>35</integer>
+ <key>ypos</key>
+ <integer>365</integer>
+ </dict>
+ <key>B435EAE0-B272-46D0-986C-EB80EB34BD10</key>
+ <dict>
+ <key>xpos</key>
+ <integer>35</integer>
+ <key>ypos</key>
+ <integer>35</integer>
+ </dict>
+ </dict>
+ <key>webaddress</key>
+ <string>https://github.com/kejadlen/hammerspoon.alfredworkflow</string>
+</dict>
+</plist>