Skip to content
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

removing specification requirement of .desktop files #4

Open
CosmicToast opened this issue Apr 16, 2020 · 3 comments
Open

removing specification requirement of .desktop files #4

CosmicToast opened this issue Apr 16, 2020 · 3 comments

Comments

@CosmicToast
Copy link

.desktop files only make sense for interactive (readline-like, tui and gui) applications.
This means that non-interactive applications can't be easily packaged in an appimage, which I think is a shame.
For example, consider the go runtime: even with Terminal=true, it doesn't make much sense.
There's no icon for go(1) or gofmt(1).
There's no point in launching them from a menu.

However, you cannot distribute them as standalone executables, because they fundamentally depend on GOROOT(_FINAL) to function, since that's where the stdlib etc is kept, even though they have no external dependencies besides, well, themselves and GOROOT.

So to package a golang runtime, you have to procure an unofficial application icon from somewhere and make a nonsense .desktop file just to comply to the specification.
Wouldn't it instead, perhaps, be preferable to make .desktop files optional, and simply not perform any integration work if there isn't one specified?

@TheAssassin
Copy link
Owner

I tend to agree. For many applications, e.g., linuxdeploy, appimagetool, all linuxdeploy plugins, appimagecraft etc. a desktop file is not needed at all. Those are also the kinds of applications you would not put into a software store or anything, where the desktop file information would be processed.

@probonopd
Copy link

probonopd commented Apr 16, 2020

Within the AppImage ecosystem, we are using desktop files for various tasks, including determining the name of the AppImage, storing a description string of what the application/CLI tool does, and for displaying metadata in App Centers. I don't see why it is a problem to create a desktop file for CLI tools.
Also, not having an icon is not something every AppImage-using tool should need to be able to handle, it only makes the code more complex. By the way, Go does have an icon and this is how my Go AppImage looks:

As per the AppImage specification, an AppImage

MUST contain a .DirIcon file as per the AppDir specification which SHOULD be a 256x256 PNG file.

So this is even coming from the AppDir specification which we have inherited from ROX.

Those are also the kinds of applications you would not put into a software store or anything, where the desktop file information would be processed.

Why would you not put those into App Centers?

@CosmicToast
Copy link
Author

I don't see why it is a problem to create a desktop file for CLI tools.

Because you end up having to fill something up that is of no practical to use (except to the appimage ecosystem itself). It's basically being created purely to please the runtime.

As per the AppImage specification

Certainly. The discussion here is about potentially changing the specification, since we're at a point where there is an opportunity to do that.

Within the AppImage ecosystem, we are using desktop files for various tasks, including determining the name of the AppImage, storing a description string of what the application/CLI tool does, and for displaying metadata in App Centers.

I think appimage-specific metadata should live in the appimage header, rather than be tacked-on to a different specification that is intended for something else.

Worse case scenario I'll just go my own way without having compatibility with appimages (besides the basic user UX), but I do think there's value in cooperating instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants