Replies: 26 comments 11 replies
-
Would we also want to support |
Beta Was this translation helpful? Give feedback.
-
vote plus for desktop entry files well developed, it's easy to read, easy to capture in bash, easy to edit with text editor.. |
Beta Was this translation helpful? Give feedback.
-
creepy yaml? sophisticated json? |
Beta Was this translation helpful? Give feedback.
-
do you think it's not creepy to follow all indentations with text editor (I'm not talking about text processors or complete IDE). I should mention it's IMHO :) About json, try to read it without jq from cosole :) |
Beta Was this translation helpful? Give feedback.
-
I've done a lot of python programming, so whitespace stuff doesn't bother me.
Why? That's what |
Beta Was this translation helpful? Give feedback.
-
Yeah I know ppl like you 😏 my eyes are bleeding when I'm editing python files with mcedit :)
there is small difference. Image files content is "binary", json still text and there is cases when you need to parse it directly :) |
Beta Was this translation helpful? Give feedback.
-
There's your problem ;)
Wouldn't using jq still be a better option? I'm failing to see a scenario that you'd need to parse it directly. |
Beta Was this translation helpful? Give feedback.
-
jq usually needs to be installed it's not a part of posix. and remarkable by default without it as most of the systems. |
Beta Was this translation helpful? Give feedback.
-
Right, but that's up to the application to list as a dependency and either require through toltec, or link to a binary. |
Beta Was this translation helpful? Give feedback.
-
In theory desktop files should be easy to work with in Qt: https://gist.github.com/zester/1185753 |
Beta Was this translation helpful? Give feedback.
-
yeah it's not just in theory, it's really easy :) I can confirm, I'm not using it for desktop files. But I'm using QSettings often for app settings basically the same ini format. |
Beta Was this translation helpful? Give feedback.
-
Same here, reMarkable is as well.
Yeah, we'd probably just want to support a subset initially. |
Beta Was this translation helpful? Give feedback.
-
Python also provides easy support for ini-like files. Could be handy for generating compat Draft & Oxide files from a Python script. EDIT: To be fair, it supports json just as well through https://docs.python.org/3/library/json.html |
Beta Was this translation helpful? Give feedback.
-
here it's an old qt4 project there was some implementation maybe it can be helpful despite it is for qt4 |
Beta Was this translation helpful? Give feedback.
-
One issue with using .desktop files is that existing applications in the *nix ecosystem use them, but expect to be running under X or Wayland. Since we currently are not working towards implementing either, it does cause some problems with having application entries show up that will never run. |
Beta Was this translation helpful? Give feedback.
-
from the spec:
so, if we wanted to, we could still use .desktop and the launchers will have to ignore .desktop files that are of the wrong type. (assuming we use a placeholder type) |
Beta Was this translation helpful? Give feedback.
-
Do they allow custom types though, or are they assuming that new types should only be added by the official spec? |
Beta Was this translation helpful? Give feedback.
-
Even of we don't create a new type, we should probably define a custom group for all of our unofficial settings. The spec suggests the format If that group were missing, we could ignore the file. Also, we could even have a |
Beta Was this translation helpful? Give feedback.
-
I'd probably define one for all of the Oxide specific settings as well.
I think that ignoring everything without |
Beta Was this translation helpful? Give feedback.
-
As discussed during our meeting, it seems that the specification mandates parsers to allow for types other than the three currently documented ones. The concern voiced by @Eeems was that a future update of the standard could add a new type that happens to conflict with ours. Note that the standard recommends that custom field names be prefixed with |
Beta Was this translation helpful? Give feedback.
-
I think we can stick to existing types for the predefined fields and run wild as long as we stick to our own X-Remarkable fields and groups. Are there any standardized fields where a preexisting type doesn't fit for us? |
Beta Was this translation helpful? Give feedback.
-
i believe systemd service files uses repeated keys for arrays, which i'm not sure is in this spec. additionally, there's no map type in this spec. |
Beta Was this translation helpful? Give feedback.
-
For arrays I guess we can go with space or comma delimited. Map[Field0]=Value0
Map[Field1]=Value1 |
Beta Was this translation helpful? Give feedback.
-
Example of multiple values ("arrays") would be the Actions key below:
|
Beta Was this translation helpful? Give feedback.
-
Playing devil's advocate here for a moment to maybe introduce some new points to think about. What do we concretely gain from using the XDG standard here for launcher entries? The standard is also a bit of an odd duck and parsers are obviously not as ubiquitous and popular as toml/ini/json. I can't find one for Lua for example. I see three potential arguments for using XDG's spec:
And counterarguments to these:
|
Beta Was this translation helpful? Give feedback.
-
something I posted on discord the other day: let's say we create a new format (or use an existing one), called F. let's say it is extensible (launchers can have launcher specific options) and supports arrays, maps, etc. if a launcher wants to add a custom option for an app to the app's launcher file, the app package has to be re-built and will cause re-download for everyone. for example, KOReader is 30MB (or whatever). this means that launcher specific option will cause package rebuilds, even if you don't use the launcher. because of the above situation, i think the spec should be minimal and change very slowly. in order to reduce the amount of package updates for software, i even think that launchers should keep their own application specific config in a package like draft-app-config, oxide-app-config or remux-app-config and the launchers join their config data against the launcher data, using a unique ID for the application. then the question becomes: how do launchers promote a shared config option into the shared spec. some further clarifications and opinions:
|
Beta Was this translation helpful? Give feedback.
-
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
It would be nice to consume an existing standard. Hopefully this issue can serve as a place to persist information on why or why not XDG desktop files might be a good fit.
Importantly, I think it is worth mentioning that there are two mechanisms to extend the recognized keys supported by the format:
Beta Was this translation helpful? Give feedback.
All reactions