Skip to content

Instantly share code, notes, and snippets.

@xbot
Last active October 16, 2023 12:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save xbot/a2f1d38e8eb02665ef7cf9ba082ccd12 to your computer and use it in GitHub Desktop.
Save xbot/a2f1d38e8eb02665ef7cf9ba082ccd12 to your computer and use it in GitHub Desktop.
Open Neovide directly or use Neovide from the 'Open with' menu to open files.
on replace_chars(this_text, search_string, replacement_string)
set AppleScript's text item delimiters to the search_string
set the item_list to every text item of this_text
set AppleScript's text item delimiters to the replacement_string
set this_text to the item_list as string
set AppleScript's text item delimiters to ""
return this_text
end replace_chars
on activate_open_instance(win_title, is_first_time)
tell application "System Events"
set neovideProcList to a reference to (every process whose name is "neovide")
repeat with proc in neovideProcList
set PID to proc's unix id
set myFiles to paragraphs of (do shell script "lsof -F -p" & space & PID & space & "| grep ^n/ | cut -c2-")
set fName to my replace_chars(win_title, "'", "")
if myFiles contains fName then
tell proc
set frontmost to true
end tell
return true
end if
end repeat
end tell
return false
end activate_open_instance
on run {input, parameters}
if input is not {} then
set posixPaths to {}
repeat with fileItem in input
set posixPath to POSIX path of (fileItem as text)
set end of posixPaths to quoted form of posixPath
end repeat
set AppleScript's text item delimiters to space
set filePathsString to (posixPaths as string)
set AppleScript's text item delimiters to ""
set firstPosixPath to item 1 of posixPaths
if true or not my activate_open_instance(firstPosixPath, false) then
set enablePathVar to "eval \"$(/usr/libexec/path_helper -s)\"; PATH=$PATH:/opt/homebrew/bin neovide"
set cmd to "$(/usr/bin/env neovide)"
do shell script enablePathVar & space & cmd & space & filePathsString
delay 0.3
my activate_open_instance(firstPosixPath, true)
end if
else
set enablePathVar to "eval \"$(/usr/libexec/path_helper -s)\"; PATH=$PATH:/opt/homebrew/bin neovide"
set cmd to "$(/usr/bin/env neovide)"
do shell script enablePathVar & space & cmd
delay 0.3
my activate_open_instance("", true)
end if
return input
end run
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment