KDE is my favourite desktop environment in GNU/Linux since 2004. Yes. I started with Slackware, then Beautiful Mandrake, then super SuSE. They all provided KDE as default desktop environment. It is so beautiful and most configurable. Though I explore GNOME to know how it is, I always switch back to KDE. Configuring KDE and Emacs is one of my major timekilling activities. Every KDE and Every Emacs is finetuned for its users, always.
After I installed ubuntu 20.04 and KDE, I was exploring the “Discover” application, to get extra tons of games and applications. “Discover” is a google play store kind of application, where all the packages are displayed well. We can search, select and install them easily. Found that only few applications have one or more screenshots near the application description.
Wondered how can we contribute to the “Discover” application, with screenshots. Checked in #kde-devel IRC channel at libera.chat Got the answers. Sharing them here.
shrini> How can I help to add atleast one screenshot for all possible applications?
NateGraham[m]> You would contribute patches to the apps themselves to add new screenshot tags to their appdata.xml files
NateGraham[m]> you don’t need to do the packaging yourself, you would just subimt a merge request/pull request for the code where the app lives
shrini> can you show any sample?
NateGraham[m]> for example, here is where the relevant file for Dolphin lives: https://invent.kde.org/system/dolphin/-/blob/master/src/org.kde.dolphin.appdata.xml
search for “screenshot” in that file. Those tags control the screenshots so you would find this file in the app you want to contribute to, and you would add a similar screenshot tag into the file, and then you would submit a pull request or merge request back to the project so that they can review your contribution the way you do this varies by project, but you can see the instructions for how to to it for KDE apps here: https://community.kde.org/Infrastructure/GitLab the process of doing this for an app whose code lives on GitHub is not exactly the same, but it’s broadly similar we don’t use GitHub in KDE, though, so I’m afraid I don’t know where some GitHub-specific documentation might live, in case the app you’re thinking of lives on GitHub.
shrini> Thanks. Seems easy. wondering why it is not done so far.
NateGraham[m]> it’s quite common for easy things to have been overlooked in the open-source world this kind of task is a maintenance chore; it has a high impact but it’s not often the kind of thing that software developers enjoy doing, so it gets forgotten a lot or done once and then never updates after the app has changes a lot over the years
shrini> is there any guidelines, filesize, fileformat etc?
NateGraham[m]> well as you can see, the way it works is that you put a link to the image in the screenshot tag. So what’s more important is the location where that screenshot lives, since it will be downloaded hundreds of thousands or millions of times it should live on infrastructure owned and controlled by the app itself, ideally behind a content delivery network (CDN) for redundancy
shrini> yes. who can upload the screenshots on the cdn like above?
NateGraham[m]> aha, found where the screenshots live right here: https://invent.kde.org/websites/product-screenshots so you would first submit a merge request that contains the new screenshot(s), and then once that is accepted and merged, you can use the URL for the newly-uploaded images in your next merge request to update the appdata.xml files you can also update existing screenshots too.
Thanks to NateGraham for the good guidance over chat. It is really simple to contribute to KDE with screenshots. Will start doing it soon and will arrange for a screenshot donation day kind of event, to teach the methods and make more contributors. Will discuss with #kde-india team for this soon.
If you use KDE on Linux, If you are interested in joining this activity, reply here or write to firstname.lastname@example.org Let us contribute together.
Thanks for all KDE contributors for making wonderful user experience on GNU/Linux.6