Initial commit of Hammerspoon config
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
-- ~/.hammerspoon/affine_quick_note.lua
|
||||
local obj = {}
|
||||
|
||||
-- CONFIGURATION
|
||||
local NODE_PATH = "/opt/homebrew/bin/node"
|
||||
local SYNC_SCRIPT = os.getenv("HOME") .. "/.hammerspoon/scripts/sync_note.js"
|
||||
|
||||
local function affineQuickNote(text)
|
||||
local syncNotify = hs.notify.new({
|
||||
title="AFFiNE Sync",
|
||||
informativeText="Syncing large note... Please wait."
|
||||
}):send()
|
||||
|
||||
local task = hs.task.new(NODE_PATH, function(exitCode, stdOut, stdErr)
|
||||
syncNotify:withdraw()
|
||||
if exitCode == 0 then
|
||||
hs.notify.new({title="AFFiNE Success", informativeText="Multi-line note appended."}):send()
|
||||
else
|
||||
hs.notify.new({title="AFFiNE Error", informativeText="Check Console."}):send()
|
||||
print("Sync Error: " .. stdErr)
|
||||
end
|
||||
end, {SYNC_SCRIPT, text})
|
||||
|
||||
task:start()
|
||||
end
|
||||
|
||||
-- Function to trigger a proper macOS multi-line text box
|
||||
local function getMultiLineInput()
|
||||
local appleScript = [[
|
||||
tell application "System Events"
|
||||
activate
|
||||
set theResponse to display dialog "Enter your detailed note:" default answer "" with title "AFFiNE Multi-Line Capture" buttons {"Cancel", "Send"} default button "Send"
|
||||
return text returned of theResponse
|
||||
end tell
|
||||
]]
|
||||
|
||||
local ok, result = hs.applescript(appleScript)
|
||||
if ok and result ~= "" then
|
||||
return result
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function obj.init()
|
||||
if hyper then
|
||||
hs.hotkey.bind(hyper, "N", function()
|
||||
local text = getMultiLineInput()
|
||||
if text then
|
||||
affineQuickNote(text)
|
||||
end
|
||||
end)
|
||||
else
|
||||
print("AFFiNE Error: 'hyper' variable not found.")
|
||||
end
|
||||
end
|
||||
|
||||
return obj
|
||||
Reference in New Issue
Block a user