ALTaleX531 / TranslucentFlyouts

Translucent effect for most of the win32 flyouts
GNU Lesser General Public License v3.0
864 stars 26 forks source link
acrylic fluent flyout menu mica tooltip transparent windows windows10 windows11

[!NOTE] The project is no longer active!

Dear Users,

It is with a heavy heart that I announce that the TranslucentFlyouts project is no longer actively developed and receive updates.

Why?

  1. TranslucentFlyouts has so many features that it is very expensive to maintain. However, there are still more requests for more features.
  2. Since users will mostly use TranslucentFlyouts in combination with other appearance tweaks, this means that I can't use an implementation as invasive as StartAllBack.
  3. Microsoft is further trampling on msstyle, which makes full coverage of vanilla rendering a necessity, yet libraries that do high-quality 2D rendering almost always introduce multithreading issues.
  4. The current implementation of injecting into global applications is seriously buggy, it causes .NET applications to crash however the memory dump file generated is useless and I can't even figure out why it crashes. In addition to this, it crashes some games that have strict anti-cheat features. Unfortunately, I haven't found a stable and reliable way to inject globally.

There are actually much more issues than you think, but I don't have a nice way to present them all. But I'd say the most important reason is that I don't have that much time to develop it anymore.

Currently TranslucentFlyouts still works without problems on most systems, only a few settings need to be tweaked, such as preventing TranslucentFlyouts from downloading symbols that may cause failures, these symbol files are mostly referenced by features that you are unlikely to use.

I may create a lighter and more stable project to take over TranslucentFlyouts in the future, but who knows when...?

I want to express my deepest gratitude for your support and for choosing TranslucentFlyouts. Your enthusiasm and feedback have been invaluable throughout this journey. It has been an immense honor for me to contribute to a project that aimed to enhance your user experience. If TranslucentFlyouts has caused any inconvenience or disruption to your Windows setup, I sincerely apologize.

TranslucentFlyouts

An application that makes most of the win32 popup menus translucent/transparent on Windows 10/11, providing more options to tweak it to meet your need.

Compared to V1, TranslucentFlyouts V2 has better compatibility and the ability to customize.
TranslucentFlyouts V1 has been moved to TranslucentFlyoutsV1.
TranslucentFlyouts uses LGNU V3 license started from V2.

I' m developing this program entirely in my spare time without any profit, so it may not get timely updates due to my busy academic schedule. I hope you can understand.

license Github All Releases GitHub release

Other Languages

简体中文

Catalog

Acrylic Windows 10 ![Windows10 Light Mode](./Images/Acrylic/LightMode_Windows10.png) ![Windows10 Dark Mode](./Images/Acrylic/DarkMode_Windows10.png) Windows 11 ![Windows11 Light Mode](./Images/Acrylic/LightMode_Windows11.png) ![Windows11 Dark Mode](./Images/Acrylic/DarkMode_Windows11.png)
Mica/MicaAlt (Windows 11 Only) > ![MicaAlt](./Images/Mica/DarkMode_Windows11(MicaAlt).png)
Custom Rendering Sample ![Sample 1](./Images/CustomRendering/LightMode_Sample1.png) ![Sample 2](./Images/CustomRendering/LightMode_Sample2.png)
Fluent Animations ![Sample 1](./Images/FluentAnimations/Sample1.gif) ![Sample 2](./Images/FluentAnimations/Sample2.gif)

How to use

Install

  1. Download the compiled program archive from the Release page.
  2. Unzip it to a location such as "C:\Program Files".
  3. Run "install.cmd" as administrator.

[Note!]:
Downloading symbol files from Microsoft server is required at the first time or after a windows update, otherwise some functionalities will be unavailable!

Uninstall

  1. Run "uninstall.cmd" as administrator.
  2. Delete the remaining files. (It is recommended to logoff before doing it)

How to configure

Thanks to @Satanarious's hard work, a perfect and easy-to-use GUI can be found here!
Take me to the download page!

Of course, you can also modify related registry settings on your own according to the configuration docs .

Limitations and Compatibility

Here are some situations that TranslucentFlyouts will always be automatically disabled.

1. Windows 2000 Style popup menu

Windows2000

Outdated.
Some third-party applications like HoneyView may cause this issue.

2. Ownerdrawn popup menu

Ownerdrawn

As you can see, it is a QT popup menu.
It really looks like the default menu, isn't it?
But it's rendering procedure is completely different from the defualt one, making TranslucentFlyout hard to modify its visual content.

3. StartAllBack

StartAllBack has built-in support for translucent popup menu, and its rendering procedure priority is higher than TranslucentFlyouts.

[Note!]:
For this reason, v2.0.0-alpha.4 and higher versions of TranslucentFlyouts will automatically disable itself when StartAllBack was detected, unless there is a way to fully disable StartAllBack' s handling procedure.
However, TranslucentFlyouts is still available for other applications except Explorer.

It may possibly also cause this issue when StartAllBack is installed
StartAllBack_MenuItemWithFlaws StartAllBack_MenuItemColoredWithFlaws
As you can see there is a white border around the menu item, it will always exist until you disable or uninstall StartAllBack...
For now, there are two ways to solve this.

  1. Set the dword value EnableCustomRendering to non-zero for TranslucentFlyouts.
    Registry path: HKEY_CURRENT_USER\SOFTWARE\TranslucentFlyouts\Menu\EnableCustomRendering
  2. Install a custom theme.

Dependencies and References

Microsoft Research Detours Package

Detours is a software package for monitoring and instrumenting API calls on Windows.

VC-LTL - An elegant way to compile lighter binaries.

VC-LTL is an open source CRT library based on the MS VCRT that reduce program binary size and say goodbye to Microsoft runtime DLLs, such as msvcr120.dll, api-ms-win-crt-time-l1-1-0.dll and other dependencies.

Windows Implementation Libraries (WIL)

The Windows Implementation Libraries (WIL) is a header-only C++ library created to make life easier for developers on Windows through readable type-safe C++ interfaces for common Windows coding patterns.