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 Previous Tab"})
end)

function current_app()
  return hs.window.application()
end

function reload_config(files)
    hs.reload()
end

hs.pathwatcher.new(os.getenv("HOME") .. "/.hammerspoon/", reload_config):start()
hs.alert.show("Config loaded")

local mash = {"cmd", "alt", "ctrl"}

-- Application shortcuts

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 Previous Tab"})
end)

-- Window management

hs.hotkey.bind(mash, "h", 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(mash, "l", 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)

function current_app()
  return hs.window.application()
end

function reload_config(files)
    hs.reload()
end

hs.pathwatcher.new(os.getenv("HOME") .. "/.hammerspoon/", reload_config):start()
hs.alert.show("Config loaded")

Add mash shortcuts for throwing windows to the left and right
[hammerspoon] Add mash shortcuts for throwing windows to the left and right
