파이어 폭스는 파일을 열기위한 "기본"응용 프로그램을 어디서 얻습니까?


12

기본적으로, FreeBSD 11.0-CURRENT의 Firefox (33.0)에는 PDF 파일을 Inkscape로 설정하는 기본 응용 프로그램이 있습니다. 파이어 폭스는 내 이전 선택 기억하지 명시하다를 "무엇을 파이어 폭스는이 파일을해야합니까?"에, 대화 상자, 그래서 최근 까지이 구성의 출처가 혼란 스럽지만 거의 신경 쓰지 않았기 때문에 대부분 무시했습니다.

그러나 최근에 Zotero를 내 문헌 데이터베이스로 사용하기 시작했습니다. Zotero는 firefox 플러그인으로 실행되며 Firefox 환경 설정에서 선택한 사항을 무시하고 PDF 파일을 evince로 열거 나 파일로 수행 할 작업을 묻고 Inkscape를 사용하여 엽니 다. 이로 인해 Firefox의 특정 구성 항목에 대한 후속 조치를 시도했지만 해당 기본값이 설정된 위치를 찾을 수 없었습니다.

홈 디렉토리의 Firefox 관련 파일에서 문자열 Inkscape(또는 inkscape)을 찾을 수 없습니다 .



내 Firefox 기본값은 Font-Viewer로 설정되어 있습니다.
사용자

답변:


14

“유사한 질문”( xdg-open 기본 응용 프로그램 동작 – 분명히 관련되지는 않았지만 일부 실험에서 동작이 실제로 다음 중 하나와 동일 함 xdg-open)에 대한 링크가 토끼 구멍을 더 깊게 이끌었습니다. Firefox는에 의존하거나 규칙을 상속받지 않지만 xdg-openMIME 사양 파일을 그대로 사용합니다 xdg-open.

사용자별로 MIME 열기 동작은 사양 파일에 의해 구성됩니다 ~/.local/share/applications/mimeapps.list.

나 에게이 파일에는 몇 가지 합리적인 프로토콜과 HTML (및 유사한) 파일이 연결되어 userapp-Firefox-??????.desktop있지만 다음과 같은 줄을 쉽게 추가 할 수 있습니다

application/pdf=evince.desktop

이 문제를 사용자별로 해결합니다. 파일이 아직 없으면 다음과 같은 섹션 헤더를 추가하십시오.

[Default Applications]
application/pdf=evince.desktop

더 자세하게는 MIME 유형이 정의되어 있습니다 /usr/local/share/applications/mimeinfo.cache(이것은 /usr/share/…FreeBSD 시스템이 아닌 경우 일 수 있음 ) application/pdf=inkscape.desktop;evince.desktop;. evince.desktopinkscape.desktop해당 폴더에 모두 포함되어 있습니다 MimeType=[…]application/pdf;[…].

이 파일은 잘 정의 된 순서없이 파일에 mimeinfo.cache나열된 MIME 유형에서 자동으로 생성 .desktop되므로 Inkscape에서 PDF MIME 유형을 제거 update-mime-database하고을 사용하여 캐시를 재생성 하거나 mimeapps.list (전역에서 /usr/local/share/applications/또는 ~/.local/share/applications/mimeapps.list) 의 사용자를 위해


고대 데비안 리눅스에서는 update-mime-database다른 일이 필요했습니다 update-desktop-database ~/.local/share/applications.
Palec

또한 xdg-open file.pdf노틸러스와 마찬가지로 Evince를, Firefox는 xpdf를 엽니 다. 를 사용하여 find ~/.local/share/applications/ /usr/share/applications/ -type f -exec grep -i pdf '{}' +PDF는 사용자 구성에서 파일 /usr/share/applications/mimeinfo.cache및 해당 *.desktop파일 에서만 언급되지 않습니다 . 의 줄은 mimeinfo.cache입니다 application/pdf=xpdf.desktop;evince.desktop;xournal.desktop;. FF가 첫 번째 항목을 취하는 것 같습니다. 그러나 xdg-open내가 Evince을 원하는지 어떻게 알 수 있습니까?
Palec

1
사용하여 strace, 그 발견 xdg-open통화를 gnome-open하고 gnome-open읽고 /usr/share/gnome/applications/defaults.list에 대한 심볼릭 링크 인 /etc/gnome-vfs-2.0/defaults.list되는 지정이 application/pdf=evince.desktop. 분명히 바닐라 FF는 그놈 통합이 결여되어 있으므로이 기본 설정을 무시합니다.
Palec

7

그놈 2의 데비안 레니 (Debian Lenny) 아래의 Firefox 38.8.0 ESR에서 XDG 를 통해 연결된 응용 프로그램 ( OP의 답변에 설명되어 있음 )은 라이브러리의 다운로드에서 다운로드 한 파일을 열 때만 사용됨을 발견했습니다.

그리고 심지어 그 구현에서도 xdg-open그놈 관련 경로를 무시하므로 결과가 일치하지 않습니다 (제 경우 /usr/share/gnome/applications/defaults.list에는에 대한 링크 /etc/gnome-vfs-2.0/defaults.list). application/pdf=evince.desktop내 에서 지정해야 했습니다 ~/.local/share/applications/defaults.list. ( 최신 버전의 XDG에서 defaults.list병합되었습니다 mimeapps.list.)

XDG 대신 메타 메일 기능 (mailcap) 을 사용하여 다음 사용 사례에서 관련 응용 프로그램을 해결합니다.

  • 다운로드 패널에서 다운로드 한 파일 열기 (도구 모음에서 다운로드 버튼을 누른 후 표시됨)
  • 파일 다운로드 대화 상자의 드롭 다운에있는 기본 응용 프로그램
  • 기본 설정 → 응용 프로그램 ( about:preferences#applications) 의 드롭 다운에 기본 응용 프로그램이 있습니다.

기본 설정은 about:preferences#applications다운로드를 강요하지 않는 한 해당 컨텐츠 유형의 URL을 탐색 할 때 사용됩니다.

Mailcap은 XDG보다 오래된 메커니즘이며 전자 메일에 뿌리를두고 있으며 MIME의 출처이기도합니다. 이 run-mailcap유틸리티는와 유사합니다 xdg-open. 구성은 세 개의 파일로 구성됩니다 (우선 순위가 낮아짐).

  • ~/.mailcap — 사용자 항목
  • /etc/mailcap.order — 시스템 전체 항목 주문 사양
  • /etc/mailcap — 시스템 전체 항목 (사용자 항목과 동일한 형식)

이들은 함께 주어진 MIME 유형에 사용될 응용 프로그램을 지정하는 한 줄 항목 목록을 생성합니다. 항목은 하향식으로 일치하므로 먼저 오는 것이 우선합니다.

시스템 전체에서 항목을 변경하려면 우선 편집 /etc/mailcap.order하고 실행 해야 합니다 update-mime.

일부 항목을 대체하거나 시스템 전체에 고유 한 항목을 지정하려면의 맨 위 섹션 (수동으로 작성된 항목의 평균)을 편집 /etc/mailcap하고 실행해야 update-mime합니다. 상단 섹션의 주석을 참조하십시오.

사용자 입력 및 재정의에는을 사용하십시오 ~/.mailcap. 변경 사항이 즉시 적용됩니다. ~/.mailcap.order존재 하지 않습니다. 항목 우선 순위를 변경하려면 물리적으로 항목을 재정렬하거나 (있는 경우 ~/.mailcap) 선호하는 버전으로 재정의합니다 (있는 경우 /etc/mailcap).

를 참조하십시오 man update-mime, man mailcap하고 man mailcap.order.

일부 응용 프로그램 은 기본 응용 프로그램을 감지하는 대신 일반 유틸리티 (예 : x-www-browser또는 pager)를 사용합니다. update-alternatives배포판에서 일반 유틸리티의 기본 구현을 선택하기 위해 이와 유사한 메커니즘 을 사용해야 할 수도 있습니다 . 또는, 특정 사용자에 대한 시스템 전체의 바람직한 대안을 대체 같은 일련의 환경 변수 EDITOR(또는 VISUAL) PAGERBROWSER. 이 sensible-browser도구는 종종 더 구체적인 도구 (예 : git commit용도 EDITORVISUAL)에서 지원합니다.


1
이 답변은 Firefox Quantum (64.0)에서는 유효하지 않습니다. 그러나 mailcap은 실제 firefox보다 성능이 우수하므로 run-mailcap --debug --norun을 완전히 사용할 수는 없습니다. 다음과 같은 항목이 application/pdf; sh -c "MEANINGFUL_VAR=preset /usr/bin/evince '%s'"있습니다.. 그런 다음 Firefox는을 호출합니다 sh downloaded_file.pdf. 내 콘솔에서 나는 다른 사람들 사이에서 볼 수 있습니다 /tmp/mozilla_user/downloaded_file.pdf: line 3: 5: command not found. 누군가가 이것을 고치지 않으면이 동작은 영원히 유지됩니다. Mozilla Bugzilla를 참조하십시오 .
u_Ltd.

1
따라서 사용자에게 일관된 경험을 제공하기 위해 데비안과 그놈의 조합을 배포하는 관리자는 update-mime(mailcap 업데이트), xdg-settings(xdg-open 업데이트) gio(그놈 열기 업데이트) 및 update-alternatives(소위 일반 유틸리티 업데이트). 물론 시스템 전체와 각 사용자에 대한 설정을 별도로 관리하는 것을 잊지 않아야합니다 (아마도 기본값을 변경하는 사용자의 능력을 차단하는 것이 가장 좋습니다) ...-아, FF의 handlers.json 파일 : mzl.la/1xKrLAq
zenlord
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.