Windhawk mod: Vertical Taskbar for Windows 11

I’m excited to announce a mod that I’ve been working on for some time now: Vertical Taskbar for Windows 11. This was the #1 request on the list in Windhawk mods for the Windows 11 taskbar. The development of this mod took some iterations and failed approaches, but I was finally able to make it work. The implementation is largely based on element rotation, which is available for UWP elements, but it also required many tricks and adjustments to make it work correctly, having the right dimensions and positions for all elements.

Bugs and limitations

I tried to leave as little unfixed bugs as I could while also not delaying the release of the mod indefinitely. There are some minor known issues, but the mod should be fairly stable. If you encounter any issues, please let me know.

Features and more customizations

The first version of the mod can only place the taskbar on the left. I have it on the roadmap to make it possible to move it to the right. Other customization options are planned as well, such as rotating the clock. If you have other suggestions, let me know.

Funding

The development of this mod was funded by AuthLite LLC. Thank you for contributing and allowing all Windhawk users to enjoy it!

Posted in Software, Updates by Michael (Ramen Software) on June 12th, 2024.
Tags:

15 Responses to “Windhawk mod: Vertical Taskbar for Windows 11”

  1. Gomez Golez says:

    hi,when will you release support for 24h2? btw, taskbar height and grouping doesnt work either in 24h2.

  2. Tempest says:

    That’s awesome! A vertical taskbar is a great way to save some screen real estate, especially for those with widescreen monitors. I can’t wait to try it out. Looking forward to seeing a preview or download link!

  3. dd says:

    hi does windhawk plan to publish a mod that enables multiple row task bars anytime soon? if not at least i hope to know if or when it’s planned to be implemented.
    i’ve seen it’s in the list with a few donations but hasn’t been implemented so i wondered

  4. KenB says:

    Thanks for your work on Windhawk and the mods.

    Might you consider adding a drop-down list control to Vertical Taskbar settings to govern whether taskbar rotation should be applied when the primary display is in landscape mode, portrait mode, or either mode? (The default would be “either mode” for consistence with current behavior.)

    I mostly use my Surface Pro in landscape and use Vertical Taskbar to provide more content space for the shorter dimension of my display. Sometimes, I use it as a portrait mode tablet, where vertical placement takes space away from the shorter screen dimension.

    This automatic enable/disable based on orientation feature ought to be simpler for users to understand and for you to code than alternatives that would allow a taskbar placement per display per orientation.

  5. Ciantic says:

    I found a problem with this:

    1. Install vertical taskbar (of course)
    2. Snap Google Chrome window next to the taskbar

    Notice that Google Chrome window does not repaint, it gets stuck. It repaints if I furiously resize the window.

    I haven’t yet figured out what the problem is, as I can’t recompile this either:

    I hit “fork” and try to compile it immediately gives errors:

    In file included from :480:
    :11:9: warning: 'WINVER' macro redefined [-Wmacro-redefined]
       11 | #define WINVER 0x0605
          |         ^
    :3:9: note: previous definition is here
        3 | #define WINVER 0x0A00
          |         ^
    c:\ProgramData\Windhawk\EditorWorkspace\mod.wh.cpp:190:10: error: no template named 'function' in namespace 'std'
      190 |     std::function enumCallback) {
          |     ~~~~~^
    c:\ProgramData\Windhawk\EditorWorkspace\mod.wh.cpp:885:13: error: no matching function for call to 'EnumChildElements'
      885 |             EnumChildElements(stackPanel, [](FrameworkElement child) {
          |             ^~~~~~~~~~~~~~~~~
    c:\ProgramData\Windhawk\EditorWorkspace\mod.wh.cpp:188:18: note: candidate function not viable: no known conversion from '(lambda at c:/ProgramData/Windhawk/EditorWorkspace/mod.wh.cpp:885:43)' to 'int' for 2nd argument
      188 | FrameworkElement EnumChildElements(
          |                  ^
      189 |     FrameworkElement element,
      190 |     std::function enumCallback) {
          |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    c:\ProgramData\Windhawk\EditorWorkspace\mod.wh.cpp:924:13: error: no matching function for call to 'EnumChildElements'
      924 |             EnumChildElements(stackPanel, [](FrameworkElement child) {
          |             ^~~~~~~~~~~~~~~~~
    c:\ProgramData\Windhawk\EditorWorkspace\mod.wh.cpp:188:18: note: candidate function not viable: no known conversion from '(lambda at c:/ProgramData/Windhawk/EditorWorkspace/mod.wh.cpp:924:43)' to 'int' for 2nd argument
      188 | FrameworkElement EnumChildElements(
          |                  ^
      189 |     FrameworkElement element,
      190 |     std::function enumCallback) {
          |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    c:\ProgramData\Windhawk\EditorWorkspace\mod.wh.cpp:1427:9: error: no matching function for call to 'HookSymbols'
     1427 |     if (HookSymbols(module, symbolHooks, symbolHooksCount, &options)) {
          |         ^~~~~~~~~~~
    c:/Program Files/Windhawk/Compiler/include/windhawk_utils.h:220:13: note: candidate function not viable: no known conversion from 'WH_FIND_SYMBOL_OPTIONS *' (aka 'tagWH_FIND_SYMBOL_OPTIONS *') to 'const WH_HOOK_SYMBOLS_OPTIONS *' (aka 'const tagWH_HOOK_SYMBOLS_OPTIONS *') for 4th argument
      220 | inline bool HookSymbols(HMODULE module,
          |             ^
      221 |                         const SYMBOL_HOOK* symbolHooks,
      222 |                         size_t symbolHooksCount,
      223 |                         const WH_HOOK_SYMBOLS_OPTIONS* options) {
          |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 warning and 4 errors generated.
    
  6. Leandro says:

    Hi, I installed the vertical mod and had a really big problem. I have the “Samsung Odyssey OLED G9 49 Gamer Monitor” and on the left part of it (where the taskbar was) it looks like the mod somehow disabled the updating of some programs. For example: Spotfy was stuck on the task bar and when I clicked play, it actually started playing the music, but looking at the program it seemed like it still didn’t have play pressed. But if I moved Spotify a little to the right, I could see that it had actually clicked. Other programs worked, and others didn’t in that part of the monitor.

  7. Yucca says:

    is it possible to have vertical taskbar on one screen and horisontal on other screens?

    • That’s not possible with the current version of the mod, not so easy to implement, and not planned for the near future, sorry. My current focus is allowing to move the taskbar to the right, and have it on the left on one screen, and on the right on the other.

  8. John Sutton says:

    Windhawk Vertical Taskbar for Windows 11 – conflict with Adobe Acrobat 11 Pro print dialog box. When Vertical Taskbar is active, the print dialog box in Acrobat 11 Pro is reduced to a single blank line. The box cannot be resized. When Vertical Taskbar is switched off, the print dialog box is normal. I can provide more details and screenshots if desired.

    Thanks very much for this app. I was using Explorer Patcher, but there are now problems with Windows Defender classing it as malware.

Leave a Reply