0. 목표 및 결과

마우스로 선택한 텍스트들을 - 로 시작하는 목록으로 변경해 클립보드에 복사해 놓는 HyphenList라는 extension을 만드는 과정을 설명한다.

1. 템플릿 준비 - 관련 커밋

공식 문서의 General Overview 섹션을 보면 PopClip extension은 다섯 가지 타입의 Action이 가능하다.

  • Service: 선택된 텍스트를 Mac OS X Service에게 넘김
  • AppleScript: 선택된 텍스트를 AppleScript에게 넘김
  • Shell Script: 선택된 텍스트를 Shell Script에게 넘김
  • URL: 선택된 텍스트를 URL encoding해서 특정 URL 호출
  • Keypress: 특정 키 조합을 누름

여기서는 간단하게 sed를 쓸 것이기 때문에 Shell Script 타입의 샘플 Extension인 Say를 템플릿으로 사용한다.

폴더 이름이 .popclipext란 확장자로 끝나야 Finder에서 더블 클릭을 해서 extension을 설치할 수 있으므로 SayHyphenList.popclipext라고 이름을 바꿔서 시작한다.

개인 extension은 디지털 서명 문제 때문에 설치할 때, 설치 여부를 확인하는 창이 계속 뜨는데 이 확인 절차를 건너뛰려면 Terminal 에서 다음 명령어를 치고 PopClip을 재기동 하면 된다.

$ defaults write com.pilotmoon.popclip LoadUnsignedExtensions -bool YES

2. Main Script 작성 - 관련 커밋

  1. Main Script 이름은 add-hyphens.sh
  2. PopClip은 선택된 텍스트를 $POPCLIP_TEXT 환경 변수에 담아 add-hyphens.sh을 호출
  3. add-hyphens.sh에서는 sed를 써서 $POPCLIP_TEXT의 모든 줄 처음에 - 를 추가
  4. 최종 add-hyphens.sh 쉘 스크립트는 다음과 같고

     echo "$POPCLIP_TEXT" | sed 's/^/- /'
    
  5. 테스트는 이렇게 해 본다

     $ POPCLIP_TEXT="123\n456\n789" ./add-hyphens.sh
     - 123
     - 456
     - 789
     $
    

3. Config.plist 수정

남은 일은 Config.plist에 필요한 내용을 하나씩 수정하면 된다.

Main Script 이름 적용 - 관련 커밋

작성한 Main Script 이름을 지정해 준다.

After Action 지정 - 관련 커밋

Main Script가 실행되기 전/후에 수행할 PopClip의 Before/After Action 중, 스크립트가 변환한 텍스트를 clipboard에 복사해 넣으면 되므로, copy-result로 지정한다.

실행했을 때, 성공하면 Copied가 표시되고 에러가 난다면 X가 표시된다.

Extension Identifier 변경 - 관련 커밋

Reverse DNS 스타일의 prefix 지정.

Name/Description - 관련 커밋

이름, 설명 지정.

Icon 변경 - 관련 커밋

아이콘은 PopClip popup 화면이나 설정 화면에서 필요하고, 최소 256x256 픽셀의 PNG 파일이면 된다. 여기선 http://simpleicon.com/list.html 의 아이콘을 가져다 쓴다.

4. 참고