Comportamiento predeterminado de las aplicaciones xdg-open

13

Cuando no tengo defaults.listy mimeapps.list, se xdg-openabre text/plaincon gvim. Pero cuando creo defaults.listen /usr/share/applications/y añadir las siguientes líneas:

[Default Applications]
text/plain=emacs.desktop

abre archivos de texto con firefox.

Sin embargo, si me muevo /usr/share/applications/defaults.lista ~/.local/share/applications/mimeapps.list, abre archivos de texto con emacslo esperado.

Mis preguntas:

  1. ¿Cómo xdg-opendetermina qué aplicación lanzar cuando no hay defaults.listy mimeapps.list?
  2. ¿Por qué xdg-openestoy usando Firefox cuando simplemente escribo /usr/share/applications/defaults.list?

Estoy usando Arch Linux.

Degradado
fuente
1
Yo uso Openbox. Además, noté un /usr/share/applications/mimecache.infoarchivo que parece enumerar las aplicaciones predeterminadas. Es aún más confuso ...
Gradiente
1
Encontré este archivo de configuración en~/.config/mimeapps.list
Sam Mason

Respuestas:

23

Si se usa xdg-openpara abrir aplicaciones, luego use xdg-mimepara configurar la aplicación predeterminada para un tipo mime determinado (por lo general, la instalación de xdg-utils le proporciona xdg-mime y programas relacionados).

Por ejemplo, para ver el "tipo de archivo" (tipo mime, si lo desea) del archivo dado:

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

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

$ xdg-mime query filetype $PWD
inode/directory

Ejemplo cambiando el administrador de archivos predeterminado para abrir directorios (podría elegir caja.desktop (predeterminado para mint), nautilus.desktop (ubuntu), etc.

$ xdg-mime default Thunar.desktop inode/directory

Y también locate -i foo.desktoppara verificar que foo.desktopde hecho existe.

Más concretamente, para ver cuál es el editor de texto predeterminado,

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

Para usar un editor de texto predeterminado diferente (nuevamente, verificando que el archivo ".desktop" existe):

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

$ xdg-mime default gvim.desktop text/plain

Ahora, ya sea haciendo doble clic "foo.txt" (el administrador de archivos GUI) o correr xdg-open foo.txtutilizará gvimen lugar de gedit.

Solución de problemas: asegúrese de que se puede encontrar el archivo ".desktop" para una aplicación determinada, ya que debe usarse con la xdg-mimeutilidad; p.ej,

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

Además, esto silenciosamente no funciona como se esperaba si el archivo ".desktop" no existe:

$ locate -i emacs.desktop
(none)

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

El archivo real ".desktop" de emacs (en mi env):

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

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

Ver también: https://wiki.archlinux.org/index.php/xdg-open

Miguel
fuente
3
Años después, pero gracias! Algún desarrollador ha puesto una broma realmente mala en el vino, debe haber pensado "si realmente quieres recuperar algo de ese dolor de Windows, ¡deberías tenerlo todo para nunca sentirte nostálgico!" Y desde entonces, todos los programas X11 inician un clon de bloc de notas al abrir archivos de texto. Abrir archivos desde una aplicación es raro para mí, pero el bloc de notas realmente duele. Con tu ayuda volví un gvim.
flaschenpost