Linux 에선 전혀 신경쓸 필요가 없는 일인데, macOS 에선 그야말로 처음부터 끝까지 내 손으로 해결해야만 했다. 이런게 싫으면, macOS 에서 권장하는 방식(고분 고분 Apple 만을 따르는!!)으로만 사용하면 된다. (애초에 이런 것까지 할 생각은 없었는데.. 손을 대다보니 또 꽃삽질을 하고 앉았네..)
설치
** HomeBrew 로??
이 글을 다 쓰고 나서야 알게 됐는데, Homebrew 로 설치할 수도 있다. (안해봐서 잘 작동할지는 모르겠다.)
macOS 에서 쉽게 설치할 수 있는 방법은 없다. Deluge 문서에 나온대로 몇가지 과정을 거쳐야 하고, Homebrew 가 필요하다. (원문엔 나뉘어 있지만, 여긴 그냥 몰아놨다.)
brew install pygobject3 gtk+3 adwaita-icon-theme brew install libtorrent-rasterbar brew link gettext --force
그리고 pip 으로 몇몇 꾸러미 설치, 그리고 대망의(?) deluge 까지.
pip install pycairo PyGObject pip install deluge
만약 pip(/opt/homebrew/bin/pip) 이 안되면 pip3(/usr/bin/pip3) 로.
설치가 끝나면, ~/Library/Python/3.9/bin/deluge
를 실행하여, GUI 가 열리는지 확인한다. (만약 어떤 꾸러미가 없다는 오류가 발생한다면, 적절히 설치해준다.)
늘 이렇게 터미널로 실행하는데 만족한다면 여기가 끝이다.
macOS 용 app 생성, 설정
Application 만들기
터미널이 번거롭다면 app 을 만들 수 있다.
- Automator 를 실행하고, 신규 – ‘응용 프로그램’을 선택한다.
- 왼쪽 보관함/유틸리티, 오른쪽 AppleScript 실행을 선택한다.

스크립트엔 다음과 같이 넣는다.
on run {input, parameters} # Finder 에서 파일을 선택하지 않고 그냥 실행했을 경우 if input is {} then set run_deluge_soley to "$HOME/Library/Python/3.9/bin/deluge-gtk &>/dev/null &" do shell script run_deluge_soley # 스크립트를 끝내려면? # https://stackoverflow.com/a/29390864 return 0 end if # Finder 에서 파일을 선택하고 실행했을 경우 set run_deluge_add to "$HOME/Library/Python/3.9/bin/deluge-gtk " repeat with theFile in input # 이건 여기서 배움 # https://stackoverflow.com/a/62796213 set posixFile to POSIX path of theFile # 여기서 quoted form 이 필요한지는 모르겠음. do shell script run_deluge_add & quoted form of posixFile & "&>/dev/null &" end repeat return 1 end run on open location this_URL # https://www.smork.info/blog/posts/magnet_handler_script_for_firefox_on_osx/index.html # In case you want to display the URL that is being passed, uncomment the following line # display dialog "I'm doing something with this URL: " & return & this_URL set run_add_magnet to "$HOME/Library/Python/3.9/bin/deluge \"" & this_URL & "\" " do shell script run_add_magnet end open location
여기는 두 부분으로 나뉜다. on run 과 on open location. on run
은 deluge 를 직접 실행시키거나 Torrent 파일 더블클릭, 또는 여러 파일을 선택한 후 우클릭으로 ‘열기’ 했을 때 필요하고, on open location
은 마그넷 링크 용이다.
위 스크립트에서 핵심(?)은 애플용 경로(콜론으로 구분)를 유닉스용으로 바꾸는 부분에 있다.
set posixFile to POSIX path of theFile
이걸 해주지 않으면 당연히, deluge 가 파일/경로를 인식하지 못한다.
애플 스크립트에 익숙지 않아서 저 간단한 내용을 알아내는데 꽤 많은 꽃삽질이 필요했다. 마그넷 링크 사용법은 Benjamin 님께 배웠다. (고맙습니다.)
다 만들었으면 저장하고 끝낸다.
app 을 실행해보고, 문제가 없다면 다음으로.
Application 설정 : .torrent, magnet 링크 연동
실행은 되는데, 아직 .torrent
파일과 magnet link 와 연동은 되지 않은 상태다. 이를 위해서 Contents/Info.plist
를 열고, 다음 내용을 추가한다.
# .torrent 연동 <array> <dict> <key>CFBundleTypeExtensions</key> <array> <string>torrent</string> </array> <key>CFBundleTypeName</key> <string>Deluge Gui</string> <key>CFBundleTypeOSTypes</key> <array> <string>****</string> </array> <key>CFBundleTypeRole</key> <string>Viewer</string> </dict> </array> # magnet link <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLName</key> <string>My magnet handler</string> <key>CFBundleURLSchemes</key> <array> <string>magnet</string> </array> </dict> </array>
.torrent 용은, 원래 있던 형식에 적절히 추가하고, magnet 링크 부분은 맨 끝 쪽에 추가한다. 물론, </dict> </plist> 바로 위 쪽으로.
수정이 끝났으면, 이 app (예를 들면 deluge.app) 을 /Applications 또는 ~/Applications 로 옮긴다.
.torrent 파일을 열거나(1개나 여러개), magnet 링크를 클릭하여 제대로 연동하는지 확인해 본다.
** 뭔가 빠진 듯도 한데…???
만약 magnet link 가 열리지 않는다면?
저렇게 magnet link 와 연동된 프로그램이 있다면 별 문제 없는 듯도 한데.. 혹시나 마그넷 링크를 눌러도 아무런 반응이 없다면, 이런 식(Firefox)으로 설정을 바꿔본다.
- FF 에서
about:config
로 설정을 연다. - 설정 이름 검색에 network.protocol-handler.expose.magnet 을 넣고, false 로 바꾼다.
이후 마그넷 링크를 클릭하면 ‘반응’이 온다.
Chromium 계열은 그냥 되는 듯도 한데.. 안되면 검색!
torrent 파일은 열리지만, Magnet 은 안될 경우?
잘 되다가 또 안되곤 하는 듯 한데.. Automator 를 잘 모르는 상태에서 대충 만들었기 때문에 무리수가 있을 수 있다. 이럴 땐 그냥 Benjamin 님 글 내용대로, Magnet 처리기를 따로 만드는 편이 낫다.