github MoscaDotTo/Winapp2 V1.5
winapp2.ini 23XXXX & Winapp2ool 1.5

4 months ago

DUE TO AN OVERSIGHT, THIS WAS NEVER PUBLISHED. THIS DOCUMENT WAS ORIGINALLY WRITTEN 2023-03-02 AND INTENDED TO BE PUBLISHED AT THAT TIME

Winapp2.ini v23XXXX

This project (winapp2.ini) has been active for almost 13 years now, the last 7 or so have been spent on GitHub but we find our roots and still today much of our community on the CCleaner Community Forums. I'd like to start this release announcement for winapp2.ini with a very special thank you to all the contributors over the years who have made this project possible and continue to do so with their hard work.

The fruits of this labor are many and as a result, winapp2.ini over time can become bloated, outdated, or just downright confusing. This was addressed in the first major refactor in late 2017 / early 2018. That refactor reduced much of the overall complexity of winapp2.ini by combining multiple entries for each program. For example, there used to be about 5 different Skype entries, each targeting a different piece of the software. The goal of the 2017 refactor was largely to clean up the many syntax errors and add style guidelines and consistent styling (and as a result, was the genesis of winapp2ool to help further this process) but in this process, there was a major reduction of the complexity of what a user was faced with when installing winapp2.ini

By 2022, we had mostly ballooned back up to our historical entry count of over 3000 entries. This is not inherently a problem, but there was certainly some bloat. Last summer, I began another major refactor on winapp2.ini to reduce its file size (thankfully, most formatting issues are a thing of the past!) and the natural result of this was another complexity reduction. There are many changes to the file itself but I want the outline some of the motivations and approach I took in making them, and explain where I want to take this project.

Reducing Entry Fatigue

winapp2.ini is exhaustive. it's also exhausting. exhausting to look at, exhausting to maintain (even with winapp2ool). When an average new user loaded up winapp2.ini 1 year ago, they were met with dozens if not hundreds of vaguely named entries pointing to obscure components of software and the windows operating system in general.

One major part of this work, which is largely complete, is to meaningfully and usefully reduce the number of entries present in the file. This is achieved in a few ways:

Outright removal: Many entries have been removed from winapp2.ini's main distribution and moved to the archive. The overwhelming majority of these entries belong to one of two categories: outdated/unsupported web browsers, and software no longer available to download from the original vendor. These were removed from the mainline distribution to reduce the amount of "dead" entries (entries which will effectively be "trimmed" by 100% of users) and reduce the overall size of the file. Most users should not even notice this change. Most of the entries that have been archived are for long defunct live-services. Nevertheless, if something you were using disappeared and you can't find it, definitely reach out.

Merger: Many entries have disappeared without being removed. A great deal of entries have been merged together. This is especially true of components of the Windows operating system and the many components of web browsers (especially chrome based). Many new entries that exist in the "Windows" category reflect this.

For example, the new Windows Shell * entry is the amalgam of what was previously 7 individual entries
Cached File Extensions *
Cached Shell Extensions *
Icon Cache *
Screenshot Index *
Sharing MFU *
Shell Experience Host *
Text Input *

This is a double edged sword. Ostensibly this reduces user choice, as if you were previously selective of which of these you ran you have no choice, however as part of a broader pivot away from CCleaner as the basis for our work, I am encouraging users to make more active use of Include/Exclude features available as part of winapp2ool and CCleaner. The upside is, you shouldn't need an associates degree in reading MSDN to configure winapp2.ini with some idea of what you're doing anymore.

Additionally entries for multiple different versions of an application, such as different major releases or win32 vs UWP have had their entries combined.

Increasing entry name usefulness

Each entry should apply to the scope of the program it targets. Some entries simply had bad names, others were relics of our various old naming schemes and entry creation process. In many (not all) cases, I've removed indicators from the entry name itself as to what is being targeted. There are always exceptions where it's relevant, but it makes the list of entries easier to look at and easier to conceptualize.

Untethering from CCleaner

CCleaner is fine as a tool, there is nothing wrong with it. But the disk cleaner component definitions aren't regularly updated. To that end, I want to move away from winapp2.ini as a ccleaner-supplement by default. This work is multi-faceted but is largely motivated by changes I want to make to how winapp2.ini is maintained and built.

In the short term this will result in some perhaps annoying overlap between CCleaner and winapp2.ini. In the long term, this will enable us to produce many new varieties of pre-compiled "flavors" of winapp2.ini for different use cases, including with CCleaner. This will turn the CCleaner version into a variant of the Non-CCleaner winapp2.ini which will be overall way easier to maintain with winapp2ool.

In essence it will be easier to modify a Non-CCleaner winapp2.ini to be a CCleaner winapp2.ini than it currently is to do the reverse. This is mostly a backend change and won't immediately effect end users except for the overlap. In the future, this is necessary enable the "flavors" I mentioned above, but for now it's likely to be somewhat of an annoyance for some CCleaner users. Sorry!

Another step taken here is the elimination or reduction of some CCleaner keys that don't carry cleaning info. DetectOS has been removed. It has been replaced where relevant with detection criteria suited to the systems it was designed to reach. There were many places where it was simply not needed and has been removed.

Warnings have been largely eliminated. Entries bearing warnings have largely been renamed to make what they're removing more clear. Some have just been moved to archive or winapp3 for being aggressive. Lacking a consistent style, many warnings were legitimately difficult to understand in what they were attempting to warn about. Some simply stated they were removing what the entry name already said they were removing. Where necessary they can always be added back in the future.

CCleaner-specific environment variables will be phased out over time in favor of paths defined in terms of Windows environment variables. This is to increase support for non-ccleaner software. Nothing should change for the user here, but if you're submitting entries please keep this in mind.

Windows XP

I'm not going to go out of my way to eliminate any and all support we have for Windows XP but I'm also not really going to continue to maintain winapp2.ini with it in mind. I haven't maintained winapp2oolXP for some time and have no idea if it still functions on its intended target system, I don't have the time or resources to create a development environment just for windows XP. Sorry there's not more I can do here. The shift in environment variables will likely have the most impact on any users still running windows XP.


There have been and will be growing pains, but we'll have a better project for it in the end. There's a few other general style changes (aesthetics of the actual text file itself) I've made that perhaps I've overlooked, but this should be the bulk of it.

Don't miss a new Winapp2 release

NewReleases is sending notifications on new releases.