Package: xdg-utils
Version: 1.1.3-1
Severity: normal
Control: affects -1 gimp dekstop-file-utils xapers
Control: blocks 525077 by -1

different apps install .desktop files that contain a MimeType entry
that includes the same mime-types.

for example:

0 dkg@alice:~$ grep -l '^MimeType=.*application/pdf' 
/usr/share/applications/*.desktop 
/usr/share/applications/gimp.desktop
/usr/share/applications/libreoffice-draw.desktop
/usr/share/applications/mupdf.desktop
/usr/share/applications/okularApplication_pdf.desktop
/usr/share/applications/org.gnome.Evince.desktop
/usr/share/applications/org.inkscape.Inkscape.desktop
/usr/share/applications/pdf-presenter-console.desktop
0 dkg@alice:~$ 

Since all of these applications *can* handle a pdf file, they are all
right in doing so (i believe it makes it possible for drag-and-drop to
target an icon derived from the .desktop file based on the mime-type
of the dragged object, for example).

Then, /usr/bin/update-desktop-database (from desktop-file-utils)
gathers all these together and makes a list of them in
/usr/share/applications/mimeinfo.cache.  When it does so, it sorts
them ASCIIbetically (for lack of any better sorting technique):

https://sources.debian.org/src/desktop-file-utils/0.24-1/src/update-desktop-database.c/?hl=43#L310

Then, xdg-open reads this file and picks the first one.

This means that on my system, "xdg-open foo.pdf" will launch
/usr/bin/gimp.

That's clearly the wrong choice.

Presumably, on a desktop system like mine, a sensible priority is
something like:

  * evince or ocular (dedicated, full-fledged pdf viewer apps)
  * pdf-presenter-console or mupdf (specialized custom pdf renderers)
  * libreoffice-draw or inkscape or gimp (apps capable of editing single pages 
of a pdf)

The current default (having "xdg-open foo.pdf" launch gimp) is just
not credible or user-friendly (as evident in the now decade-old and
resolved https://bugs.debian.org/525077.  It also affects new projects
like xapers, which delegates opening of pdfs to xdg-open.

I don't know where else these priorities should live if not in
xdg-utils.  In the absence of some more sensible distributed priority
system, i think xdg-utils needs to step up and maintain these
mappings.

This doesn't sound like a fun task, but it's looks like the only way
for xdg-open to do a sensible thing by default, which is presumably
what it is supposed to do.

Thanks for maintaining xdg-utils in debian!

        --dkg

-- Package-specific info:
Desktop environment: XDG_CURRENT_DESKTOP=

-- System Information:
Debian Release: bullseye/sid
  APT prefers testing-debug
  APT policy: (500, 'testing-debug'), (500, 'testing'), (500, 'stable'), (500, 
'oldstable'), (200, 'unstable-debug'), (200, 'unstable'), (1, 
'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 5.2.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

xdg-utils depends on no packages.

Versions of packages xdg-utils recommends:
pn  libfile-mimeinfo-perl  <none>
ii  libnet-dbus-perl       1.1.0-6
ii  libx11-protocol-perl   0.56-7
ii  x11-utils              7.7+4
ii  x11-xserver-utils      7.7+8

xdg-utils suggests no packages.

-- no debconf information

Reply via email to