이 사용자 정의 프로토콜이 포함된 링크를 클릭하면 해당 URL에 대한 명령이 실행되도록 내 사용자 정의 URL 프로토콜에 대한 URL 구성표(또는 프로토콜) 처리기를 등록하고 싶습니다. 이 처리기를 추가하려면 어떤 단계를 수행해야 합니까?
ddg://query%20terms
예: 새 DuckDuckGo 브라우저 검색에서와 마찬가지로 URL을 열고 싶습니다 . 이 프로토콜이 이미 존재하는 경우 핸들러를 다시 작성하는 단계는 새 핸들러를 생성하는 단계와 크게 다르지 않다고 생각합니다. 예, 기술적으로 이는 프로토콜이 아닌 URL 구성표일 뿐입니다.
답변1
XDG에 새 URL 구성표 핸들러를 등록하려면 먼저 x-scheme-handler/...
MIME 유형을 지정하는 데스크탑 항목을 생성하십시오.
[Desktop Entry]
Type=Application
Name=DDG Scheme Handler
Exec=open-ddg.sh %u
StartupNotify=false
MimeType=x-scheme-handler/ddg;
%u
다음과 같이 URL(예 ddg://query%20terms
: )을 단일 매개변수로 전달 합니다 .데스크탑 입력 사양.
이 데스크탑 항목을 생성하고 설치한 후(예: 또는 applications
와 같은 XDG의 로컬 또는 시스템 디렉토리에 넣음 ) 응용 프로그램을 MIME 유형으로 등록해야 합니다(데스크톱 항목 이름을 로 지정했다고 가정 ).~/.local/share/applications/
/usr/share/applications/
ddg-opener.desktop
xdg-mime default ddg-opener.desktop x-scheme-handler/ddg
핸들러의 참조 구현 ddg-open.sh
:
#!/usr/bin/env bash
# bash and not just sh because we are using some bash-specific syntax
if [[ "$1" == "ddg:"* ]]; then
ref=${1#ddg://}
#ref=$(python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])" "$ref") # If you want decoding
xdg-open "https://duckduckgo.com/?q=$ref"
else
xdg-open "$1" # Just open with the default handler
fi
답변2
당신이 가지고 있다면mimeo
이 설치되어 있고 관련 응용 프로그램을 만들려는 데스크톱 파일의 이름을 이미 알고 있는 경우 다음을 수행하면 됩니다.
mimeo --add 'x-scheme-handler/ddg' <path or name of desktop file>
예를 들어 duckduckgo의 경우 데스크톱 파일이 있는 경우 /usr/share/applications/Duckduckgo.desktop
다음을 수행하면 됩니다.
mimeo --add 'x-scheme-handler/ddg' Duckduckgo
또는
mimeo --add 'x-scheme-handler/ddg' /usr/share/applications/Duckduckgo.desktop