xdg-open 명령은 파일을 여는 데 사용할 응용 프로그램을 어떻게 알 수 있습니까? 두 번 클릭 할 때

xdg-open 명령이 기본 파일 관리자에서 파일을 두 번 클릭 할 때 열리는 동일한 응용 프로그램을 사용할 것으로 예상하지만 이것이 항상 사실은 아닙니다.

예를 들어, 내 DE는 XFCE이고 파일 관리자는 Thunar이며 기본 사진 뷰어는 Ristretto입니다. 그러나 xdg-open example.pngPinta에서 예제 PNG 파일을 엽니 다. 왜?



답변

xdg-open은 사용자의 기본 응용 프로그램을 구성하기위한 데스크탑 독립적 도구입니다. 많은 응용 프로그램이 xdg-open 명령을 내부적으로 호출합니다. 데스크탑 환경 (GNOME, KDE 또는 Xfce 등) 내에서 xdg-open은 단순히 데스크탑 환경의 파일 오프너 응용 프로그램 (예 : gvfs-open, kde-open 또는 exo-open)에 인수를 전달합니다. 이는 연결이 데스크탑 환경에 남아 있음을 의미합니다. 데스크탑 환경이 감지되지 않는 경우 (예 : Openbox와 같은 독립형 창 관리자를 실행하는 경우) xdg-open은 자체 구성 파일을 사용합니다.

에서 archwiki

질문과 관련하여 png 파일과 관련된 기본 응용 프로그램을 설정하려면 다음을 시도하십시오.

xdg-mime default <ristretto.desktop> image/png

Ristretto의 데스크탑 파일 이름이 정확히 무엇인지 확인해야합니다. 나중에, 당신은 이것으로 그것을 확인할 수 있습니다 :

xdg-mime query default image/png

답변

@Ivan 아마도 기본 응용 프로그램을 요청할 때 올바른 파일 형식을 제공하지 않았기 때문일 수 있습니다. xdg가 특정 파일 유형을 호출하는 방법이 중요합니다. 이것은 쉽게 실행하여 찾을 수 있습니다

xdg-mime query filetype example.png

예를 들어, 컴퓨터의 특정 png 파일 로이 작업을 수행하면을 반환합니다 image/x-apple-ios-png. 실제 파일 형식이 파악되면 다음을 실행할 수 있습니다.

xdg-mime query default <new filetype>

이 특정 파일 형식에 대해 xdg에서 사용하는 응용 프로그램을 가져옵니다. 이 파일 유형에 대해 응용 프로그램이 정의되어 있지 않은 경우 xdg-open은 파일 /etc/debian_version이 사용 가능한지 확인하고,이 경우 파일 이 시작 run-mailcap됩니다. xdg-open과 매우 유사하며 파일을 여는 프로그램을 찾습니다. .

이것이 실패하는 경우에만 xdg-open은 사용자에게 파일을 열 프로그램을 정의하도록 요청합니다.