Come fa il comando xdg-open a sapere quale applicazione utilizzare per aprire un file?


21

Mi aspetto che il comando xdg-open utilizzi la stessa applicazione che si apre quando faccio doppio clic sul file nel file manager predefinito, ma questo non è sempre vero.

Ad esempio il mio DE è XFCE, il mio file manager è Thunar e il mio visualizzatore di immagini predefinito è Ristretto. Tuttavia, xdg-open example.pngapre il file PNG di esempio in Pinta. Perché?

Risposte:


23

xdg-open è uno strumento indipendente dal desktop per la configurazione delle applicazioni predefinite di un utente. Molte applicazioni invocano internamente il comando xdg-open. All'interno di un ambiente desktop (come GNOME, KDE o Xfce), xdg-open passa semplicemente gli argomenti all'applicazione di apertura file di quell'ambiente desktop (es. Gvfs-open, kde-open o exo-open). ciò significa che le associazioni sono lasciate all'ambiente desktop. Quando non viene rilevato alcun ambiente desktop (ad esempio quando si esegue un gestore di finestre autonomo come ad esempio Openbox), xdg-open utilizzerà i propri file di configurazione.

da archwiki

specifico per la tua domanda, puoi provare questo per impostare l'applicazione predefinita associata al file png:

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

devi scoprire quale sia esattamente il nome del file desktop di Ristretto. successivamente, puoi verificarlo con questo:

xdg-mime query default image/png

1
Questa può essere considerata una risposta formale, ma in realtà non spiega il fenomeno che ho citato.
Ivan, il

aggiornato, si prega di controllare di nuovo
oxnz il

Grazie. E questo è molto divertente: xdg-mime query default image/pngritorna wine-extension-png.desktop:-)
Ivan il

2

@Ivan Ciò accade probabilmente perché non hai fornito il tipo di file giusto quando hai richiesto l'applicazione predefinita. Importante è come xdg chiama quel tipo di file specifico. Questo può essere facilmente scoperto eseguendo

xdg-mime query filetype example.png

Ad esempio, se lo faccio con un file png specifico sul mio computer, ritorna image/x-apple-ios-png. Una volta individuato il tipo di file effettivo, è possibile eseguire

xdg-mime query default <new filetype>

e ottieni l'applicazione utilizzata da xdg per questo specifico tipo di file. Nel caso in cui non sia stata definita alcuna applicazione per questo tipo di file, xdg-open controlla se il file /etc/debian_versionè disponibile, in questo caso verrà avviato run-mailcap, il che è molto simile a xdg-open e tenta di trovare anche un programma per aprire il file .

Solo se anche questo non riesce, xdg-open chiederà all'utente di definire un programma per aprire il file.


Non è quello che Oxnz ha già scritto?
Jeff Schaller

oxny menziona solo come impostare e verificare l'applicazione per un tipo di file noto. Manca il riferimento per xdg-mime query filetype example.pngverificare il tipo di file di un file specifico, perché semplicemente supponendo che un file .png rientri nella categoria image / png non è sempre corretto. Osservando i commenti di Ivan , penso che il suo problema non sia stato ancora risolto.
lauve
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.