환경없이 'xdg-open'을 적절하고 쉽게 구성하는 방법은 무엇입니까?


63

데스크탑 환경없이 OpenBox 창 관리자 를 사용하고 있습니다 .

xdg-open이상하게 행동합니다. 로 모든 것을 엽니 다 firefox.

$ xdg-settings --list
Known properties:
  default-web-browser           Default web browser

간단한 프로그램을 찾고 있습니다. 폴더의 모든 *.desktop파일을 읽고 /usr/share/applications/xdg 설정을 자동으로 설정하는 것과 같은 것 입니다.


사용 xdg-mime(일부 것은 xdg-utils) (구성, 질의) 작업을위한 최선의 대답이다 xdg-open. 참조 unix.stackexchange.com/questions/8793/...
마이클

답변:


24

당신이 사용할 수있는 펄 파일 mimeinfo을extraMIME 형식을 관리하는 저장소.

모든 .pdf파일 을 여는 예 apvlv:

/usr/bin/vendor_perl/mimeopen -d $file.pdf

그런 다음 프롬프트에서 애플리케이션을 입력하십시오 apvlv..


효과가있다. 그러나 파일 만 열립니다. 따라서 xdg-open왼쪽 구성 xdg-open되지 않은 응용 프로그램 은 파일을 올바르게 열지 않습니다.
kravemir

나는 당신의 의견을 따르지 않습니다. 작동하지 않는 것은 무엇입니까? -d스위치는 기본을 설정합니다. 따라서이를 사용하여 열면 원하는 응용 프로그램 fileA.pdf으로 열 수 있습니다 fileB.pdf.
jasonwryan

1
예. mimeopen -d a.pdf기본값을 설정 *.pdf하지만 자체 기본값을 설정 mimeopen b.pdf합니다. 그러나 xdg-open구성은 변경되지 않고 여전히 모든 것을 열어줍니다 firefox: /
kravemir

3
내가 함께 기본을 설정 한 후 mimeopen, xdg-open예상대로 동작 -의 경우 .pdfS, 그것은 그들을 열립니다 apvlv.
jasonwryan

1
루 분투 16.04에서는 작동하지 않습니다. sudo xdg-mime default pluma.desktop text/plain준다 touch: cannot touch "/home/user/.local/share/applications/mimeapps.list": No such file or directory /usr/bin/xdg-mime: 807: /usr/bin/xdg-mime: cannot create /home/user/.local/share/applications/mimeapps.list.new: Directory nonexistent; /usr/bin/vendor_perl/mimeopen -d $file.txt제공합니다 bash: /usr/bin/vendor_perl/mimeopen: No such file or directory.
Nickolai Leschov

62

xdg 자체의 유틸리티를 사용하지 않는 이유는 무엇입니까?

Thunar를 기본 파일 브라우저, 즉 폴더를 열기위한 기본 응용 프로그램으로 만들려면

$ xdg-mime default Thunar.desktop inode/directory

xpdf를 기본 PDF 뷰어로 사용하려면 :

$ xdg-mime default xpdf.desktop application/pdf

로컬 MIME 데이터베이스에 항목을 작성해야합니다.

~/.local/share/applications/defaults.list
[Default Applications]
application/pdf=xpdf.desktop

PDF 파일이 xpdf로 열립니다.



2
가장 유용한 답변입니다. 감사합니다. 알기 쉬우 defaults.list므로 필요한 경우 손으로 간단하게 편집 할 수 있습니다.
mVChr 2016 년

어떤 이유로 xdg-mime수정하지 않았지만 defaults.list수동으로 편집하면 (이 답변의 힌트 덕분에) 트릭을 수행했습니다.
Skippy le Grand Gourou

참고로 Perl 종속성이 거의 필요하지 않으므로 설치해야합니다. RPM / DEB 배포판은 이들을 정상적으로 설치합니다.
lzap

2
보인다 defaults.list지금이라고합니다 mimeapps.list. 에 대한 유효한 위치 목록은 Arch Wiki 를 참조하십시오 mimeapps.list.
Mateen Ulhaq

7

데비안에서는 루트로 명령을 사용할 수 있습니다

update-mime-database /usr/share/mime

가진 shared-mime-info설치 패키지를.


2
나는 그것을 시도했다. 작동하지 않습니다. 나는 아치를 실행하고 있습니다.
kravemir

-1 이것은 GNOME과 같은 공유 마임 정보에 의존하는 데스크톱 환경에 고유 한
craymichael

7

이와 같은 것을 사용 xdg-mime하여 각 .desktop파일과 파일에 포함 된 mimetype에 적합한 명령 을 생성 한 다음 원하는 것을 실행할 수 있습니다. 참고 /usr/share/applications하위 디렉토리가있을 수 있습니다.

for dd in /usr/share/applications ~/.local/share/applications; do
  for d in $(ls $dd 2>/dev/null | grep "\\.desktop$"); do
    for m in $(grep MimeType $dd/$d | cut -d= -f2 | tr ";" " "); do
      echo xdg-mime default $d $m;
    done;
  done;
done

3

이것은 @ aleb 's answer 와 비슷하지만 공백이있는 데스크탑 파일에서 작동합니다.

find /usr/share/applications ~/.local/share/applications -iname '*.desktop' -print0 | while IFS= read -r -d $'\0' d; do
  for m in $(grep MimeType "$d" | cut -d= -f2 | tr ";" " "); do
    echo xdg-mime default "'$d'" "'$m'"
  done
done
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.