[팁] PopClip 한글 맞춤법 검사기 확장

매버릭스 설치 후, 단디를 재설치 하신 분은 본 포스트 하단의 버튼을 클릭해서 다시 받아주세요~
github에 올렸습니다. https://github.com/sooop/HanSpell

ONE님의 포스팅을 보고 이렇게 좋은 기능을 PopClip이랑 결합해서 쓰면 더할 나위 없이 좋겠구나 싶었다.

popclip의 확장을 만들어 보자 (원문 : https://github.com/pilotmoon/PopClip-Extensions#introduction)

0. 확장의 서명

기본적으로 PopClip은 개별적으로 제작된 확장을 설치하려고하면 경고를 표시한다. 개발사에 의해 배포되는 공식 확장은 서명 경고가 뜨지 않는다.

1. 개괄

액션의 종류

PopClip 확장이 수행할 수 있는 액션은 크게 다음 다섯가지로 나뉜다.

  • 서비스 – OSX의 시스템 서비스로 선택된 텍스트를 전달해준다.
  • 애플스크립트 – 선택된 텍스트를 넘겨 애플 스크립트를 수행한다.
  • 쉘 스크립트 – 선택된 텍스트를 환경 변수로 넘겨 쉘 스크립트를 실행한다.
  • URL – 선택된 텍스트를 URL인코딩하여 특정 URL로 전송한다. (구글 번역 등)
  • KeyPress – 키 조합을 에뮬레이트한다.

필터링

선택된 텍스트에 대해 특정 패턴 매칭을 통해 기능의 활성화 여부를 결정해줄 수 있다.

  • 정규식 매칭
  • 특정 앱을 포함하거나 제외함
  • 잘라내기/복사 혹은 붙여넣기가 가능한지 여부
  • 텍스트가 URL이나 메일 주소를 포함하고 있는지에 대한 여부

한계

  • 전달되는 텍스트는 평문(Plain Text)이다. 서식정보는 포함되지 않는다.
  • 확장은 자신에 대한 설정 정보를 별도로 가질 수 없다. 또한 사용자 계정을 필요로 하는 액션은 수행할 수 없다.

2. PopClip 확장의 구조

.popclipextz 파일

확장은 zip으로 압축된 다음 확장자를 .popclipextiz로 바꾼다.

.popclipext 패키지

PopClip 확장은 Config.plist라 불리는 프로퍼티 리스트 파일과 그외에 아이콘이나 스크립트를 포함하며 .popclipext라는 확장자를 가지는 디렉토리로 만들어 진다. 이러한 디렉토리는 OSX에 의해 패키지로 취급된다. (이는 다른 많은 OSX앱과 비슷한 구조다)

이 패키지를 더블클릭하면 PopClip은 이를 설치하려고 시도한다. 설치 위치는 ~/Library/Application Support/PopClip/Extensions/이다.

다음은 “SAY” 확장에 대한 패키지 구조를 보여준다.

Say.popclipext — 포함하는 폴더

_Signature.plist — 서명 (공식 확장만 있음)

Config.plist — 메인 설정 파일

say.sh — 스크립트 파일

speech.png — 아이콘 파일

Config.plist

모든 확장은 이 파일을 포함하고 있다. 이 파일은 XML로 포맷팅 되어있다. 이 파일은 확장의 특성에 대해 기록하며, 수행하는 하나 혹은 그 이상의 액션을 정의한다. .plist 파일은 그냥 텍스트 에디터로도 만들 수 있는데, Xcode를 사용하면 쉽게 만들 수 있다. 물론 이게 너무 무겁다면 pref setter로도 쉽게 만들 수 있다.

아이콘

아이콘은 PNG 포맷의 정사각형(최소 256X256)이며 투명/검은색 픽셀만을 포함한다.

상세 설정

일반

  • 모든 키 이름은 대소문자를 구분한다.
  • 키와 값의 타입을 정확히 맞추어야 한다.

Config.plist 구조

필수 항목에 대해서만 기재함. 전체 테이블은 원문에서 확인할 것.

  • Extension Identifier – 문자열. DNS스타일로 작성함 : com.my-domain-name.my-extension-identifier
  • Extension Name – 문자열 혹은 사전. 사전인 경우 언어별로 다른 이름을 줄 수 있다.
  • Actions – 수행하는 액션. 배열타입이다.

액션 사전의 구조

  • Title – 문자열 혹은 사전타입. 기능의 이름
  • Service Name – 서비스인 경우 필수이며, 실행되는 서비스의 이름
  • AppleScript File – 애플스크립트인 경우 필수
  • Shell Script File – 쉘 스크립트인 경우 필수
  • URL – URL 액션의 경우 필수
  • Key Combo – 키 액션의 경우 필수, 사전 타입

결론

그리하여 아주 간단히 1분만에 PopClip 확장을 만드는데 성공했다. 텍스트를 긁으면 ㄱㄴㄷ이라는 버튼이 표시되며, 클릭 시 ‘단디’를 통해 한글 맞춤법 검사를 수행해준다.

‘단디’ 실행 PopClip 확장 받기

  • 행인

    멋진 extension 감사합니다.
    그런데 10.8.2에서

    The path /private/var/folders/ny/5nbfd_2j1s3bw63w8m58phhc0000gn/T/TemporaryItems/(PopClip이(가) 도큐멘트 저장 중)/HanSpell.popclipext does not contain a valid PopClip extension.

    위와 같이 오류가 나며 설치가 되지 않습니다.

    • 음 그것 참 이상하군요. Config.plist만 따로 올려보겠습니다. 이걸로 확장을 만들어보시면 될 듯 하네요. (압축 없이 폴더에 확장자만 붙여주면 됩니다.)

  • cloeht

    감사합니다 덕분에 편하게 쓸 수 있겠어요~ 🙂

  • BULGARI

    혹시 github 쓰시면 PopClip 한국 유저들을 위한 확장 기능을 하나로 모은 repo의 collaborator로 초대하고 싶네요. 🙂

    • 아직 git을 잘 못써서 ㅎㅎㅎ 좀 연구해보고 어떻게 쓰는 건지 파악되면 그 때 저도 좀 끼워달라고 부탁 드릴게요~

  • 행인

    오류의 원인을 찾았습니다. Popclip 1.4.4 버젼으로 업데이트 후 적용하면 정상 작동합니다.

    • 아 미처 후속조치를 못하고 있었는데 셀프해결하시고 답도 달아주시다니 ~ 감사합니다 ^^

  • ifallsea

    정말 잘 쓰고 있던 extension입니다. 하지만 매버릭스에서 동작하지 않습니다. 제발 수정해주실 수 없나요?

    • 아마 단디를 새로 설치하셔야 할 듯 합니다. 원 님 블로그를 참고해주세요.

      • 소중한시간

        저는 이제사 이런 익스텐션이 있는줄 알게 되어 기쁜마음에 설치를 했습니다 ^^; 말씀하신대로 원님 블로그를 참조해서 단디는 새로 설치를 완료했지요~ 단축키도 등록해서 잘 작동을 하는데 해당 익스텐션은 설치는 잘 됐는데..뭔가 리액션이 없네요;; ㅠㅠ; 왜 그럴까요~

        • 원님 블로그에서 저도 단디를 재설치하고보니, 단디 설치시에 서비스 이름이 “한글 맞춤법 검사”에서 “dandy”로 바꼈더군요. 이 부분 수정해서 다시 올려두도록 하겠습니다.