Skip to content

Comments

[Feature] Autohide taskbar with Alt+T#1202

Open
Arun0A wants to merge 2 commits intodremin:masterfrom
Arun0A:autohide-taskbar-hotkey
Open

[Feature] Autohide taskbar with Alt+T#1202
Arun0A wants to merge 2 commits intodremin:masterfrom
Arun0A:autohide-taskbar-hotkey

Conversation

@Arun0A
Copy link

@Arun0A Arun0A commented Jun 20, 2025

This PR introduces a new user-configurable setting that hides/unhides the taskbar with the hotkey Alt+T.

The animation of the autohide had to be removed as during the hide, the taskbar displayed completely for a split second to process the animation. However, this removal of animation is an another user-configurable setting to disable this animation.

Motivation:
I have been using Explorer_patcher + 7tt + Taskbar_Eliminator for a quite a long time after I switched to windows. I have been using Arch+DWM with minimal condigurations for most of my development work. And RetroBar gave me the exact minimalist feeling when I a used it for the first time. However, the Taskbar_Eliminator would not work as it was not able to identify RetroBar as the taskbar.
The reason for it could possibly be that RetroBar was based out of ManagedShell and Taskbar_Eliminator would not work with Windows shell replacements.
So, I tried to replicate what Taskbar_Eliminator did (ie. toggle hide/unhide windows stock taskbar using the shortcut Alt+T) within RetroBar.
I wanted to get the minimal dwm's statusbar with the classic windows looks.

TODO:
Currently, the removal of hide animations are not consistent. To perfectly get rid of the hide animation, we need to patch the ManagedShell dll itself.

You can see in the following video what this does and in the end you can also see the current animation inconsistency that I mentioned.
https://github.com/user-attachments/assets/66a3dbff-517d-4888-9e00-8a216761289a

@Arun0A Arun0A changed the title Autohide taskbar with Alt+T [Feature] Autohide taskbar with Alt+T Jun 20, 2025
@dremin
Copy link
Owner

dremin commented Aug 5, 2025

Hi @Arun0A!
What is the desire for removing the animation? Is it because of the flicker that happens before the hide, or due to the delay? I believe we can fix either/both of those issues without removing the animation, but I want to make sure I understood the reason first before going down that path.

@Arun0A
Copy link
Author

Arun0A commented Aug 15, 2025

Hey @dremin,
Thanks for your attention! As a power user, I use RetroBar daily, after a couple of tweaks made that aligns to my workflow. The ability to have toggle the taskbar (hide/unhide) using a global hotkey was one of the them, I felt this could be useful for many users like me.

What is the desire for removing the animation?

The initial motive of removing the animation was to make quick interactions. However I understand there are people who prefer smooth visuals, hence kept it optional which could be toggled from the settings. Although, the autohide toggle using the shortcut isn't the best due to the delay.

Is it because of the flicker that happens before the hide, or due to the delay?

Well, it was not the primary reason, but you are right, there is a delay when the autohide is toggled (more precisely, since the animation needs to complete, the taskbar reappears briefly before hiding again, which feels a bit jarring). The autohide is significantly improved, after disabling the animation.

I believe we can fix either/both of those issues without removing the animation

You are right, we can definitely improve on the delay, however, giving the option to disable animation for the user. I will require your help to understand how the animation works exactly.

I totally understand, this PR doesn't serve the purpose to, "teleport you back in time". However, if you are interested to drive this project towards a power user tool with the retro visual, let me know, I would love to help.

@dremin
Copy link
Owner

dremin commented Aug 17, 2025

The initial motive of removing the animation was to make quick interactions. However I understand there are people who prefer smooth visuals, hence kept it optional which could be toggled from the settings. Although, the autohide toggle using the shortcut isn't the best due to the delay.

Got it, that makes sense!

You are right, we can definitely improve on the delay, however, giving the option to disable animation for the user. I will require your help to understand how the animation works exactly.

  • The animation is controlled by the following properties on Taskbar (well, inherited from AppBarWindow): AutoHideAnimationMs and AutoHideShowAnimationMs. To disable the animation, set these to 0. That should work much better than manipulating opacity, and avoids the issues you encountered. You can set these properties in response to hotkey invocation by using HotkeyManager's TaskbarHotkeyPressed event.
  • The delay is controlled by the following properties, also on Taskbar: AutoHideDelayMs and AutoHideShowDelayMs. For the functionality introduced with this PR, these should be set to 0 when the hotkey is invoked, and then reverted when the animation completes, so that mouse-activated auto-hide still has the appropriate delay.
  • The flicker happens on non-Aero themes because enabling auto-hide also enables transparency (AllowsTransparency) on the taskbar window (which causes the window to be recreated). I think it would be best to also enable transparency when the alt-t setting is enabled, so that there is no flicker when the hotkey is invoked.

I totally understand, this PR doesn't serve the purpose to, "teleport you back in time". However, if you are interested to drive this project towards a power user tool with the retro visual, let me know, I would love to help.

Power user features like this that don't compromise the primary usage are always welcome! :)

@supra107
Copy link

What is the desire for removing the animation?

I could explain from my point of view. I always disable all animations in Windows. Animations get in my way and make it feel like my system is slower than it actually is as I'm fairly fast in using my desktop. For example, having a pretty animation when minimizing/maximizing a window adds an artificial delay between me initiating the action and the system finishing it just for some extra eye candy I find superfluous. Having an extra delay on RetroBar every time I want to unhide it is simply annoying which is why for now I have to opt for it to be always visible, even though I'd prefer to maximize my desktop space.

Ideally, RetroBar should respect Windows' own registry settings relating to taskbar animations as defined by the HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarAnimations DWORD key, as well as the HKCU\Control Panel\Mouse\MouseHoverTime string value so that if a user defined their hover time to be smaller than the default 400ms, the taskbar will hide faster the moment he takes his mouse cursor off the taskbar. That way, there is no need to add an extra setting to RetroBar, and it will work seamlessly with Windows' own registry definitions of these settings.

@Arun0A
Copy link
Author

Arun0A commented Jan 4, 2026

@supra107: Animations get in my way and make it feel like my system is slower than it actually is as I'm fairly fast in using my desktop.

True. I never have animations enabled in any of my devices.

@supra107: Ideally, RetroBar should respect Windows' own registry settings relating to taskbar animations as defined by the HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarAnimations

You are right, I will check on this. However, in that case, animations shouldn't have been played when I tried in my system firstly, since I had my taskbar animations disabled.

@dremin: To disable the animation, set these to 0. That should work much better than manipulating opacity, and avoids the issues you encountered. ... The flicker happens on non-Aero themes because enabling auto-hide also enables transparency (AllowsTransparency) on the taskbar window (which causes the window to be recreated).

Got it!

@dremin I know it's a long time since any update. I actually got quite busy and not getting time to work on this. Although, I will get on this again as soon as possible. However, if anybody else would like to continue this work from here, perhaps you may assign it to them, I would be available to review the work actively. Will be back at this soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants