Some of the packages downloadable feature icons, and a subgroup of them also offers screenshots that will be shown on the details window. On this article you will learn how does the icon database works, how to change the source of it and how to contribute to the database, that is open for anyone who wants to help this project.
On a general rule, all the icons and screenshots related to packages shown in UniGetUI come from an open database made for UniGetUI, and updated by UniGetUI users.
However, some package managers offer fallback solutions, such as Chocolatey, whose packages can retrieve their respective icons from Chocolatey's website.
To contribute to the database, you will need to open this Google Spreadsheet and request for write access, stating on the Message
text box for which packages you want to provide icons and/or screenshots.
Once accepted, search for your Package ID, which will show in lowercase, with dashes instead of dots (.
) or underscores (_
) and, in case of Winget, with their Publisher ID removed. (More info on Normalized IDs here)
Then, paste the URL to the icon on the corresponding (orange) cell (it must be a SQUARE PNG FILE), and, if available, paste, each on one cell, the URLs of the available screenshots, if any
UniGetUI retrieves the icon from an online database, which consists of a JSON file, the url fo which is:
https://raw.githubusercontent.com/marticliment/UniGetUI/main/WebBasedData/screenshot-database-v2.json
However, custom databases can be specified from the settings, under Experimental Features. The URL must redirect to a valid JSON file using the following scheme:
{
"package_count": { // An optional entry to document which percentage of the packages. It is not required
"total": 0,
"done": 0
"packages_with_icon": 0
"packages_with_screenshot": 0
"total_screenshots": 0
},
"icons_and_screenshots": { // This is the main list of package icons and screenshots
"normalized-id1": { // The normalized id* of a package
"icon": "https://cdn.someurl.com/resources/icon.png", // A PNG file as the icon
"images": [
"https://cdn.someurl.com/resources/img1.png", // A list of screenshots
"https://cdn.someurl.com/resources/img2.png",
"https://cdn.someurl.com/resources/img3.png"
]
},
"package2": { // The normalized id* of another package
"icon": "http://anotherweb.org/contents/.wpupload/img-square-icon.png",
"images": [] // This package has no screenshots. However, it still has the images key
},
... // The rest of the packages are here.
// If a package has no icon nor screenshot, it is not required to appear listed on this JSON
}
}
NOTE:All the icons must be PNG files.
" ", "_", "."
) will be replaced by dashes ("-"
).
In the same manner, Winget packages will have their publisher removed from the ID, and chocolatey packages will have meta suffixes (.install
and .portable
) removed.
This is the end of this article. Return to the UniGetUI Help and Documentation page?
© 2025, Martí Climent