새로운 xdg-open 설정은 어떻게 설정합니까?


답변:


17

xdg-open은 기본적으로 어떤 데스크탑 환경이 있는지 확인한 다음 gnome-open, gvfs-open, xfce-open 등을 실행합니다. 데스크탑 환경 별 지침은 아래를 참조하십시오 ...

금언

Gnome은 gconf를 사용하여 모든 것을 저장하는 gnome-open 프로그램을 사용합니다. 예를 들어 gnome-open irc : // blah를 실행하는 Ubuntu 10.10이 설치된 내 컴퓨터에서 xchat에는 irc : // 처리기를 추가하는 gconf 설정 패치가 포함되어 있기 때문에 xchat이 열립니다.

xchat 구성으로 irc를 표시하는 gconf 편집기

이것은의 gconf 설정과 함께 gnome이이를 수행하는 방법을 보여줍니다 /desktop/gnome/url-handlers/. 참조 xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas예를 들어.

KDE

KDE의 경우 / usr / share / kde4 / services /에있는 .protocol 파일을보고 새 프로토콜에 대한 새 프로토콜을 만들어 ~ / .kde / share / kde4 / services /에 넣으십시오. 다른 사용자를위한 수정 사항으로 패키지에 추가하는 것을 고려하십시오.

KDE는 사용 가능한 버전과 보유한 KDE 버전에 따라 kde-open 또는 kfmclient를 사용합니다.

XFCE

XFCE는 exo-open이라는 프로그램을 사용하는데,이 프로그램은 그것을 구성하거나 URI 핸들러를 추가 할 수있는 방법이 없습니다. 소스 코드를 살펴보면 데스크탑 파일을 사용하여 세 가지 유형의 프로그램 만 지정한다는 것을 알 수 있습니다. TerminalEmulator, WebBrowser 및 EmailClient.

XFCE4 (및 아마도 다른 것)를 사용하면 사용자 정의 프로토콜 핸들러를 정의하도록 xdg-open을 구성 할 수 있습니다. 일부에서는 다음 파일을 작성 / 편집해야합니다.

~ / .local / share / applications / protocolhandler.desktop ~ / .local / share / applications / mimeapps.list

ed2k 프로토콜에 대한 핸들러 추가 예제는 stackexchange.com 2 에서 제공됩니다 .


모든 공식 DE에 대해 그렇게하는 방법을 언급 할 수 있습니까?
Oxwivi

질문과 정확히 관련이 없지만 스크린 샷 하단의 디렉토리 전체를 인용 할 수 있습니까? 고맙습니다.
Oxwivi

4
xdg-open은 기본적으로 어떤 데스크탑 환경이 있는지 확인한 다음 gnome-open, gvfs-open, xfce-open 등을 실행합니다. --- 그렇게 생각하지 않습니다. 첫째, 맨 페이지는 그렇게 말하지 않으며, 둘째, xdg-open은 데스크탑 환경없이 완벽하게 작동합니다. 예를 들어 i3 창 관리자와 함께 사용합니다.
Alois Mahdal 2011

앱 설치 중에 새로운 URL / 앱 연결을 생성하는 일반적인 방법이 있습니까?
jayarjo

14

이를 magnet:URI 유형과 전송 (예 : 비트 토렌트)으로 설명하지만 모든 방법이나 파일 유형에 동일한 방법을 적용 할 수 있습니다.

또한 Debian Jessie와 함께 이것을 확인했는데 실제로 Ubuntu 컴퓨터는 없지만 동일하게 작동해야한다고 생각합니다 (적어도 xdg-open의 경우 파일 관리자가 다른 논리를 사용하도록 선택할 수 있음에 유의하십시오).

  1. MIME 유형 문자열을 찾으십시오. 파일 MIME 유형의 경우 file 명령을 사용 하여 찾을 수 있습니다 .

    $ file -i Broken_Blossoms.webm 
    Broken_Blossoms.webm: video/webm; charset=binary
    $
    

    위의 파일에서 MIME 형식은 video/webm입니다.

    URI 핸들러의 경우 유형은입니다 x-scheme-handler/<scheme>. 여기서 <scheme>콜론 앞의 URI 부분은 "http", "mailto" "irc"또는 "magnet"입니다. 다음은 유효한 MIME 유형의 예입니다.

    x-scheme-handler/http
    x-scheme-handler/irc
    x-scheme-handler/magnet
    x-scheme-handler/mailto
    
  2. 응용 프로그램 .desktop 파일의 이름을 찾으십시오.

    종종 "공식"이름과 동일하지 않지만 소문자 버전이거나 완전히 다른 이름입니다. 설치된 .desktop 파일은 / usr / share / applications에 있습니다. 파일은 일반 텍스트 파일이며 "공식"이름을 포함하므로 다음 명령이 도움이 될 수 있습니다.

    $ grep "Transmission" -l -r /usr/share/applications
    /usr/share/applications/transmission-gtk.desktop
    $
    

    이 명령은 "이 디렉토리 아래에 'Transmission'이라는 단어가 포함 된 파일을 나열합니다"를 의미합니다. 일부 응용 프로그램은 사용자에게만 설치 될 수 있으며이 경우 경로는입니다 ~/.local/share/applications.

    파일이 전혀 없을 수있는 "이상한"응용 프로그램이있는 경우 언제든지 응용 프로그램을 만들어 응용 프로그램 개발자에게 보낼 수 있습니다. 쉬운 방법은 기존 필드를 복사하고 이해 한 필드를 다시 쓰고 모르는 필드를 제거하는 것입니다. 자세한 내용은 사양 을 참조하십시오.

  3. xdg-mime 명령을 사용 하여 지정하십시오 .

    $ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet
    $
    

    파일의 실제 위치 (/ usr / share / applications, ~ / .local / share / applications ...)에 관계없이 항상 전체 경로가 아닌 name 만 사용 합니다.

    일반적으로 명령은 아무것도 출력하지 않습니다. 방금 수행 한 작업을 확인하거나 열지 않고 현재 MIME 유형에 할당 된 항목을 보려면 :

    $ xdg-mime query default x-scheme-handler/magnet
    transmission-gtk.desktop
    $
    

참고 1 : 다른 MIME 유형을 확인하려면 /etc/mime.types를 확인하십시오. 세계의 모든 유형을 포함하지는 않습니다. 예를 들어, URI 처리기는 연결을 처리하는 "공격적"형태로 사용될 수 있습니다. 예를 들면 다음과 같습니다.

grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop

알려진 모든 비디오 형식을 VLC에 연결합니다.

참고 2 : .desktop 파일에는 종종 MimeType필드를 사용하여 처리 할 수 ​​있다고 주장하는 MIME 유형 목록이 포함됩니다 . xdg-mime 매뉴얼 페이지에 따르면 위에서 언급 한 명령이 작동하기 전에 .desktop 파일이 MIME 유형을 요구해야하지만 필드가 누락 된 경우에도 작동하는 것 같습니다. (제대로, 연결이 적용되고 응용 프로그램이 시작됩니다. 실제로 유형을 처리 할 수 있다면 다른 질문입니다). 단점이 무엇인지 잘 모르겠습니다 (앞으로 xdg-mime 이 더 제한적일 수 있습니다).


wiki.archlinux.org/index.php/xdg-open 은 다소 비슷 합니다. 여전히 좋은 곳입니다.
shirish

이 답변이 가장 좋습니다. 팁 : 1) xdg-mime query filetype FILEMIME 유형을 찾는 XDG 방법입니다. 2) 또한 기본값을 직접 편집하여 더 체계적으로 유지하고 나중에 백업 할 수 .config/mimeapps.list있습니다. 파일입니다.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

@frank, xdg -mime이 어떻게 "더 잘 작동하는지"설명 할까? IMO 파일 은 MIME 유형에 대한 자동 도구이며, xdg-mime query filetype xyz.wbemOTOH는 정보를 적게 제공하고 입력하기가 더 쉽습니다 .
Alois Mahdal

1
데스크톱 파일의 유일한 이름을 사용하는 좋은 설명과 팁은 내가 찾고있는 솔루션이었습니다!
안드레아 Richiardi

1
이 조언은 마침내 리눅스에서 슬랙 데스크탑 앱을 사용하여 로그인 할 수없는 문제를 해결하는 데 도움이되었습니다. 슬랙은 브라우저로 리디렉션되지만 브라우저는 URI 구성표를 사용하여 슬랙으로 다시 리디렉션합니다. 귀하의 팁으로 느슨한 URI xdg-mime 매핑이 사라 졌음을 알 수있었습니다. 한 시간 동안 검색 한 후 이것을 발견하게되어 기쁩니다! 고맙습니다!
pestophagous

2

postmanChrome 확장 프로그램이 아닌 수동으로 설치된 Postman 앱 과 링크 를 연결 하여 브라우저에서 postman 문서를 다음과 같이 열 수 있도록하려고했습니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

연결하려는 링크는 다음과 같습니다.

postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...

연결을 수행하기 위해 다음 단계를 수행했습니다.

  1. 에 수동으로 앱 설치 (tar.gz 다운로드 및 압축 풀기) /home/andrzej.rehmann/software/postman/
  2. 에 데스크탑 파일 생성 /usr/share/applications/Postman.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Postman
Icon=/home/andrzej.rehmann/software/postman/app/resources/app/assets/icon.png
Exec="/home/andrzej.rehmann/software/postman/Postman" %u
Comment=Develop with pleasure!
Categories=Development;
Terminal=false
StartupWMClass=Postman
  1. 다음 postman을 실행 하여 xdg 링크를 애플리케이션과 연관 시키십시오 .

xdg-mime default Postman.desktop x-scheme-handler/postman


누군가 관심이 있다면이 구성을 사용하도록 설정했습니다 : https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml

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