Hammerspoon, make finder in the front
authorPeng Li <seudut@gmail.com>
Fri, 15 Sep 2017 01:23:44 +0000 (09:23 +0800)
committerPeng Li <seudut@gmail.com>
Fri, 15 Sep 2017 01:23:44 +0000 (09:23 +0800)
hammerspoon/init.lua

index 5beeeda..2228bdc 100644 (file)
@@ -10,42 +10,55 @@ hs.hotkey.bind({"cmd", "alt", "ctrl"}, "R", function()
 end)
 hs.alert.show("Config loaded")
 
-
--- Sample - Drawing on the screen - http://www.hammerspoon.org/go/#simplereload
-mouseCircle = nil
-mouseCircleTimer = nil
-
-function mouseHighlight()
-    -- Delete an existing highlight if it exists
-    if mouseCircle then
-        mouseCircle:delete()
-        if mouseCircleTimer then
-            mouseCircleTimer:stop()
+-- Reacting to application events
+-- Move all Finder in front
+function applicationWatcher(appName, eventType, appObject)
+    if (eventType == hs.application.watcher.activated) then
+        if (appName == "Finder") then
+            -- Bring all Finder windows forward when one gets activated
+            appObject:selectMenuItem({"Window", "Bring All to Front"})
         end
     end
-    -- Get the current co-ordinates of the mouse pointer
-    mousepoint = hs.mouse.getAbsolutePosition()
-    -- Prepare a big red circle around the mouse pointer
-    mouseCircle = hs.drawing.circle(hs.geometry.rect(mousepoint.x-40, mousepoint.y-40, 80, 80))
-    mouseCircle:setStrokeColor({["red"]=1,["blue"]=0,["green"]=0,["alpha"]=1})
-    mouseCircle:setFill(false)
-    mouseCircle:setStrokeWidth(5)
-    mouseCircle:show()
-
-    -- Set a timer to delete the circle after 3 seconds
-    mouseCircleTimer = hs.timer.doAfter(3, function() mouseCircle:delete() end)
 end
-hs.hotkey.bind({"cmd","alt","shift"}, "D", mouseHighlight)
-
-
--- window movement
-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)
+appWatcher = hs.application.watcher.new(applicationWatcher)
+appWatcher:start()
+
+
+
+---- Sample - Drawing on the screen - http://www.hammerspoon.org/go/#simplereload
+--mouseCircle = nil
+--mouseCircleTimer = nil
+--function mouseHighlight()
+--    -- Delete an existing highlight if it exists
+--    if mouseCircle then
+--        mouseCircle:delete()
+--        if mouseCircleTimer then
+--            mouseCircleTimer:stop()
+--        end
+--    end
+--    -- Get the current co-ordinates of the mouse pointer
+--    mousepoint = hs.mouse.getAbsolutePosition()
+--    -- Prepare a big red circle around the mouse pointer
+--    mouseCircle = hs.drawing.circle(hs.geometry.rect(mousepoint.x-40, mousepoint.y-40, 80, 80))
+--    mouseCircle:setStrokeColor({["red"]=1,["blue"]=0,["green"]=0,["alpha"]=1})
+--    mouseCircle:setFill(false)
+--    mouseCircle:setStrokeWidth(5)
+--    mouseCircle:show()
+--
+--    -- Set a timer to delete the circle after 3 seconds
+--    mouseCircleTimer = hs.timer.doAfter(3, function() mouseCircle:delete() end)
+--end
+--hs.hotkey.bind({"cmd","alt","shift"}, "D", mouseHighlight)
+--
+--
+---- window movement
+--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)
 
 -- Window Movement
 -- https://andrich.blog/2016/11/20/hammerspoon-an-awesome-tool-to-automate-your-mac/