xdg로 사용자 정의 프로토콜을 등록하려면 어떻게해야합니까?


22

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

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

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

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

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


답변:


18

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]섹션 아래에 추가 하십시오.


여전히 크롬 창이 열립니다. 다른 거요? (저는 orig. author와 비슷한 데스크탑 환경에서 fluxbox를 사용합니다)
assem

8
를 통해 마지막 단계를 xdg-mime default emacsclient.desktop x-scheme-handler/org-protocol수행 할 수도 있습니다.이 방법은 아마도 공식적인 방법 일 것입니다.
Adam Spiers

이외의 다른 유용한 변수가 %u있습니까? 예를 들어 URI의 도메인 또는 경로 부분 만 표현하는 변수?
Jonathan Neufeld

11

@ 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문제를 해결하려면.


1
xdg-open을 업데이트하면 나에게 도움이되었습니다. 감사합니다!
George Marques

0

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

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


실제로, 그것은 문서를 읽음에도 불구하고 나에게 매우 불투명 한 xdg-open과 xdg-mime 사이에 필요한 구성입니다.
julien

file : // URI 우분투를 열면 xdg-mime을 전혀 호출하지 않지만 지원되는 DE에서 실행되지 않는 경우 run-mailcap을 사용하는 경우 Fedora 13은 먼저 xdg-mime을 사용하여 기본 앱을 찾으려고 시도합니다. 작업은 mimeopen으로 돌아갑니다. xdg-mime는 공유 MIME 정보 데이터베이스 freedesktop.org/wiki/Software/shared-mime-info를
Florian Diesch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.