Re: XDG Default Applications specification proposal

[email protected]
Newsgroups gmane.linux.xdg.devel
Message-ID <20200720110047.GA7761@horizon>
On Thu, 16 Jul 2020 at 22:40:43 -0600, Thayne wrote:
> Perhaps trying to make
> this more general is overcopmlicating it

I suspect it might be.

> and we should just put the
> terminal launching command in a standard place like an
> XDG_TERMINAL_LAUNCHER environment variable

I would prefer not to be doing this via environment variables. Environment
variables propagate between processes (parent to child) in ways that are
not always wanted, and also *don't* propagate between processes at times
that you might want them to propagate (in particular when you launch an
application via D-Bus activation or as a systemd user-service).

> or in a $XDG_CONFIG_HOME/terminal-launcher.sh file.

I would prefer to avoid this, and in any case it doesn't address the need
for a sensible per-desktop default.

I think it might be helpful to take a step back from the implementation
and write down what the requirements are, so that proposed implementations
can be judged against those requirements. Such as:

* Must be user-configurable (overriding desktop and distro defaults)

* Must produce a sensible result without user configuration (installing a
  desktop Linux distribution should have a sensible default)

* Default is desktop-dependent (if the user has not expressed a preference,
  GNOME users expect to see gnome-terminal and KDE users expect konsole)
  - In particular this means things like the Debian /etc/alternatives
    mechanism are unsuitable

* Reading the configuration format should not require linking to specific
  implementation libraries
  - GLib isn't going to want to link to KDE libraries, Qt/KDE isn't going
    to want to link to GNOME libraries, and neither is likely to want to
    become dependent on some desktop-agnostic abstraction layer library
    whose continued maintenance they cannot guarantee

* Different terminals need different arguments to introduce the command
  to execute
  - xterm -e
  - gnome-terminal -x (in old versions)
  - gnome-terminal -- (in new versions)

* Some terminal authors will be unwilling to introduce a D-Bus dependency
  - In particular xterm is unlikely to do this

Many of the requirements are the same as for MIME-type handling, so
many of them can be satisfied by an implementation that mimics MIME-type
handling.

    smcv
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.