-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create a .desktop entry specification to make NSM-client-support discovery reliable and fast #40
Comments
A few applications are already using It is important that this is a boolean value, so that it can be manually set to off if needed. (for example, user override of this value via local files as a way to filter specific entries; could be used also as post-install step in some projects where NSM/liblo is optional at build-time) I wonder if it is useful to also have some string dedicated to NSM servers. |
Regarding custom values in desktop files, see https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#extending
|
A boolean for easy maintenance and packaging is fine. However, it must be ensured that the binary in the desktop file is actually the name that nsmd must use to start the program. By ensured I mean described in the NSM-specs so that programs can use the correct format. |
All things said here seems good to me. It's a good idea to take the key Carla already use.
Humm, I don't see any interest to that... I am not opposite, but I don't see. |
Can we have an example of a proper .desktop file here? Ideally with a more complex or problematic usecase. |
You can see the carla ones at https://github.com/falkTX/Carla/tree/main/data/desktop This is intentional, because the main carla will have its engine mode based on the last used settings. Which can lead to issues when used on a session manager, as the next-loading behaviour will depend on inconsistent prior settings. |
I would like to propose a coordinated effort on getting the desktop file situation in all known nsm-clients, supplemented by me writing this in the API document (as mentioned above). Maybe we choose a week or two to help all clients, writing pull requests etc. Before that I want to mention once more the possibility that the |
It is implemented in Hydrogen: Houston4444/hydrogen#1 Note (minor): In Carla desktop files, the used key is |
Which programs are still missing this key ?
|
We have a list of NSM programs here: |
As we know it is impossible for nsmd to have command line arguments. Now should all starter applications parse the exec string to find out the actual name? That is not trivial. While uncommon spaces are allowed in file names, even executables. This makes it impossible to distinguish them fro a program that e.g. does not use -- or - as parameters. So, we need the explicit exec name that can be used with nsmd. My suggestion is to have that as .desktop entry. Since @falkTX absolutely wants the |
sidenote: amsynth Exec entry is a full path /usr/bin/amsynth. That is standard-conform: |
Nice catch. Using |
Ok, this takes care of problematic chars in the executable name and makes separating by space possible to find the exec name.
But that doesn't solve the absolute path option. And who knows what else is lurking in the XDG specs... So: Explicit is better than implicit. x-nsm-exec sounds robust. On my arch system, with all pro-audio installed, only carla, lupp and guitarix are using the x-nsm-capable key so far. That means for most of the clients the next request, after this all is in the API docs, will be the first request. And not a repeated "change again please!" one. |
The |
Regarding case sensitivity. It MUST be spelled only one way. I've had a look at some XDG libraries, and at least some of them are case sensitive.
NoDisplay is useful for tools that only work with nsm, like jackpatch and nsm-data in Agordejo.
|
At the moment there is no programmatic way parse a system for installed NSM-capable clients.
Internal and IRC discussions about this have been going on for some time, hereby transferred to the public eye.
A proposed solution is a new entry in clients XDG .desktop files. It specifies the command that nsmd should call.
This will be added as a SHOULD-rule in the API docs and it is in the clients best interest.
Support in existent clients will be gained by spreading the word, asking nicely and submitting code-patches.
A GUI can also supplement the list of discovered programs through an internal database. However, this can only be a fallback because it is based on human knowledge.
This has interaction with a potential list of marketing-information on our potential website/documenation. If it is very easy and convenient for the public to inform us of nsm-capable clients, that we are unaware of, we can establish contact with the clients developers and lend a helping hand. (Same goes for an "official" NSM Wishlist)
The text was updated successfully, but these errors were encountered: