You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.6 KiB
Plaintext
69 lines
1.6 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>application</key>
|
|
<integer>1</integer>
|
|
<key>custom</key>
|
|
<string>-- For the latest version:
|
|
-- https://github.com/vitorgalvao/custom-alfred-iterm-scripts
|
|
|
|
-- Set this property to true to always open in a new window
|
|
property open_in_new_window : false
|
|
|
|
-- Handlers
|
|
on new_window()
|
|
tell application "iTerm" to create window with default profile
|
|
end new_window
|
|
|
|
on new_tab()
|
|
tell application "iTerm" to tell the first window to create tab with default profile
|
|
end new_tab
|
|
|
|
on call_forward()
|
|
tell application "iTerm" to activate
|
|
end call_forward
|
|
|
|
on is_running()
|
|
application "iTerm" is running
|
|
end is_running
|
|
|
|
on has_windows()
|
|
if not is_running() then return false
|
|
if windows of application "iTerm" is {} then return false
|
|
true
|
|
end has_windows
|
|
|
|
on send_text(custom_text)
|
|
tell application "iTerm" to tell the first window to tell current session to write text custom_text
|
|
end send_text
|
|
|
|
-- Main
|
|
on alfred_script(query)
|
|
if has_windows() then
|
|
if open_in_new_window then
|
|
new_window()
|
|
else
|
|
new_tab()
|
|
end if
|
|
else
|
|
-- If iTerm is not running and we tell it to create a new window, we get two
|
|
-- One from opening the application, and the other from the command
|
|
if is_running() then
|
|
new_window()
|
|
else
|
|
call_forward()
|
|
end if
|
|
end if
|
|
|
|
-- Make sure a window exists before we continue, or the write may fail
|
|
repeat until has_windows()
|
|
delay 0.01
|
|
end repeat
|
|
|
|
send_text(query)
|
|
call_forward()
|
|
end alfred_script</string>
|
|
</dict>
|
|
</plist>
|