macOS: 여기에서 (Double Commander) 열기 (AppleScript 사용).

제목은 좀 다르지만, 이전에 같은 내용을 쓴 적이 있다. 그 글에서는 Shell Script 를 사용했었는데, 이 글에선 Applescript 를 사용한다.

단순히 어떤 스크립트를 사용하느냐의 차이만 있는게 아니다. Shell script 를 사용하면, 살짝 보기싫은 문제가 생긴다.

화면 상단에 생긴 톱니바퀴!

Shell script 를 사용하여 D.C 를 실행하면, 위 그림처럼 화면 상단 메뉴 막대에 돌아가는 톱니바퀴가 나타나고, D.C 를 끝낼 때까지 계속 돌아간다. Shell Script 가 끝나지 않았기 때문에 이런 현상이 나타나는 듯 한데, 그냥 무시해버리면 되지만, 그래도 신경은 쓰인다.

구글로 이 문제를 찾아보니, Shell script 를 사용하면서도 저 문제를 해결하는 몇가지 방법이 있긴 한 듯 했다. 그러나, Applescript 를 사용하면 좀 더 간단하고, 보다 더 Apple 식으로 문제를 해결할 수 있다.

이 글 제목엔 Double Commander 가 들어가 있지만, Wine 을 제외하고 대부분 macOS 응용 프로그램을 이와 같은 방식으로 실행할 수 있다. (아마도..)


Automator 를 열고, ‘서비스’를 선택한 후, 다음과 같이 선택한다.

서비스가 받는 선택 항목 : 폴더
선택 항목 위치 : Finder
보관함/유틸리티에서 AppleScript 실행 선택

여기서 문제는 두가지다.
첫번째는, 어떻게 원하는 프로그램(여기서는 Double Commander)을 실행시킬 수 있을까?
두번째는, 과연, Applescript 에 ‘폴더’ 를 어떻게 매개변수로 넘겨줄 수 있을까?

늘, 알고나면 간단하지만..

on run {input, parameters}
	
	do shell script "open -a \"/Applications/Double Commander.app\" --args -t -l \"input\" "
	
	return input
end run

open 은 macOS 용 프로그램(/usr/bin/open)으로, man page 에는 이렇게 설명되어 있다.

The open command opens a file (or a directory or URL), just as if you had double-clicked the file’s icon.
If no application name is specified, the default application as determined via LaunchServices is used to open the specified files.

man page

open -a 뒤에 응용 프로그램 경로를 써주면 된다. 공백이 없으면 그냥 써주면 되는데, 공백이 있다면 \”/Applications/XXX YYYY.app\” 식으로 따옴표를 이스케이프 해줘야 한다.

매개변수를 사용하기 위해서는 --args 예약어를 사용한다.
-t -l 은 D.C 에서 사용하는 선택사항인데, -t 는 탭으로 열기, -l 은 왼쪽 탭을 사용하라는 뜻이고, -l 뒤에 경로를 붙여줘야 하낟.

경로로 사용할 매개변수는, 어이없게도 그냥 input 이다. 첫 행에, on run {input, parameters} 가 나와있는데, 이게 매개변수였다.
input 이 받는 값은 폴더 경로인데, 공백이 들어가 있을 수도 있으므로 반드시 위와 같이 탈출(??/Escape)시켜줘야 한다.

이렇게 하고, 적절한 이름을 준 뒤(여기서 D.C 열기) 저장하면, 파인더 서비스 메뉴에서 이 메뉴를 사용할 수 있게 된다.

당연히, 톱니바퀴는 보이지 않는다.


이런 저런 많은 글을 봤는데, 다음 글에서 가장 큰 감동(?)을 받았다.

One Comment

안녕하세요. 글 남겨주셔서 고맙습니다.