xdg로 사용자 정의 프로토콜을 등록하려면 어떻게해야합니까? network.protocol-handler.app.org-protocol을 빈 문자열 또는 emacsclient

오늘 아침에 응용 프로그램을 사용자 정의 프로토콜, 즉 emacsclient 및 org-protocol과 연결하려고 노력하고 있습니다 .

웹 브라우저 북마크에서이 프로토콜을 호출하면 다음과 같은 동작이 나타납니다.

크롬
에서 “응용 프로그램 시작”대화 상자가 나타나고 xdg-open org-protocol : // …을 호출하여 새 크롬 프레임이 실행됩니다.

firefox에서
network.protocol-handler.app.org-protocol을 빈 문자열 또는 emacsclient 경로로 설정하려고 시도했지만 다음과 같은 오류 메시지가 표시됩니다.
“Firefox는이 주소를 여는 방법을 알지 못합니다. 프로토콜 (org-protocol)은 외부 응용 프로그램 선택 대화 상자를 표시하지 않아도 프로그램과 연결되어 있지 않습니다.

데스크탑 환경을 사용하지 않기 때문에 xdg를 사용 하여이 작업을 엄격하게 수행해야하지만 공유 MIME 정보 사양 등을 읽었음에도 불구하고 여전히 작동 구성을 추측 할 수는 없습니다.



답변

XDG 메소드 : MIME 유형 emacsclient.desktop을 처리 하는 파일을 작성하십시오 x-scheme-handler/org-protocol.

[Desktop Entry]
Name=Emacs Client
Exec=emacsclient %u
Icon=emacs-icon
Type=Application
Terminal=false
MimeType=x-scheme-handler/org-protocol;

( MimeType=위 줄은 org-protocol:URI 에 대한 것 입니다.)

파일을 ~/.local/share/applications또는에 넣습니다 /usr/local/share/applications.

파일을 열고 다음 ~/.local/share/applications/mimeapps.list과 같은 행을 추가 해야 할 수도 있습니다 .

x-scheme-handler/org-protocol=emacsclient.desktop

[Default Applications]섹션 아래에 추가 하십시오.


답변

@ grawity 는 거의 정확하지만 그는 두 가지 세부 사항을 간과했습니다.

  1. .desktop파일을 설치 한 후 수동으로 실행해야 할 수도 있습니다 sudo update-desktop-database. (을 .desktop사용 하여 파일 을 설치 한 경우이 작업이 수행 될 수 있습니다. xdg-desktop-menu install emacsclient.desktop)

    Firefox에서 “이 프로토콜을 어떻게 처리해야합니까?”를 표시하는 데 필요한 것이 었습니다. 오류 페이지를 표시하는 대신 대화 상자를 표시하십시오.

  2. 이 질문을 받았을 때, “일반”(비 KDE, 비 그놈, 비 Xfce 등) 데스크탑에서 xdg-openURL을 맹목적으로 넘겨 버그 가 발생했습니다 $BROWSER. @ julien 이 (가) 발생했습니다.

    그것은 XDG 오픈의 현대 버전에서 해결해야하지만 바탕 화면은 어떤 이유로 현대 버전을 사용하지 않을 경우, 여기의 XDG 오픈 버전 에 I 드롭 /usr/local/bin문제를 해결하려면.


답변

Fedora 13과 다양한 데비안 기반 배포판 xdg-open 에서 지원되는 데스크탑 환경에서 실행되지 않으면 브라우저에 file : // 체계 가없는 모든 URL이 열립니다 . 사용할 브라우저를 감지하는 방법은 배포판에 따라 다릅니다.

으로 XDG 오픈이 단지 쉘 스크립트 당신은 쉽게 당신의 요구에 적응 할 수 있습니다.