Forum Discussion
"Show all icons in system tray" option in windows11
- Dec 19, 2022
To always show all the Icons in the System Tray or Notification area of Windows 11/10, follow these steps:
1. Press Win+R to open the Run prompt.
2. Enter this value: explorer shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}
3. Tick the Always show all icons and notifications on the taskbar checkbox.
4. Click the OK button.Hope this helps everyone!
Blank
A couple of weeks ago, I threw together a similar solution in a tiny C++ app. Already posted it previously in the thread, but the post for some weird reason doesn't appear.
Anyway, https://github.com/Aemony/NotifyIconPromote is a similar super-tiny C++ app that can be kept running in the background and will idle and automatically promote all new icons as they appear. It will also adhere to the user's choice of hiding some icons so it will never force the reveal of an already customized icon.
It doesn't have a refresh timer because it has no need of one. On launch, it will check the registry once, and automatically promote any new unconfigured icons, and then it will just sit and wait, sleeping, in the background until a change occurs that warrants its operation. It's also permanently tagged to run in Windows 11's Efficiency Mode so even when it wakes up, it'll always be prioritized below/after any regular foreground or background apps.
- linuxgurugamerJun 27, 2025Copper Contributor
Worked perfectly in a new install, thank you
- grgbttmnnFeb 25, 2025Copper Contributor
Excellent solution. MS should give you a reward for for doing their work.
- AMDMan64Jan 23, 2025Copper Contributor
That's pretty cool. There must be a built-in C++ piece that can watch the registry then?
I wrote mine almost a year ago (in full transparency, I pretty much had Copilot write it since I can't claim to be a programmer) because I needed a solution to use on our managed devices at my work. With SCCM, you can't have the update icon being hidden in the taskbar. I've been deploying mine on everything from unsupported 2010 systems to brand new systems - and I doubt that anything is going to have a huge performance impact. I didn't like the PowerShell route because PowerShell scripts are honestly slow and would require complicated scheduled tasks.
It just shows that Microsoft needs to move on this, so we can stop using hack solutions - even if it can be a fun exercise in programming.- AemonyJan 25, 2025Copper Contributor
There must be a built-in C++ piece that can watch the registry then?
Yeah, it's a standard registry change notification from Win32, using RegNotifyChangeKeyValue.
It's possible to do something similar in PowerShell, by registering for an WMI event, see e.g. this related PowerShell script which relies on that functionality:
https://github.com/Liub0myr/win11-all-icons-on-taskbar/blob/main/all-icons-on-taskbar.ps1
Of course it's actually also possible to invoke the original Win32 C++ API from PowerShell as well, though it requires P/Invoke and is more cumbersome to work with. The above WMI event registration is by far the easiest method to implement in PowerShell.
I didn't like the PowerShell route because PowerShell scripts are honestly slow and would require complicated scheduled tasks.
Mhm, as someone who have worked with PowerShell both professionally and privately for years now, I fully agree. It's insane how stupidly slow PowerShell is, and especially compared to low-level native stuff such as C++. The fastest PowerShell script is typically one that a) never displays any output at all, and b) relies on native low-level applications to do everything. I developed a Steam backup PowerShell script at one point where I tested various methods of copying game files over, and overall time to completion was almost halved just by using Robocopy instead of the built-in PowerShell/.NET file copy operations.