Làm thế nào để lệnh xdg-open biết ứng dụng nào sẽ sử dụng để mở tệp?


21

Tôi mong đợi lệnh xdg-open sẽ sử dụng cùng một ứng dụng mở khi tôi bấm đúp vào tệp trong trình quản lý tệp mặc định, nhưng điều này không phải lúc nào cũng đúng.

Ví dụ: DE của tôi là XFCE, trình quản lý tệp của tôi là Thunar và trình xem ảnh mặc định của tôi là Ristretto. Tuy nhiên, xdg-open example.pngmở tệp ví dụ PNG trong Pinta. Tại sao?

Câu trả lời:


23

xdg-open là một công cụ độc lập với máy tính để bàn để định cấu hình các ứng dụng mặc định của người dùng. Nhiều ứng dụng gọi lệnh xdg-open bên trong. Trong môi trường máy tính để bàn (như Gnome, KDE hoặc Xfce), xdg-open chỉ đơn giản chuyển các đối số cho ứng dụng mở tệp của môi trường máy tính để bàn đó (ví dụ: gvfs-open, kde-open hoặc exo-open). có nghĩa là các hiệp hội được để lại cho môi trường máy tính để bàn. Khi không phát hiện thấy môi trường máy tính để bàn (ví dụ: khi người ta chạy trình quản lý cửa sổ độc lập như vd. Openbox), xdg-open sẽ sử dụng các tệp cấu hình của chính nó.

từ archwiki

cụ thể cho câu hỏi của bạn, bạn có thể thử điều này để đặt ứng dụng mặc định được liên kết với tệp png:

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

bạn cần tìm hiểu chính xác tên tập tin máy tính để bàn của Ristretto. Sau đó, bạn có thể kiểm tra nó với điều này:

xdg-mime query default image/png

1
Đây có thể được coi là một câu trả lời chính thức nhưng nó không thực sự giải thích hiện tượng tôi đã đề cập.
Ivan

đã cập nhật, vui lòng kiểm tra lại
oxnz

Cảm ơn. Và điều này rất buồn cười: xdg-mime query default image/pngtrả về wine-extension-png.desktop:-)
Ivan

2

@Ivan Điều đó có thể xảy ra, bởi vì bạn đã không cung cấp đúng kiểu tệp khi yêu cầu ứng dụng mặc định. Quan trọng là cách xdg gọi loại tệp cụ thể đó. Điều này có thể dễ dàng được tìm ra bằng cách chạy

xdg-mime query filetype example.png

Ví dụ, nếu tôi làm điều này với một tệp png cụ thể trên máy tính của mình thì nó sẽ trả về image/x-apple-ios-png. Khi bạn đã tìm ra loại tệp thực tế, bạn có thể chạy

xdg-mime query default <new filetype>

và nhận ứng dụng được xdg sử dụng cho loại tệp cụ thể này. Trong trường hợp không có ứng dụng nào được xác định cho kiểu tệp này, xdg-open sẽ kiểm tra xem tệp /etc/debian_versioncó khả dụng hay không, nếu đây là trường hợp, nó sẽ khởi chạy run-mailcap, rất giống với xdg-open và cũng cố gắng tìm một chương trình để mở tệp .

Chỉ khi điều này không thành công, xdg-open sẽ yêu cầu người dùng xác định chương trình để mở tệp.


Đó không phải là những gì oxnz đã viết?
Jeff Schaller

oxny chỉ đề cập đến cách thiết lập và kiểm tra ứng dụng cho một kiểu tệp đã biết. Anh ta thiếu tham chiếu để xdg-mime query filetype example.pngkiểm tra kiểu tệp của một tệp cụ thể, vì đơn giản giả sử rằng tệp .png cũng rơi vào danh mục hình ảnh / png không phải lúc nào cũng đúng. Nhìn vào ý kiến ​​của Ivan , tôi nghĩ rằng vấn đề của anh ấy chưa được giải quyết.
tán thành
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.