summaryrefslogtreecommitdiff
path: root/.local/bin/macos.d/dmenu_ghostty
blob: 439104a66890dfa9842789851b787d16b7439ede (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/sh
dir="${TMPDIR:-/tmp}/dmenu_ghostty"
mkdir -p "${dir}"
[ -p "${dir}/in" ] || mkfifo "${dir}/in"
[ -p "${dir}/out" ] || mkfifo "${dir}/out"

osa='
on runCommandInteractively(theCommand)
  tell application "System Events"
    keystroke return using {command down, shift down}
    delay 0.2
		keystroke ("fzf <'"\${TMPDIR}/dmenu_ghostty/in"' >'"\${TMPDIR}/dmenu_ghostty/out"' && '"osascript -e 'tell application \\\"System Events\\\"' -e 'keystroke return using {command down, shift down}' -e 'end tell'"'" as text)
		keystroke return
  end tell

end runCommandInteractively

on run args
if class of args is list then -- arguments passed come in as a list
		set quotedArgs to {}
		repeat with arg in args
			-- set end of quotedArgs to "'"'"'" & arg & "'"'"'"
			set end of quotedArgs to "" & arg
		end repeat

    set AppleScript'"'"'s text item delimiters to " "
		set joinedArgs to quotedArgs as string
    set AppleScript'"'"'s text item delimiters to ""

		runCommandInteractively(joinedArgs)
end if
end run
'
echo "$osa"
osascript -e "$osa" -- "$@"

cat >"${dir}/in"
cat "${dir}/out"