Open ManuelSchneid3r opened 3 months ago
Now that I know that there is a related intentapp draft and a terminal intent I'll have to get an opinion before starting discussions.
I though a while about it and also discussed it on the xdg mailing list and came to the conclusion that it makes sense to add X-EcecArg
, even in the advent of the terminal intent.
Running a command in a terminal from another app is a common usecase. Almost all terminals provide such a command execution interface (
-e
,-x
,--
or such). Clients can guess, but they cant know it for sure. If it can break, it will break.There is a freedesktop spec proposal that tries to standardize the way we configure a default terminal for command execution. It implicitly solves the above problem. Its as simple as that: the app/package provides this info.
To support it you simply need to add
X-ExecArgs
orExecArgs
(the reference implementation respects both) to the desktop file (like this) and make sure there isTerminalEmulator
inCategories
. It has not yet been approved (therefore theX-
) but heyExecArgs
does not conflict any standard key and if it will be approved you dont have to change it again.As an elaborative example see how GNOME terminal does it: https://github.com/GNOME/gnome-terminal/commit/f1814cb7ecfe6a5cb4f629dcea56db0dec10a242
This will help making Linux a better user experience and a less annoying developer experience.
Thank you
PS: The draft states that the default will be
-e
and you might think "okay, done" if your ExecArg is-e
. I recommend to add it anyway because then you are on the safe side if the final spec does not fall back to-e
. I guess (hope) there will be no default. You might also think "Why that early if it's a draft?". Correct, but if you do so, I will give you a grateful hug should we ever meet in real life because I am the maintainer of that frustrating list linked in the beginning. If you do so I can wipe your entry from the list :heart:. Also this proposal is a good thing and we should all push it.