Initial commit of Hammerspoon config
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
local obj = {}
|
||||
|
||||
local function getBrowserURL()
|
||||
local app = hs.application.frontmostApplication()
|
||||
local name = app:name()
|
||||
local script = ""
|
||||
if name == "Safari" then
|
||||
script = 'tell app "Safari" to return URL of front document'
|
||||
elseif name == "Google Chrome" or name == "Brave Browser" or name == "Microsoft Edge" then
|
||||
script = 'tell app "' .. name .. '" to return URL of active tab of front window'
|
||||
else
|
||||
return nil
|
||||
end
|
||||
local ok, url = hs.applescript(script)
|
||||
return ok and url or nil
|
||||
end
|
||||
|
||||
function obj.clip()
|
||||
hs.timer.usleep(200000)
|
||||
|
||||
local url = getBrowserURL()
|
||||
hs.alert.show("Clipping to AFFiNE...", 1.5)
|
||||
|
||||
hs.pasteboard.clearContents()
|
||||
hs.eventtap.keyStroke({"cmd"}, "c")
|
||||
hs.timer.usleep(800000)
|
||||
|
||||
local clippedText = hs.pasteboard.getContents()
|
||||
|
||||
if not clippedText or clippedText == "" then
|
||||
hs.alert.show("Nothing selected! ❌", 2)
|
||||
return
|
||||
end
|
||||
|
||||
hs.urlevent.openURL("affine://")
|
||||
|
||||
hs.timer.doAfter(1.2, function()
|
||||
local affine = hs.application.get("AFFiNE")
|
||||
if affine then
|
||||
affine:activate()
|
||||
hs.eventtap.keyStroke({"cmd"}, "n")
|
||||
hs.timer.usleep(1000000)
|
||||
|
||||
hs.eventtap.keyStroke({}, "return")
|
||||
hs.timer.usleep(500000)
|
||||
|
||||
if url then
|
||||
hs.pasteboard.setContents("Source: " .. url .. "\n\n")
|
||||
hs.timer.usleep(300000)
|
||||
hs.eventtap.keyStroke({"cmd"}, "v")
|
||||
hs.timer.usleep(800000)
|
||||
end
|
||||
|
||||
hs.pasteboard.setContents(clippedText)
|
||||
hs.timer.usleep(300000)
|
||||
hs.eventtap.keyStroke({"cmd"}, "v")
|
||||
|
||||
hs.alert.show("Clipped Successfully ✅", 1.5)
|
||||
else
|
||||
hs.alert.show("AFFiNE App not found! ❌", 3)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function obj.init()
|
||||
-- Replaced the binding to use your Hyper Key + C
|
||||
hs.hotkey.bind(hyper, "C", function()
|
||||
obj.clip()
|
||||
end)
|
||||
end
|
||||
|
||||
return obj
|
||||
Reference in New Issue
Block a user