-
-
Save eric-hu/5846890 to your computer and use it in GitHub Desktop.
-- Adapted from these sources: | |
-- http://peterdowns.com/posts/open-iterm-finder-service.html | |
-- https://gist.github.com/cowboy/905546 | |
-- | |
-- Modified to work with files as well, cd-ing to their container folder | |
on run {input, parameters} | |
tell application "Finder" | |
set my_file to first item of input | |
set filetype to (kind of (info for my_file)) | |
-- Treats OS X applications as files. To treat them as folders, integrate this SO answer: | |
-- http://stackoverflow.com/a/6881524/640517 | |
if filetype is "Folder" or filetype is "Volume" then | |
set dir_path to quoted form of (POSIX path of my_file) | |
else | |
set dir_path to quoted form of (POSIX path of (container of my_file as string)) | |
end if | |
end tell | |
CD_to(dir_path) | |
end run | |
on CD_to(theDir) | |
tell application "iTerm" | |
activate | |
try | |
set t to the last terminal | |
on error | |
set t to (make new terminal) | |
end try | |
tell t | |
launch session "Default Session" | |
tell the last session | |
write text "cd " & theDir | |
write text "ls" | |
end tell | |
end tell | |
end tell | |
end CD_to |
I second zakdances' request, that would be awesome.
It has always annoyed me that you don't get "Services" in the right click menu when your target is the background of the window... I mean it should technically be a valid target for a service that receives folders... alas nothing can be done other than send apple feedback requesting it http://www.apple.com/feedback/macosx.html
Not quite a solution to zakdances question, but you can do a shortcut instead...
Instead of using "service receives selected" choose "no input" in "finder", then add the "Get selected Finder Items" action from the developer tab and place it above this script. Since the action then does not require arguments it now works with keyboard shortcuts. To set it go to system preferences > keyboard > shortcuts > services and find your script under "General". you should be able to set a shortcut and have it work on any file or folder in finder.
thanks for the post eric-hu! I've been looking for this solution for a long time!
@delgadom -- Thanks for sharing that addition. I now have both the Service above and another keyboard shortcut service.
For people who are setting up the keyboard shortcut, note that once I had it set up, the keyboard shortcut wasn't working until I went into finder, clicked File -> Services -> (my new keyboard shortcut). After that, my keyboard shortcut worked. Also note that some OS X hotkeys can't be easily disabled (I wanted to override iCloud's default Cmd + Shift + i. I settled for ctrl-i).
For applescript that works with iTerm2 nightly this fork works:
https://gist.github.com/shuntaroy/e5ce3ad61c0deb7e27f0
using the code provided by OP. I got this error Expected class name but found identifier.
I'm getting the same error as craigcosmo
Here's my working fork, tested against latest iTerm2.
mainly changed:
- detect file type by shell script, fix the problem in fork by @Leglaw that non-English (e.g. Chinese) locale may encounter.
- create new tab if existing window is detected, instead of always creating new windows.
iTerm updated their interface. For those who keep getting error, have a try with it~ @craigcosmo @kitizz
It's working for mw now @ttimasdf Thanks for the correction
@ttimasdf not working for me, im getting this:
How could this be altered to allow the menu item to show when white space is clicked?