Cemu icon indicating copy to clipboard operation
Cemu copied to clipboard

Linux metadata files

Open Eonfge opened this issue 3 years ago • 7 comments

Hey Cemu!,

Cool to see that your project is going Open Source. It's very admirable and I hope that you'll not be completely crushed under all the feedback and comments you're getting. That said, I do have my own comments to add.

Linux metadata

With Linux support now being a very viable option, it's important to also have some stuff in place for the Linux ecosystem at large. For start, there are certain standards that most Linux distributions and Desktop Environments adhere to:

https://www.freedesktop.org/wiki/Specifications/

Stop reading now! It's way too much to tackle all at once, so let's help you in breaking it down a bit.

info.cemu.Cemu.desktop

This is the file that tells desktop environments like KDE and GNOME, that your binary is actually an application that the user should see in the UI. It uses tags and descriptions for filtering.

Example

  • https://github.com/yuzu-emu/yuzu/blob/master/dist/org.yuzu_emu.yuzu.desktop

info.cemu.Cemu.appdate.xml

This is a big XML that gives an explanation about the application, that has information about the developer, and that even provides links for help documentation, code contributions or donations. Also important, flatpaks on Flathub must have license information and age-ratings information, so that user's know what is coming to them.

Example

  • https://github.com/flathub/org.DolphinEmu.dolphin-emu/blob/master/org.DolphinEmu.dolphin-emu.appdata.xml

info.cemu.Cemu.svg

An icon. While it's not critical... svg is recommended since the days of 32px icons are numbered.

Example

  • https://github.com/flathub/org.yuzu_emu.yuzu/blob/master/org.yuzu_emu.yuzu.svg

Summary

  • [ ] .desktop
  • [ ] .appdata.xml
  • [ ] .svg

Eonfge avatar Aug 24 '22 15:08 Eonfge

I was not aware of it, but this got previously mentioned in a comment https://github.com/cemu-project/Cemu/issues/1#issuecomment-1225307469 but perhaps it's best to track this as a separate issue.

Eonfge avatar Aug 24 '22 15:08 Eonfge

Existing pull requests;

  • https://github.com/cemu-project/Cemu/pull/10
  • https://github.com/cemu-project/Cemu/pull/12

Eonfge avatar Aug 24 '22 16:08 Eonfge

@JakobDev Great work with the metadata details. The only comment I have, is that it's customary (~70%) to capitalize the name of the application.

  • org.gnome.Lollypop
  • org.musicbrainz.Picard
  • com.github.Flacon

The rule is not absolute, and there are packages that don't do it

  • org.mozilla.firefox
  • org.kde.kid3
  • org.qbittorrent.qBittorrent

The Cemu project will have to decide on this, so let's give em a breather.

Another thing that we might want to do directly; Automatically install these files in the right directories when building with CMAKE

Eonfge avatar Aug 24 '22 16:08 Eonfge

I also think the Devs should decide what they like more. Both is valid.

Another thing that we might want to do directly; Automatically install these files in the right directories when building with CMAKE

I agree, but I don't have much experience with CMake, so I don't know how to do that. Otherwise I would have it included in the PR. Probably @Zopolis4, who is currently refactoring the CMake files in #9 is the right person for this Job.,

JakobDev avatar Aug 24 '22 19:08 JakobDev

Sure! I'll take a look

Zopolis4 avatar Aug 24 '22 23:08 Zopolis4

... it's customary (~70%) to capitalize the name of the application.

@Eonfge The AppStream spec for <id/> recommends not doing that though:

Additionally, even though uppercase letters are permitted in a component-ID, it is strongly encouraged to only use lowercase letters for the ID.

craigbarnes avatar Aug 25 '22 01:08 craigbarnes

@Eonfge The AppStream spec for <id/> recommends not doing that though:

I had no idea. I stand corrected. In that case, Cemu can roll both ways

Eonfge avatar Aug 26 '22 15:08 Eonfge

Can be closed, most of the points are resolved now. I'll make a PR to have a better quality image.

j8r avatar Oct 16 '22 21:10 j8r