Replies: 26 comments 11 replies
|
Would we also want to support |
|
vote plus for desktop entry files well developed, it's easy to read, easy to capture in bash, easy to edit with text editor.. |
|
creepy yaml? sophisticated json? |
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 :) |
I've done a lot of python programming, so whitespace stuff doesn't bother me.
Why? That's what |
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 :) |
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. |
jq usually needs to be installed it's not a part of posix. and remarkable by default without it as most of the systems. |
|
Right, but that's up to the application to list as a dependency and either require through toltec, or link to a binary. |
|
In theory desktop files should be easy to work with in Qt: https://gist.github.com/zester/1185753 |
|
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. |
Same here, reMarkable is as well.
Yeah, we'd probably just want to support a subset initially. |
|
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 |
|
here it's an old qt4 project there was some implementation maybe it can be helpful despite it is for qt4 |
|
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. |
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) |
|
Do they allow custom types though, or are they assuming that new types should only be added by the official spec? |
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 |
I'd probably define one for all of the Oxide specific settings as well.
I think that ignoring everything without |
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 |
|
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? |
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. |
|
For arrays I guess we can go with space or comma delimited. Map[Field0]=Value0
Map[Field1]=Value1 |
Example of multiple values ("arrays") would be the Actions key below: |
|
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:
|
|
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:
|

Uh oh!
There was an error while loading. Please reload this page.
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:
All reactions