xdg-open comportamento predefinito delle applicazioni


13

Quando non ho defaults.liste mimeapps.list, si xdg-openapre text/plaincon gvim. Ma quando creo defaults.listin /usr/share/applications/e aggiungi le seguenti righe:

[Default Applications]
text/plain=emacs.desktop

apre i file di testo con Firefox.

Tuttavia, se mi sposto /usr/share/applications/defaults.listin ~/.local/share/applications/mimeapps.list, apre i file di testo emacscome previsto.

Le mie domande:

  1. Come xdg-opendetermina quale applicazione avviare quando non c'è defaults.liste mimeapps.list?
  2. Perché xdg-opensto usando Firefox quando scrivo semplicemente /usr/share/applications/defaults.list?

Sto usando Arch Linux.


1
Uso Openbox. Inoltre, ho notato un /usr/share/applications/mimecache.infofile che sembra elencare le applicazioni predefinite. È ancora più confuso ...
Gradiente

1
Ho trovato questo file di configurazione in~/.config/mimeapps.list
Sam Mason il

Risposte:


23

Se si utilizza xdg-openper aprire le applicazioni, utilizzare xdg-mimeper impostare l'applicazione predefinita per un determinato tipo di mime (in genere, l'installazione di xdg-utils fornisce xdg-mime e i relativi programmi).

Ad esempio, per vedere il "tipo di file" (tipo mime, se vuoi) di un determinato file:

$ xdg-mime query filetype tmp.txt
text/plain

$ xdg-mime query filetype foo.pdf 
application/pdf

$ xdg-mime query filetype $PWD
inode/directory

Esempio di modifica del file manager predefinito per l'apertura delle directory (è possibile scegliere caja.desktop (impostazione predefinita per mint), nautilus.desktop (ubuntu), ecc .:

$ xdg-mime default Thunar.desktop inode/directory

E anche locate -i foo.desktopper verificare che foo.desktopin realtà esista.

Più precisamente, al fine di vedere qual è l'editor di testo predefinito,

$ xdg-mime  query default text/plain 
gedit.desktop

Per utilizzare un diverso editor di testo predefinito (di nuovo, verificando l'esistenza del file ".desktop"):

$ locate -i vim.desktop
/usr/share/applications/gvim.desktop

$ xdg-mime default gvim.desktop text/plain

Ora, fare doppio clic su "foo.txt" (nel file manager GUI) o in esecuzione xdg-open foo.txtutilizzerà gvimal posto di gedit.

Risoluzione dei problemi: assicurarsi che sia possibile trovare il file ".desktop" per una determinata applicazione, poiché deve essere utilizzato con l' xdg-mimeutilità; per esempio,

$ xdg-mime default emacs text/plain 
xdg-mime: malformed argument 'emacs', expected *.desktop

Inoltre, ciò non funziona silenziosamente come previsto se il file ".desktop" non esiste:

$ locate -i emacs.desktop
(none)

$ xdg-mime default emacs.desktop text/plain  # won't work

Il file ".desktop" di emacs attuale (nel mio env):

$ locate -r 'emacs.*\.desktop'
/usr/share/applications/emacs24.desktop

$ xdg-mime default emacs24.desktop text/plain  # does work

Vedi anche: https://wiki.archlinux.org/index.php/xdg-open


3
Anni dopo, ma grazie! Qualche sviluppatore ha messo una brutta battuta nel vino, deve aver pensato "se vuoi davvero riprendere un po 'di quel dolore di Windows, dovresti avere tutto per non diventare mai nostalgico!" E dal momento che tutti i programmi X11 avviano un clone del blocco note quando si aprono file di testo. L'apertura di file da un'applicazione è rara per me, ma il blocco note fa davvero male. Con il tuo aiuto sono tornato indietro.
flaschenpost,
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.