mirror of
https://github.com/valinet/ExplorerPatcher.git
synced 2024-11-15 03:27:35 +01:00
This project aims to enhance the working environment on Windows
cd2d5c66f9
sign out process when using the weather widget The hang was happening because the UI thread of explorer was hanging in `dllmain!PeopleBand_DrawTextWithGlowHook` in a call to `AcquireSRWLockExclusive` when the host process for the widget terminated (due to the system shutting down - the case when hr is 0x800706ba aka "RPC server is unavailable"). When the remote process dies, say we are in `dllmain!PeopleBand_DrawTextWithGlowHook`; a call to some interface from it hangs for a bit, and during that time the calling thread is able to continue its lifetime, during which a subsequent call to `dllmain!PeopleBand_DrawTextWithGlowHook` is made (another widget redraw is requested). As SRW locks do not really support recursion (calling the same function from the same thread), this behavior is then expected and the whole thing hangs, thus hanging the shutdown process (and explorer's UI thread in turn). That's why when you clicked "Cancel" when the UI to close hung apps was displayed at shutdown, you returned to a frozen desktop. Apparently, Windows lets explorer hang indefinitely at shutdown, which made matters even worse. The solution is two fold: * Widget destruction is dispatched to the service thread. This is not strictly necessary, but allows for better control of where the thing is destroyed from. * Switched from SRW locks to a critical section, which is a per-thread lock. All this has to do is make sure the program destroys the widget only when no other routine (usually drawing stuff) uses it. This should pretty much mitigate the issue, hopefully. |
||
---|---|---|
.github/workflows | ||
ep_dwm@64b8099bd0 | ||
ep_generate_release_description | ||
ep_generate_release_name | ||
ep_setup | ||
ep_setup_patch | ||
ep_startmenu | ||
ep_weather_host | ||
ep_weather_host_stub | ||
ExplorerPatcher | ||
libs | ||
.gitignore | ||
.gitmodules | ||
CHANGELOG.md | ||
debug.h | ||
ExplorerPatcher.sln | ||
FUNDING.yml | ||
LICENSE | ||
README.md | ||
version.h |
ExplorerPatcher
This project aims to enhance the working environment on Windows.
PayPal donations: here or using e-mail address valentingabrielradu@gmail.com
Feature summary
- Choose between Windows 11 or Windows 10 taskbar (with labels support, small icons and lots of customization).
- Disable Windows 11 context menu and command bar in File Explorer and more.
- Open Start to All apps by default, choose number of frequent apps to show, display on active monitor and more.
- Choose between the Windows 11, Windows 10 and Windows NT Alt-Tab window switcher with customization.
- Lots of quality of life improvements for the shell, like:
- Skin tray menus to match Windows style, make them behave like flyouts and center them relative to the icon.
- Choose action when left and/or right clicking the network icon.
- Revert to the Windows 7 search box in File Explorer, or disable Windows Search altogether.
- Disable immersive menus and use mitigations that help you run the real classic theme without glitches.
- Learn more about all the functionality offered by this program starting with this article in the wiki, here.
Some features may not be available on Windows 10.
How to?
- Download the latest version of the setup program.
- Run the installer. It will automatically prompt for elevation, after which it will install the necessary files.
- When done, you will be greeted with the familiar Windows 10 taskbar. To customize the options offered by the program, right click the taskbar and choose "Properties".
That's it. It's that simple.
What next?
- Consult the wiki - this is highly recommended. There you will find information about more advanced tasks, modes of operation and features offered by this patcher.
- Get familiar with most of the features offered by this patcher here.
- Learn how to manage updates and what to expect from new versions and new Windows builds here.
- Have a question? Consult the Frequently Asked Questions.
- Some other question? Open a thread in Discussions.
- Found a bug, have an issue or a problem with the application? Read here what to do next.
- I highly encourage you to check out the source code and tinker with it. I am open to merging new features, enhancements and fixes; also, I think it provides good insights on topics of interests in this area.
Known issues
Items marked with "bug" that are still "Open" represent known issues. Active work is undergone regarding an item if it is additionally marked with "investigating". Help is especially required for items marked with "help wanted". Consult the list in Issues.
Uninstalling
- Use "Programs and Features" in Control Panel, or "Apps and features" in the Settings app or
- Run
ep_setup.exe /uninstall
or - Rename
ep_setup.exe
toep_uninstall.exe
and run that.
Updating
- The program features built-in updates: go to "Properties" - "Updates" to configure, check for and install the latest updates. Learn more here.
- Download the latest version's setup file and simply run it.