macOS에서 'fileicon'을 이용해 앱 아이콘을 자동으로 변경하고 고정시키는 방법

2016.11.30 18:13    작성자: Back to the Mac

macOS에서 폴더나 앱 아이콘을 바꾸고 싶을 때는 주로 '정보 가져오기'를 통해 이미지 파일을 복사·붙여넣는 방법이 사용됩니다.

Finder에서 어떤 파일이나 폴더를 선택한 후 command + i 키를 누르면 속성 창을 띄운 후 아이콘을 교체할 수 있지요. ※참고 그런데 이 방법은 앱을 업데이트할 때마다 다시 작업을 해주어야 하는 번거로움을 안고 있었습니다. 예를 들어, 위 사진과 같이 카카오톡 앱 아이콘을 바꾸어 놓더라도, 카카오톡이 업데이트되면 앱 아이콘이 원래대로 돌아갑니다.

근 일 년 간의 검색 끝에 'fileicon'을 이용해 앱이 업데이트되더라도 사용자가 지정한 아이콘을 유지하도록 하는 방법을 발견해 백투더맥 블로그 구독자분들과 공유하려 합니다. 

진행 순서는 크게 △ fileicon을 설치하는 단계 △ 데몬을 작성하여 지속적으로 아이콘을 바꿔주는 단계로 나뉩니다.

1. Fileicon 설치

1. 응용 프로그램 > 유틸리티 폴더에 있는 터미널(Termina)을 열고 아래의 코드를 붙여넣어 'fileicon'을 내려받습니다. ▼

sudo curl https://raw.githubusercontent.com/mklement0/fileicon/stable/bin/fileicon -o /usr/local/bin/fileicon

2. 계속해서 터미널에 아래의 코드를 붙여넣어 fileicon 실행파일의 권한을 조정합니다. 명령어 중간에 있는 'x'는 소문자입니다.

sudo chmod +x /usr/local/bin/fileicon

2. 교체할 아이콘 준비

이제 교체할 아이콘을 준비할 차례입니다. 해당 작업을 할 때 두 가지를 유념하셔야 합니다.

1) 교체할 아이콘 파일은 도큐멘트 폴더(~/Documents)에 넣어놓는 것을 추천합니다. 또한 Dropbox 홀폴더나 깃허브 리포지토리처럼 비 HFS+ 디렉터리에 있는 아이콘에는 이 방법을 적용할 수 없습니다.

2) 아이콘 파일의 포맷은 .icns와 .png 모두 가능합니다. icns 변환은 'iconverticons'를 추천합니다.

*본문 맨 아래쪽에 유의점을 다시 정리해 놓았습니다.

3. 아이콘 변경 데몬(자동화 프로세스) 작성

여기까지 따라왔으면 'fileicon' 터미널 명령어로 커스텀 아이콘을 적용할 수 있으나, 앱이 업데이트 될 경우 여전히 아이콘이 원래대로 복구됩니다. 따라서 앱 업데이트, 즉 내부 파일 변경이 감지되면 fileicon이 다시 아이콘을 수정하도록 데몬을 작성하고 활성화할 필요가 있습니다.

1. 터미널에 아래 경로를 입력해서 데몬이 위치한 디렉터리로 이동합니다. ▼

cd /Library/LaunchDaemons

2. 터미널에 아래 명령어를 입력해서 데몬 파일을 생성합니다. 앱에 따라서 파일 이름을 바꾸어 줄 수 있습니다. 명령어 뒤에 .plist 붙이는 것만 기억하세요. ▼

touch me.fileicon.KakaoTalk.plist

3. 터미널에 'open .'을 입력하여 Finder 창을 열고 선호하는 에디터로 파일을 열어서 아래 내용을 복사해 붙여넣습니다.

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <true/> <key>Label</key> <string>me.fileicon.KakaoTalk</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/fileicon</string> <string>set</string> <string>/Applications/KakaoTalk.app</string> <string>/Users/(홈폴더)/Documents/KakaoTalk.icns</string> </array> <key>RunAtLoad</key> <true/> <key>WatchPaths</key> <array> <string>/Applications/KakaoTalk.app</string> </array> </dict> </plist>

4. plist 파일에서 수정해야 하는 부분이 적게는 한 군데, 많게는 다섯 군데입니다.

1) 9번째 줄 <string>값에는 파일 이름에서 .plist를 뺀 값을 적어줍니다. 만약 파일명을 바꾸었다면 말이죠. (대소문자 유의)

2) 만약 노드 패키지 매니저인 'npm'으로 fileicon을 설치하였다면,

12번째 줄 <string>/usr/local/fileicon</string> 대신
<string>/usr/local/Cellar/node/(Node 버전)/bin/fileicon</string>입니다.
npm으로 설치하실 정도면 부연 설명이 필요없을 것이라 봅니다.

3) 14번째 줄은 커스텀 아이콘이 적용될 앱의 위치입니다. 맨 앞에 ~가 없는 것에 유념하세요.

4) 15번째 줄은 아이콘 파일의 경로입니다. ~/를 쓸 수 없기 때문에 Users/(홈폴더)/부분을 전부 넣어주어야 합니다. 홈폴더 이름을 모른다면 Finder에서 command + shift + h 키를 누르면 창 맨 위에 홈 폴더 이름이 표시됩니다.

5) 21번째 줄은 내용물의 변경이 있는지를 지켜보는 경로입니다. 보통 14줄과 동일하게 적으시면 됩니다.

5. 코드를 모두 수정했으면 plist 파일을 저장합니다. 비밀번호를 물어보면 계정 비밀번호를 입력하면 됩니다.

4. 데몬 활성화

데몬을 작성했으니 이제 백그라운드에서 데몬이 돌아가게 해야 합니다.

1. 터미널을 열고 아래 명령어를 입력해 디렉터리로 이동합니다. ▼

cd /Library/LaunchDaemons

2. 아래 명령어를 입력해서 데몬을 등록합니다. 물론 .plist가 포함된 파일명을 입력해야 합니다. 만약 파일명을 바꾸었다면 말이죠. (대소문자 유의)

launchctl load me.fileicon.KakaoTalk.plist

유의점

1) 아이콘 파일의 위치가 HFS+를 지원하는 디렉터리(예: 도큐멘트 폴더)에 있어야 합니다.

2) 아이콘 설정을 비롯한 fileicon의 기본적인 사용 방법은 다음과 같습니다. ※메뉴얼

· 아이콘 설정: fileicon set <바꿀 파일이나 폴더> <이미지파일>
· 아이콘 제거: fileicon rm <아이콘 원상복원할 파일이나 폴더>
· 아이콘 추출: fileicon get [-f] <추출할 파일이나 폴더> <추출되는 파일명>
    -f 플래그는 기존에 존재하는 파일을 덮어쓰기할 때 사용합니다.
    추출되는 파일의 형식은 기존 파일과 관계없이 .icns의 형식으로 추출됩니다.
· 커스텀 아이콘 여부 확인: fileicon test <확인할 파일이나 폴더>

3) 일단 이 튜토리얼에서는 fileicon 실행파일을 /usr/local/bin에 위치시켰기 때문에 별다른 설정없이도 작동할 것으로 예상합니다. 하지만 만약 fileicon을 다른 위치에 설치하셨다면 터미널에서 echo $PATH를 실행하여 PATH에 fileiocn 실행파일이 포함돼 있는지 확인하셔야 합니다.

4) 콘솔에 fileicon 데몬과 관련한 로그가 10초에 한 번씩 찍힙니다. 콘솔 로그를 자주 들여다보신다면… 스트레스를 받으실 수도 있습니다…

필자: Canor (트위터)

일반적으로 찾지 않는 특이한 것을 찾는 맥 블로거.
走的人多了,也变成了路。



참조
GitHub - fileicon introduction

관련 글
맥용 카카오톡을 위한 깔끔하고 귀여운 맞춤형 아이콘 세트
맥용 한글 2014 사용자를 위해 새로 디자인한 아이콘
파인더의 '정보 가져오기', '속성 보기' 기능을 최대한 활용해 봅시다
OS X 응용 프로그램 아이콘을 빠르게 추출하는 방법 2가지

저작자 표시 비영리 변경 금지
신고
    
  1. Blog Icon
    매드박

    상세한 설명 감사합니다
    한글이랑 카카오톡 아이콘 바꿔서 쓰고 있는데 당장 적용해봐야겠어요
    이런 게 있는지조차 모르고 있었는데 사람은 역시 배워야...

  2. Blog Icon
    n

    파일 생성하는 과정에서 권한이 부여되지 않아... 고생했는데
    다른 경로에 만든 뒤 붙여넣기 하여 가이드 대로 성공했습니다.
    터미널 사용법을 좀 배워야 할거 같네요... ㅠㅠ
    감사합니다~

  3. Blog Icon
    goodidea

    어떻게 하셨나요? 아마 저도 그런 것 같은데... failed to create the file : no such file or warning : directory 라고 뜨네요

  4. Blog Icon
    민군

    갈수록... ㅠ.ㅠ
    요세미티에서 LiteIcon 사용할 때 까지만 해도 편하고 좋았는데...

  5. Blog Icon
    질문있습니다

    로그가 10초에 한번씩 찍힌다는게 결국은 계속 확인해서 시스템 자원 갉아먹는거 아닌가요? 하루 한번정도만 확인해도 충분할거같은데.....