A path to xdg-utils2 in python
Vladimir Kudrya
vladimir-csp at yandex.ru
Thu Feb 28 06:04:04 UTC 2019
Hi!
I think I'll throw in a couple of thoughts about xdg-open, accumulated
over a long process of creating a custom KISS-oriented Openbox-based
environment for office and personal use.
The most paradoxical situation with xdg-open is that it is a mishmash of
DE-specific hacks condensed into a single script while there exists a
very flexible MIME Apps Spec that in theory covers DE-specific behavior
and interplay between DEs at the level of config hierarchy. Also the
current version of the Spec allows DE to be completely dynamic. In my
view the reason for the growth of workarounds in xdg-open is that
open_generic() function at times lagged behind the Spec and could not
provide needed flexibility. At times a new or custom DE had to de-facto
be "registered" in upstream xdg-open code to work. Given the state of
the Spec now this no longer should be needed.
If you, or anyone, are going to reimplement xdg-open, this would be a
great opportunity to drop DE-specific hacks in the code altogether and
force DEs to use '$desktop-mimeapps.list' elements of the config
hierarchy. Because things like hadcoding pcmanfm in open_lxde() look
really ugly.
If special logic would be needed anyway (and this should be officially
discouraged, IMHO), don't put it into xdg-open itself, but into
something like /lib/xdg-open/$desktop for xdg-open to hook on demand.
This would shift more power downstream and make packagers and admins happy.
On 28/02/2019 03.08, Simon Lees wrote:
> Hi,
>
> For those who don't know me, I am currently the xdg-utils maintainer
> for SUSE / openSUSE.
>
> Given that SUSE is in a year where where SUSE doesn't have any major
> releases scheduled I have a bit of extra time, I am also sick of
> fixing errors with desktop file / mime handling in posix shell. People
> on this list have in the past discussed the idea of rewriting
> xdg-utils in python oneday if someone has the time, I asked my manager
> nicely and I now have the time. As such i've developed the very rough
> plan below that i'll work on carrying out if there's a general
> consensus here that its a sensible way forward. I have been allocated
> a couple of hours a week to work on this.
>
> Stage 1: Implement regression tests for the existing xdg-utils in
> openSUSE's openqa instance, openqa.opensuse.org there is already
> general testing for most desktops here but i'm planning to extend
> these tests with more xdg-utils specific tests.
>
> Stage 2: SUSE has a hackweek (https://hackweek.suse.com) once a year
> where SUSE employees get a week to work on whatever they feel like.
> The dates for this years have not been announced yet but my plan is to
> spend most of that week doing the bulk of the rewrite.
>
> Stage 3: Spend 2 hrs a week implementing the remaining code.
>
> Stage 4: Submit a "beta" version into openSUSE Tumbleweed, given there
> will already be regression tests in openqa by the point its accepted I
> should be pretty confident that most of the major issues should have
> been found and fixed.
>
> Design:
> Where ever possible i'm currently planning to use as much of the
> existing pyxdg libraries especially for handling all the mime /
> .desktop file handling.
>
> In terms of a build system etc other then the thought that we should
> use one I haven't put in much thought but i'm leaning towards setup.py
> or meson but i'd really like to here anyone else's opinion.
>
> I guess another thing to discuss is are there any of the tools that
> are worth removing / not reimplementing because no one is using them
> anymore?
>
> Thats all thats floating around in my head atm, feel free to send
> through your thoughts / suggestions.
>
> Cheers
>
More information about the xdg
mailing list