예전에는 Go2Shell이라는 앱으로 잘 되었었는데,
OSX가 메이저 업데이트 되면서 Go2Shell 관리는 안 하는 것인지 제대로 작동을 안 한다.
그래서 구글링을 하다가 찾은 해결책은 다음과 같다.
해결책 원본은 https://gist.github.com/pdanford/158d74e2026f393e953ed43ff8168ec1
- Automator를 켜고 파일 -> 새로 만들기 에서 Application을 선택한다.
- Automator에서 라이브러리 -> 유틸리티 -> 애플스크립트 실행을 더블 클릭한다.
- 이 글의 제일 아래 있는 AppleScript를 복사해서 붙여넣는다.
- Desktop 디렉토리 등에 iTermOpenHereScript.app라는 이름으로 저장한다. 그리고 iTermOpenHereScript.app을 ~/Library/Services에 복사한다. (파인더에서 Shift+Command+G를 눌러서 ~/Library/Services 를 입력하면 해당 디렉토리가 열린다.)
- 파인더 -> 응용프로그램의 iTerm2.app을 클릭해서 Command+i 를 쳐서 info 창이 나오면 iTerm2 아이콘을 클릭해서 복사(Command+C)한다.
- ~/Library/Services에 있는 iTermOpernHereScript.app을 클릭해서 Command+i 를 쳐서 info 창이 나오면 Automator 아이콘을 클릭하고 붙여넣기(Command+V)를 해서 아이콘 모양을 예쁘게 바꿔놓는다.
- Command+Option 키를 누른 상태에서 iTermOpenHereScript.app을 드래그해서 Finder.app의 툴바로 끌어다 놓는다.
- iTerm2의 환경설정 -> General -> Startup에 가서 Windows restoration policy를 Only Restore Hotkey Window로 선택한다.
- iTerm2의 환경설정 -> General -> Closing에 가서 Quit when all windows are closed의 체크표시를 없앤다. 그래서 기동이 빨라진다.
AppleScript
on run {input, parameters}
set frontApp to (path to frontmost application as Unicode text)
if (frontApp does not contain "Finder.app") then
-- Finder does not have focus.
return
end if
tell application "Finder"
set listSize to count of (every window)
if listSize is equal to 0 then
-- The Finder desktop has focus and no windows anywhere else. default to home dir.
set dir_path to "~"
else
try
set dir_path to quoted form of (POSIX path of (folder of the front window as alias))
on error errMsg
-- This is a special dir (e.g. Network or "machine name"). default to home dir.
set dir_path to "~"
end try
end if
end tell
CD_to(dir_path)
end run
on CD_to(theDir)
tell application "iTerm"
set term_window to (create window with default profile)
set sesh to (current session of term_window)
tell sesh to write text "cd " & theDir & ";clear"
end tell
end CD_to