기본 Ubuntu Desktop의 URL 프로토콜 핸들러


16

Gconf에 URL 프로토콜 처리기를 등록하는 방법이 있었지만 이제는 더 이상 사용되지 않으며 DConf (또는 권장되는 래퍼 인 Gsettings)와 동일하게 수행 할 방법이없는 것 같습니다.

DConf 이후 어떻게 URL 프로토콜 핸들러를 올바르게 등록합니까?

또한 우분투 12.04에서 뭔가 이해가 안되는 것처럼 보입니다.

프로토콜 apt://apturl명령 으로 처리해야합니다 . Opera 브라우저에서도 마찬가지이지만 브라우저 구성 기능을 사용 하여이 특정 연결을 추가했기 때문입니다. 그렇지 않으면 나머지 환경에서 :

  • 달리기 (내 대안) xdg-open apt://foo.bar가 열립니다 .elinkswww-browser
  • 실행 gnome-open apt://foo.bar하면 소프트웨어 센터가 열립니다.
  • 를 열면 값이 있고 활성화 gconf-editor된 키 /desktop/gnome/url-handlers/apt가 보입니다 apturl "%s". 이 구성은 무시 된 것으로 보이며, GConf가 폐기 된 것으로 간주되므로 합리적으로 예상됩니다.
  • 를 여는 dconf-editor중 URL 처리기 또는 프로토콜과 관련된 내용이 없습니다./desktop/gnome

내 눈에 조금 지저분 해 보인다 (이 말로 놀리는 것, 나쁘지 않은 것)

아래에 무엇입니까?

참고 : 나는 전체 데스크탑 환경이로드되지 않은 경우에도 gsettings-daemon(그리고이 경우와 관련이없는 다른 것들) i3wm 세션을 실행할 때와 같이 바람직하게 작동하는 것을 찾고 있습니다.

최신 정보

프로토콜 핸들러를“등록”하는 또 다른 방법은 *.desktop파일과 해당 MIME 유형을 사용하는 것입니다. 예 MimeType=application/<the-protocol>;.

/usr/share/applications/ubuntu-software-center.desktop이 내용으로를 찾았습니다 .

[Desktop Entry]
Name=Ubuntu Software Center
GenericName=Software Center
Comment=Lets you choose from thousands of applications available for Ubuntu
Exec=/usr/bin/software-center %u
Icon=softwarecenter
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
MimeType=application/x-deb;application/x-debian-package;x-scheme-handler/apt;
StartupNotify=true
X-Ubuntu-Gettext-Domain=software-center
Keywords=Sources;PPA;Install;Uninstall;Remove;Purchase;Catalogue;Store;

이것은 왜 gnome-open apt://foo.bar소프트웨어 센터 대신 소프트웨어 센터를 여는 지 설명합니다 apturl.

그래서 나는 이것을 다음 apturl.desktop에 설치 했다 ~/.local/share/applications:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/apturl %u
Name=APT‑URL
Comment=APT‑URL handler
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/apt;

이후 update-desktop-database, 심지어 재부팅 후 모두 xdg-opengnome-open여전히 동일한 작업을 수행하고 사용자 데스크톱 파일과 평소와 같이,에서 하나를 오버라이드 (override)이 사용자의 바탕 화면 파일을 무시합니다 /usr/share/applications/.

x-scheme-handlerMIME 유형을 지정하는 데스크탑 파일에는 특별한 문제가있을 수 있으며 일반적인 방법으로 처리되지 않습니다.

데스크탑 파일 방식은 질문에 대답하지 않습니다.


1
도움이 될 수 있습니다 : unix.stackexchange.com/a/100736
Todd Owen

답변:


9

다음 ~/.local/share/applications/mimeapps.list과 같은 줄을 열고 추가하십시오.

x-scheme-handler/apt=apturl.desktop

나중에 HTTP, MAILTO 및 기타를 위해 이해할 수 있습니다.
Hibou57

해당 폴더가 없습니다. 루트에서 검색했는데 찾지 못했습니다.
Vlas Bashynskyi

@VlasBashynskyi의 위치 mimeapps.list는 다를 수 있습니다. 파일 이름을 검색하는 것이 좋습니다.
Hibou57

4

xdg-mime

아마도 더 우아 할 것입니다 (이 예에서는 "apt"를 사용 하고 다른 체계로 변경하십시오).

  1. 에서 등록 된 MIME 유형을 확인하십시오 /usr/share/applications/defaults.list.
  2. 추가 apt.desktop파일 ( 여기에 몇 가지 예 에) ~/.local/share/applications/(사용자 와이드) 또는 /usr/share/applications/(시스템 전체를).
  3. 데스크탑 파일이 처리하는 MIME 유형의 캐시 데이터베이스를 빌드하십시오. update-desktop-database
  4. 에 프로토콜 등록

    xdg-mime default apt.desktop x-scheme-handler/apt`
    

    그러면 스키마의 새 MIME 유형이에 추가됩니다 ~/.local/share/applications/mimeapps.list. 시스템의 모든 사용자에 대해 새 MIME 유형을 등록 할 수 있습니다 sudo xdg-mime install --mode system <xml file>.

로 테스트하십시오 xdg-open "apt://foo.bar".

MIME 유형 추가를 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.