Skip to content

Instantly share code, notes, and snippets.

@shedali
Created July 23, 2016 00:18
Show Gist options
  • Save shedali/ff90160b376f481fc5ae3b10bd68e3ba to your computer and use it in GitHub Desktop.
Save shedali/ff90160b376f481fc5ae3b10bd68e3ba to your computer and use it in GitHub Desktop.
my hammerspoon config
-- http://www.hammerspoon.org/go/
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "R", function()
hs.reload()
hs.alert.show("Config loaded")
end
)
function expand_devtools()
hs.application.launchOrFocus("Slack")
hs.application.launchOrFocus("Google Chrome")
-- hs.applescript._applescript('tell front window of app "Google Chrome" to set current tab to tab 1')end
hs.application.launchOrFocus("Terminal")
hs.application.launchOrFocus("Sublime Text")
local laptopScreen = "iMac"
local windowLayout = {
{"Slack", nil, iMac, {x=0.4, y=0.6, w=0.4, h=0.4},nil, nil},
{"Google Chrome", nil, iMac, {x=0, y=0, w=0.5, h=1},nil, nil},
{"Google Chrome", "Developer Tools.*", iMac, {x=0.2, y=0.2, w=0.5, h=0.1},nil, nil},
{"Sublime Text", nil, iMac, {x=0.5, y=0, w=0.5, h=0.6},nil, nil},
{"Terminal", nil, iMac, {x=0.8, y=0.6, w=0.2, h=0.4},nil, nil},
-- {"App Name", "Window Name", "Screen Name", hs.layout.left50,nil, nil}
-- {x=0, y=0, w=0.5, h=1}
}
hs.layout.apply(windowLayout)
end
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "d", function()
expand_devtools()
end)
hs.hotkey.bind({"ctrl"}, "t", function()
hs.application.launchOrFocus("Terminal")
end)
hs.hotkey.bind({"ctrl"}, "w", function()
hs.application.launchOrFocus("Whatsapp")
end)
hs.hotkey.bind({"ctrl"}, "o", function()
hs.application.launchOrFocus("Google Chrome")
end)
hs.hotkey.bind({"ctrl"}, "s", function()
hs.application.launchOrFocus("Sublime Text")
end)
hs.hotkey.bind({"ctrl"}, "k", function()
hs.application.launchOrFocus("Slack")
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Y", function()
local win = hs.window.focusedWindow()
local f = win:frame()
f.x = f.x - 10
f.y = f.y - 10
win:setFrame(f)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "K", function()
local win = hs.window.focusedWindow()
local f = win:frame()
f.y = f.y - 10
win:setFrame(f)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "U", function()
local win = hs.window.focusedWindow()
local f = win:frame()
f.x = f.x + 10
f.y = f.y - 10
win:setFrame(f)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "H", function()
local win = hs.window.focusedWindow()
local f = win:frame()
f.x = f.x - 10
win:setFrame(f)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "L", function()
local win = hs.window.focusedWindow()
local f = win:frame()
f.x = f.x + 10
win:setFrame(f)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "B", function()
local win = hs.window.focusedWindow()
local f = win:frame()
f.x = f.x - 10
f.y = f.y + 10
win:setFrame(f)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "J", function()
local win = hs.window.focusedWindow()
local f = win:frame()
f.y = f.y + 10
win:setFrame(f)
end)
-- hs.hotkey.bind({"cmd", "alt", "ctrl"}, "N", function()
-- local win = hs.window.focusedWindow()
-- local f = win:frame()
-- f.x = f.x + 10
-- f.y = f.y + 10
-- win:setFrame(f)
-- end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "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)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "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)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Up", 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
f.h = max.h/2
win:setFrame(f)
end)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "Down", 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.h/2
f.w = max.w
f.h = max.h/2
win:setFrame(f)
end)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment