Windhawk, the customization marketplace for Windows programs

Windhawk aims to make it easier to customize Windows programs. It allows installing and configuring mods (customization modules) with just a couple of clicks. For developers, it provides a convenient platform for developing and sharing such mods.

You can find more details, browse for the available mods and download Windhawk on the official website.

Read on for the motivation behind creating Windhawk.

Windhawk

Background

As a power user, I often find the need to customize the programs I use beyond the default settings. If I’m lucky, the relevant program provides options to customize it the way I need. If that’s not the case, I have several options:

  1. Accept the lack of customization and use the program as is.
  2. Find or create an alternative program.
  3. Find or create a helper program that fills the gap.
  4. Modify the relevant program.

Of course, some annoyances are less important than others. If that’s something I encounter rarely, e.g. if I can save a couple of clicks once a week, I’ll most probably choose the first option as it’s not worth the time. If that’s a very minor annoyance, I will probably live with it too. But if that’s something I encounter regularly and it’s annoying enough, I might start looking for a solution.

Finding an alternative program might be an option, but often there’s no good alternative. Perhaps the program I’m already using is the best of its kind, but it has this little annoyance which I’d like to fix. Of course, creating an alternative program myself is often too time consuming and not feasible.

Finding or creating a helper program that fills the gap is sometimes an option. For example, AutoHotkey can be used to overcome some annoyances (e.g. it can make the target program think as if you’re holding the Shift key). Another example is the X-Mouse Button Control tool which can help customizing mouse behavior for any program. I can also create a helper program from scratch, I’ve done this on several occasions. But there are many cases in which these approaches don’t work.

If none of the above works, what I’m left with is modifying the relevant program to fix an annoyance or add new functionality.

Modifying a program

So, I have a Windows program which I’d like to modify to better fit my needs. What are my options?

If the program is open-source, the best option is to implement the improvement and contribute it to the project. This way, all users can benefit from it, including myself, and that’s where my journey happily ends. But my contribution might be rejected, e.g. because it’s very specific for my needs or for any other reason. In this case, I can choose to fork the program, but if the program is updated regularly, maintaining a fork and keeping it updated can be a hassle.

If the program is not open-source, I can modify the compiled executable of the program, usually the .exe file (as long as it’s legal, of course). That’s a more challenging task and the details are out of scope for this post. I’ll just focus on two ways to apply such a modification:

  1. Modify the .exe file on disk (also known as binary patching).
  2. Modify a running instance of the target program in memory.

Both options are valid, but modifying the file on disk has several drawbacks:

  1. If the executable file is write protected, it can’t be modified.
  2. If the executable file is digitally signed, the signature becomes invalid.
  3. Every time the executable file is updated, it needs to be patched again.
  4. If something goes wrong with the patch, there’s no easy way to revert the changes – one must be careful to create a backup before patching. And if the target program is part of the system, a bad patch might be difficult to recover from, even in safe mode.

Given the above, modifying a running instance of the target program in memory is usually a better, safer and more robust solution.

Modifying a running instance of a program in memory

There are many possible use cases for modifying a running instance of a program in memory. It can be done for a minor customization or for adding a significant missing feature. It can be required because the target program is no longer developed, because the developer refuses to add a feature or fix a bug, or for other reasons. In fact, the most popular program on this website, 7+ Taskbar Tweaker, is a great example – it adds extra features and fixes bugs in the Windows taskbar, features and bugs which Microsoft is not willing to implement or fix, and which many users find useful.

One of the challenges in implementing such a customization is that apart from the customization itself, the developer has to take care of things such as process injection, function hooking, symbol loading, creating a user interface, and more. The extra effort required for even a simple customization means that sometimes it’s not worth the effort for a developer to invest the time and improve the experience for himself and other users. At other times, the developer can take a shortcut, such as patching the file, solving the problem for himself but not having an easy way to share his work with other users.

Introducing Windhawk

Windhawk was created to make it easier for developers to implement customizations for programs. It does this by taking care of the distractions mentioned above, such as process injection, allowing the developer to focus on the customization itself. This benefits both developers and users: Developers have a simple way to create customizations (good for developers) and share them with the world (good for users).

Another benefit for users is that every mod is just a single file of textual code. This makes it easier to review what the mod really does, unlike with an executable file which is very difficult to verify. And that doesn’t come at the expense of user experience – installing a mod takes a couple of clicks, unlike compiling an open source project which requires time, programming tools, and usually some programming skills. Also, it’s easy for a user without programming skills to make minor edits to existing mods, such as changing texts or tweaking simple calculations. A mod can even be shared via a service such as Pastebin.

Example use cases

Below are examples of projects or customizations which could use Windhawk.

  • Fixing a 3+ year old bug in NVIDIA GeForce Experience. A great research by Dmirty, in which he hunts for a bug in an NVIDIA software, and finally finds a solution. For other users to use his solution, he proposes the following:
    Use a hex editor to patch NVIDIA’s binary file. Alternatively, use this PowerShell script. The PowerShell script is tailored for a specific version of the binary, and it links to another PowerShell script which attempts to patch any version using heuristic. The downsides: It might not be obvious to all users how to use a hex editor or how to run a PowerShell script, and this process has to be done after every update. The other downsides of patching a binary file apply here too. With Windhawk, Dmirty could create a mod with a similar amount of effort, making the solution easier to use and accessible to more users.

    By the way, I like the top comment to the research in Hacker News:

    “I changed this byte in the library to fix the problem” is the ultimate triumph of being in control of your device imo. If your CPU can do a thing, you can (in principle) always find out why it does that thing and make it do something else if you want. It’s just bytes all the way down.

    This is exactly what Windhawk is about – making it more accessible to gain that control over your device.

  • How I cut GTA Online loading times by 70%. Another impressive research that is worth reading. The author implemented a solution, and here are his usage instructions:

    • git clone --recurse-submodules https://github.com/tostercx/GTAO_Booster_PoC
    • build the project with MSVC
    • inject the DLL with your favorite injector while the game is starting up

    Not that the author did something wrong – he made a quick fix for something that should have been fixed by the company a long time ago, and shared it with the world. But wouldn’t it be better if with the same amount of effort he could share his solution to all users, even those unfamiliar with terms such as Git or MSVC? Wouldn’t it be nice if everyone could install the fix in a couple of clicks?

  • Windows Timer Resolution: Megawatts Wasted. This blog post by Bruce Dawson explains how some programs increase power consumption irresponsibly, but he doesn’t suggest a solution except for the vendors to stop increasing power consumption when not needed. But what if the vendor doesn’t fix the irresponsible power consumption usage? Possible solutions are discussed in the blog post comments, and eventually Bruce says the following:

    I don’t think that a third-party solution would be practical, but I’m happy to be proven wrong. My main concern would be that any third-party modification or shimming of winmm.dll would be indistinguishable from malware.

    I’m not sure what his definition of malware is here. Perhaps what he means is that if somebody develops an easy to use solution, it will be in the form of a binary file, and it’s difficult to verify that it’s not malware. On the other hand, if the solution comes in source code form, it’s difficult to use as we’ve just seen in the previous examples. Windhawk provides the best of both worlds – allowing to share a solution in source code form which is easy to verify, and which at the same time can be installed in a couple of clicks. In fact, I’ve implemented such a mod and it’s ready to install and use: Timer Resolution Control.

  • Arranging Invisible Icons in Quadratic Time. Another fascinating blog post by Bruce Dawson about a performance bug in Windows. He reported this bug to Microsoft more than a year ago, and it still wasn’t fixed. This is yet another example in which Windhawk can be used to develop and share a solution. Maybe somebody will do that eventually.

Windhawk and 7+ Taskbar Tweaker

As mentioned earlier, 7+ Taskbar Tweaker, the taskbar customization tool for Windows, is the most popular tool among the tools you can find on this website. You might wonder what are the pros and cons of both tools, since customizations can be developed and shared in both, and how Windhawk affects the future of 7+ Taskbar Tweaker.

Regarding pros and cons, here’s a quick summary:

  • Resource usage: Both have similar resource usage when running in the background, running as a lightweight native module which is injected into the relevant process. Windhawk might use more resources when managing mods, and it also takes more disk space, but I see it as less important since it doesn’t affect the daily computer usage.
  • Stability: In both projects, stability is a very important metric for me. Both are constantly running in the background on my computer, and system stability is not affected in any way. I expect that Windhawk, being a newer project, has more bugs, but I take stability bugs very seriously and I assume most of them will be fixed as they are identified.
  • Ease of use: Both are rather easy to use and require no technical knowledge. Of course, creating mods for Windhawk requires a different set of skills, but it’s not relevant to the comparison.
  • Specialization: 7+ Taskbar Tweaker is specific to taskbar customization, while Windhawk can customize any aspect of any program.

As you can see, for a user, both solutions are quite similar as long as both provide the same customizations. Windhawk makes it easy for developers to create such customizations, and unlike with 7+ Taskbar Tweaker, anyone can contribute customizations, which means users will have more possibilities to customize their programs the way they want it.

Regarding the future of 7+ Taskbar Tweaker: It will keep existing as a separate program which supports Windows 7 to Windows 10. As mentioned in a recent blog post, most parts of the taskbar were reimplemented in Windows 11, and 7+ Taskbar Tweaker can’t be made to work with the new taskbar without a huge amount of work. My plan, at least in the short term, is to implement the most demanded customizations for Windows 11 as Windhawk mods. A couple of mods are already available, take a look. A more detailed blog post about Windows 11 taskbar customization and Windhawk will be published soon.

Looking forward

I hope that Windhawk will fulfill its vision in helping users gain control over their device. Go download Windhawk on the official website and share your experience. I’d love to hear your feedback about Windhawk, both from users and from developers.

Posted in Releases, Software by Michael (Ramen Software) on March 7th, 2022.
Tags:

117 Responses to “Windhawk, the customization marketplace for Windows programs”

  1. Timothy says:

    I like this open approach for customizing Win 11 going forward. Excellent work as always! I’ll need to dig into it and see if I can contribute anything going forward.

  2. zakius says:

    personally I use AHK to add global hotkey to toggle visibility of main window of few persistent apps that are too stupid to not only have that hotkey but even to minimize to tray at all, forked an abandoned “best in class but lacking that one little thing” RSS reader (and somehow years later I am still making changes to it, oh well…), created (and later abandoned) polyfill injector in a form of extension to make usage of Waterfox Classic easier and later moved to G4 but use some dirty hacks to make some features removed in Quantum available again
    and obviously 7+TT, I use it merely for don’t group option, could live without everything else, but it’s a huge quality of life improvement

    I’ll take a look at Windhawk and may find other useful things, though apps I use generally allow me to set things up right

  3. jonathan says:

    Hi!
    I would have a question: is Windows 10 supported?
    I installed Windhawk 0.9.1 on W10 x64 (latest stable version), I see the tray icon, the two windhawk processes in the process manager, but I can’t show the GUI. When I click on the tray icon (or the entry in the start menu), Windows shows the UAC control, I accept, I see the “loading” cursor for ~1s, then nothing happens.
    Can I do something for helping?
    Thx!

    • Hi Jonathan!

      Yes, Windhawk runs on Windows 7 or newer. The GUI is a slightly modified version of VSCodium with a custom extension, so:

      • When the GUI is running, you should see it as VSCodium.exe.
      • It’s surprising that it doesn’t run at all, as the changes I did shouldn’t affect VSCodium so much that it fails to run at all.

      Let’s try the following:

      • Go to C:\Program Files\Windhawk\UI, create an empty folder named data, and run VSCodium.exe as administrator. Does it run? You can remove the created folder afterwards.
      • Perhaps there are missing files because something went wrong with the installation. Try installing Windhawk again.
      • Try extracting and running the portable version. You can either uninstall the existing installation, or, to avoid uninstalling, you can run the setup with the /portable command line switch.
      • jonathan says:

        You’re right, it was a permission issue. After creating the data directory and run vscodium, it said it cannot create “user-data” and “extensions” sub-directories (https://ibb.co/yNBWQNP).
        I added permissions and now everything works.
        Thx!

        • it said it cannot create “user-data” and “extensions” sub-directories

          Is that while running VSCodium as administrator? Running as admin should allow writing to Program Files and its subfolders unless you customized the folder permissions.

          Also, it still doesn’t explain your fix since when you open the Windhawk UI, it uses the C:\ProgramData\Windhawk\UIData folder, not C:\Program Files\Windhawk\UI\data, which is used when you run VSCodium.exe directly.

          • jonathan says:

            I ran VSCodium without admin rights. Yes, it weird 😀 I observed this:
            – create the C:\Program Files\Windhawk\UI\data folder
            – run VSCodium without admin rights: permission issue, can’t create C:\Program Files\Windhawk\UI\data subfolders
            – add permissions
            – run Windhawk, it works. Also, I see that C:\ProgramData\Windhawk\UIData is populated.
            – I deleted C:\Program Files\Windhawk\UI\data, then restarted Windhawk. C:\ProgramData\Windhawk\UIData is used, C:\Program Files\Windhawk\UI\data doesn’t exist

            I will uninstall and delete everything, try a new install, and see if C:\ProgramData\Windhawk\UIData is populated on first run.

            • jonathan says:

              This time everything worked fine. I did a regular install. I don’t know what happened the first time.
              Maybe I tried to start the GUI to quickly? I noticed the C:\ProgramData\Windhawk subfolders took some seconds to be created (it was empty, then, 1~2s later, some subfolders were created..), and I did not start the GUI immediately.

  4. vindy says:

    Hey is there any option to add this program to the startup

    • Hi,
      If you installed the standard version, it should run at startup unless you chose not to run it at startup the last time you exited. In this case, just run Windhawk again and it will resume running at startup. If you extracted the portable version, you’ll have to make it run at startup manually, e.g. by creating a shortcut in the startup folder.

      • DavJumps says:

        I love this app (as I’ve long loved 7+TaskbarTweaker)!

        However … Is there a way to run these mods at startup without the Windhawk GUI opening each time?

        Since the app works great, I do not need to interact with the app regularly. Thus the startup GUI is just something tedious I need to close out of as part of my log-in process.

        I’m using Windows 10 Pro 22H2 (Build 19045.4170). Thanks!

          • DavJumps says:

            Forgive me; but are you saying that if I hide the tray icon using the installed version there is no way to prevent the GUI from opening at every restart?

            Why can’t I hide both?

            If I need to update the app or browse for new tweaks I can just load it from the Start Menu 🤷🏻‍♂️.

            As for the portable version — how do I run it with the switches you mentioned? And will the portable version allow me to have the program run at startup but bypass the GUI and hide the tray icon?

            Thank you!

            • but are you saying that if I hide the tray icon using the installed version there is no way to prevent the GUI from opening at every restart?

              That’s not what I’m saying. You can hide both. The -tray-only name is slightly misleading – it just makes the main window not appear on launch.

              Sounds like you’re using the standard, not the portable Windhawk version. In this case, as I said, it should already be fine and shouldn’t open on system startup. Perhaps you somehow added it to run at startup manually. Open Task Manager, and check the Startup tab. If Windhawk is listed, disable it.

              • DavJumps says:

                Forgive me, again — I’m still confused.

                I don’t want to prevent WindHawk from running on startup — since I want the tweaks to work.

                I just don’t need the GUI to load.

                I’m really sorry if I’m missing something that should be obvious.

                Can’t thank you enough for your time.

                • By “open on system startup” I meant having the GUI to load. Windhawk it running at startup as a service, which loads the mods and created the tray icon.

                  In short, to have the mods loaded at startup, and not have the GUI show up at startup, you just need to install Windhawk and do nothing else. That’s the default behavior. Since the GUI shows up on startup for you, I assume you did something manually, such as setting Windhawk to run at startup one way or another. It’s unnecessary, hence my suggestion to disable it in Task Manager. Windhawk’s service doesn’t show up in Task Manager’s startup tab, so mods will still be loaded on startup.

                  • DavJumps says:

                    Ah! Okay, I think I’ve got you.

                    I was confused because when I kill the Winhawk Process in Task Manager, all the tweaks stop working. So I assumed I needed Windhawk running on startup.

                    I’ve removed it from startup and will test it out next time I shut down.

                    Thanks for your assistance!

          • DavJumps says:

            * To be clear, I don’t want to run a “tray only” switch in any case — my tray is cluttered enough as it is with tray apps I occasionally need to interact with.

  5. Fatih says:

    Another great job from a great person. God rewards us with your presence.

  6. Robert G. Koharchik says:

    I absolutely love your work!! Been using 7tt since Windows 7. I just discovered Windhawk and it seems to be a great direction for Windows 11.

    In case these are constructive, I have a few suggestions for the beta (I bet you’re already working on some of these, anyway):

    -When not grouping applications, to have an option for new windows in the taskbar to open next to existing pins of the same application type
    -Provide an option to not display the system tray icon (this makes the functionalities feel more native and makes it less obvious a 3rd party program is being leveraged.)
    -A mod similar to edgedeflector so the widget search opens with default browser instead of Edge

  7. iamqiz says:

    very good app, thanks for your development!
    and I want to realize that open bookmarks in new tab instead of current tab in chrome/edge, but my C language skill is very low , i can’t do it🤣

    • I’m glad that you like it 🙂

      If you decide to implement the bookmarks mod, I think that it can be done by subclassing the Chrome window (you can use this mod as a reference), intercepting WM_LBUTTONDOWN/WM_LBUTTONUP and replacing them with WM_MBUTTONDOWN/WM_MBUTTONUP. That way, Chrome will get a middle click event instead of a left click event. You just need a way to know when the mouse is over the bookmarks bar. For a start, perhaps hardcoding the bookmarks bar placement is good enough.

      • iamqiz says:

        thanks for your idea , i think the difficulty is that when mouse click bookmark , it is maybe not over the bookmark bar , because i click a bookmark inside a foler 😂 ,
        is it possible that i find the chrome bookmark openning function and replace it with command which open url in new tab?
        my English is very poor 😂 forgive me if you dont understand what i mean

        • is it possible that i find the chrome bookmark openning function and replace it with command which open url in new tab?

          It’s possible but I think that it’s going to be more difficult than what I suggested. Chromium is open source, so you can try, but it’s a huge project.

          the difficulty is that when mouse click bookmark , it is maybe not over the bookmark bar , because i click a bookmark inside a foler

          You can use UI automation to find out. Similar to what Textify does, but instead of grabbing the text, you can look at properties like the type of the element under the mouse cursor.

  8. Naruto says:

    Fantastic utility, with great mod examples. Although I just began using it, I’m already thoroughly impressed and started to wonder about its potential. For example, would it be possible to create a Windows Explorer mod similar to Text Replace that would automatically replace forbidden filename characters with allowed look-alikes (e.g.: https://pastebin.com/EidsGAPM) when you typed them in with Explorer.exe in focus? Hopefully the mod development will pick up and we’ll see more quality-of-life mods like that.

    • Yes, that shouldn’t be difficult. From a quick glance, the limitation is imposed by the CInputLimiter class in shell32.dll. It should be enough to hook CInputLimiter::OnChar and do the replacement. I’ll try to implement such a mod when I have some spare time.

  9. hacker1024 says:

    This is huge, and reminds me a lot of Xposed on Android.

    It’ll be great to see what kind of mods are developed as this (greatly, no doubt) increases in popularity.

    I’m excited from a development perspective as well – learning how to modify Windows apps seems significantly more complicated than what I’ve done on Android, but this project makes that process a lot more enticing for the reasons you mention.

    • Yes, Windhawk was indeed inspired by Xposed and by other projects such as Greasemonkey.

      I’m not sure how modifying Windows apps compares to Android, I’m less familiar with the latter, but it’s not that simple in Windows and requires some understanding of Windows internals. If you’d like to try yourself in mod development, you’re welcome to join the Discord channel for help and discussion.

  10. pepak says:

    Is it possible to start just the engine along with the compiled mods, rather than the full thing including GUI? VSCodium is rather resource-heavy and I don’t really need it most of the time.

    • For the portable version, you can run windhawk.exe with the -tray-only command line switch. For the standard version, that’s already the default behavior – the command line switch is used by the service to show the tray icon when a user signs in.

  11. Gus says:

    It’s a brilliant idea, and very creative. I’m sure executing requires even more creativity. And I value 7+ Taskbar, so i have an anchor application in mind.

    My concern is that windhawk will become an attractive attack surface. Hack Windhawk, and you basically can hack any program or even OS module in a PC. This invites two questions:

    What is you approach to security?
    Wouldn’t Microsoft and all security programs (Anti-virus) detect windhawk as a serious security risk and flag it or even block it somehow? Would you work with Microsoft to mitigate that?

    • Hi Gus,

      It’s a brilliant idea, and very creative.

      Thank you 🙂

      Hack Windhawk, and you basically can hack any program or even OS module in a PC.

      That’s not specific to Windhawk. Windhawk can inject code into other processes (as long as system permissions allow that), but so are other programs, it’s just that other programs don’t usually use that ability. For example, if Zoom is hacked on your system, the malicious code that takes control can inject into other programs such as the browser or OS modules. If Zoom’s update service (which is running with admin privileges) is hacked, the malicious code will have more capabilities. It’s not theoretical, it was demonstrated many times, but luckily it’s not easy to do.

      What’s unique to Windhawk is that users can try and submit malicious modules, and these modules can do harm. This is similar to downloading a malicious program or installing a malicious extension in Chrome (happened many times, too). To help mitigate that, all Windhawk mods are open source, and I verify the submitters’ GitHub/Twitter accounts, so users can decide whether they trust the code and/or the author.

      Wouldn’t Microsoft and all security programs (Anti-virus) detect windhawk as a serious security risk and flag it or even block it somehow? Would you work with Microsoft to mitigate that?

      I hope not. For now, Windhawk works on a standard Windows installation. It might not work with third-party security programs, especially if we’re talking about enterprise security solutions which are usually stricter. Unfortunately, I have no control over this and Windhawk just won’t be usable in these environments.

  12. denis says:

    Can I make Windhawk start without UAC when called from its tray icon, in the right of the taskbar. I know I can silent the UAC for all runs. For safety, I prefer to use the elevated Shortcut trick (through Windows Task Scheduler) on selected runs.

    This way I made one for Windhawk on my Desktop. It would be fun to get the same from its tray icon. This is petty compare to the great work you make for us. Hats off to you!

    • denis says:

      Oh! No, even through Task Scheduler, I couldn’t make. Most probably because we can install mods with Windhawk. So, you can delete this post.

    • That’s a good idea, I’ll consider adding it an an option. The Task Scheduler trick will probably work for you if you add the -run-ui command line switch to the Windhawk command line in the task scheduler (i.e. windhawk.exe -run-ui).

    • Thanks again for the feedback, I made it the default behavior in Windhawk v1.0.

      • denis says:

        Yes, I saw that Yesterday. A pop-up came to update. I clicked on it and it seems to process completly. Then I openned the UI telling me that I’m still on v0.9.2
        So:
        – I downloaded and ran the full install. In it, I required the Update and it failed on “changing” the VSCodium program (Sorry, I couldn’t capture the error with your great Textify).
        – Exit Windhawk, Update and “v1.0 beta” now shows. 🙂

        • I clicked on it and it seems to process completly. Then I openned the UI telling me that I’m still on v0.9.2

          There’s no automatic update in Windhawk, maybe there will be in the future. Currently, clicking on the notification just opens Windhawk. You have to update manually as you did.

          it failed on “changing” the VSCodium program

          It should have been closed automatically. If you encounter this error again, please try to grab the error message or a screenshot. Thanks.

  13. Tony says:

    Hello, is it possible to hide the Windhawk icon from the system tray in Windows 11?
    The 7+ Taskbar Tweaker had an option for this in the settings which is neat. Thanks

  14. Dmitry Barabash says:

    Thank you for the great app!

    I have a question, if possible. Is there an ability to run Windhawk minimized? Something like 7+TT’s -hidewnd command line parameter?

  15. Donduck says:

    Hello, how does the timer resolution control work exactly? Does it set the lower bound for timer resolution, or the upper bound of it? My understanding of the mod is to set the upper bound to save more power. If it just sets the lower bound, processes and threads can still use highest timer resolution when possible.

    • Hi, you can see the source code here.

      Does it set the lower bound for timer resolution, or the upper bound of it?

      It sets the lower bound for the delay between timer events, see here. The limit is defined as “The lowest possible delay between timer events, in milliseconds”. That means that apps won’t be able to set the timer resolution to be more frequent than the limit, which will save power.

      The terminology is confusing. MinimumResolution is a larger number than the MaximumResolution, since MaximumResolution means more frequency, which means a smaller delay between events. You can see the description of the arguments here, too.

      • Donduck says:

        When I play(and pause) an online video webpage or local video player (which lots of people do), and put it in background, the timer resolution is still set to a relatively high value reported by all timer tools I can find. How much do you think media timers with high resolution hurt battery life?

        • When I play(and pause) an online video webpage or local video player (which lots of people do), and put it in background, the timer resolution is still set to a relatively high value reported by all timer tools I can find

          The programs probably don’t bother to restore the timer resolution when the video is paused or minimized. That might behave better in Windows 11. Quoting MSDN:

          Starting with Windows 11, if a window-owning process becomes fully occluded, minimized, or otherwise invisible or inaudible to the end user, Windows does not guarantee a higher resolution than the default system resolution.

          How much do you think media timers with high resolution hurt battery life?

          I don’t know. According to Chrome developers, a change that they did to lower the timer resolution when running on battery resulted in a ~4% system power savings.

          • Donduck says:

            I was reading Windows Internals and it says timers are only handled on cpu0 for modern standby enabled laptop (page 73 chapter 8 part 2 7th edition). I used the kernel debugger and confirm non modern standby enabled laptops also has the same behavior.
            My question is: Windows has Intelligent Timer Tick Distribution and timer coalescing since 7, and tickless timer since 8, is it still necessary to put all timers on cpu0 for power saving purpose?
            Also, do you think the same idea of power saving applies to interrupts? Windows has an interrupt routing setting that can route interrupts to cpu0/cpu1.
            My understanding is that, parallelism is always preferable to increase efficiency, I see no reason to affinitize the first core with lots of things.

            • Frankly, I didn’t dive so much into the internals of CPU scheduling, distribution between cores, etc. You might want to direct these questions to Bruce Dawson who wrote several blog posts on the subject and did some research. I created the mod based on his blog post, but I didn’t do extensive research on the subject.

              • Donduck says:

                Hello again. You can actually use the “SetProcessInformation” and “SetThreadInformation” to limit high resolution timer requests. It is the default behavior on Windows 11, but not on 10. I believe media timers would also be neglected with these functions, and they are simpler approach than the current mod.

                • Interesting. Looks like large parts of the APIs were added in Windows 11, including the behavior of PROCESS_POWER_THROTTLING_EXECUTION_SPEED and the PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION flag. The mod uses a different approach which gives more control and supports older Windows versions, but also less simple as you noted.

  16. Nihat says:

    What you do is great! I have a lot of respect for you. Many thanks for your Windows 11 support.

  17. Hugo says:

    Hi, I love this tool. It’s helped me in many ways.

    Unfortunately, I’m not a very good developer so my skills are pretty basic so I can’t create a module for it.

    Is it possible to create a mod that allows the Windows 11 clipboard to “refresh” the last used item copíed?

    I mean, If I have 3 items in the following order (for example):

    A
    B
    C

    And I call the Windows 11 clipboard using Windows key + V and select item C, The item C stays in the same place. This means that, after several more items copied, the item C will go WAY below third spot.

    The idea is to be able to select item C and make the list refresh so it looks like:

    C
    A
    B

    Basically, bringing the item used to be at the top of the list because it was the last item pasted or used.

    Is it possible to create such a mod?

    Thank you in advance and kind regards.

  18. Mashuu says:

    Ok, I have weird ass problem with Windhawk. When it’s running (even without any mods active) I am not able to run Anno 1800. Bought from Steam, but can’t run it neither from Steam (that’s supposed to call Ubisoft Connect) nor directly from Ubisoft Connect. No pop-ups, no error windows, only trace of problem is error in Event Viewer, log here:
    https://pastebin.com/xNQq6yD4

    It’s definitely problem with Windhawk, cause it’s enough to close it and game launches perfectly.

    • Can you please create a crash dump and send it to me?

      You can use ProcDump. Run procdump64.exe -mp -e Anno1800.exe and trigger the crash. The dump will be written to a file, the details will be printed in the ProcDump console window. You can email the file to me.

      Meanwhile, as a temporary measure (or permanent if we don’t find a solution), you can exclude Anno1800.exe in the advanced settings. Let me know if you need help with that.

  19. Jeffrey says:

    Windhawk’s “Taskbar Clock Customization” mod will not operate with Explorer Patcher installed. (https://github.com/valinet).

    Any thoughts as to how (or if) I can resolve the conflict?

    • From the mod’s details text:

      Note: To customize the old taskbar on Windows 11 (if using Explorer Patcher or a similar tool), enable the relevant option in the mod’s settings.

      Have you tried enabling the relevant option (at the bottom of the settings)?

      • Jeffrey says:

        Yes, I have tried that several times, including trying to restart Explorer rebooting, etc.

        Edition Windows 11 Pro
        Version 22H2
        Installed on ‎1/‎24/‎2023
        OS build 22621.1192
        Serial number
        Experience Windows Feature Experience Pack 1000.22638.1000.0

        • Can you please run it with debug logs and post the output?
          • Disable the mod.
          • Enable “Detailed debug logs” in the mod’s Advanced tab.
          • Click on “Show log output”.
          • Enable the mod.
          • Verify that the mod doesn’t work, copy the log output and post it here via pastebin or a similar service.

          • Jeffrey says:

            I am unfamiliar with Pastebin. I did download and submit logs to Pastebin, but how do you know where to find it. Perhaps this URL: https://pastebin.com/reGaJdNY

            I also saved the output to a TXT file.

            • According to the logs, you’re using Windows 11 version 10.0.22621.1192, which is a release preview build. The problem is that Microsoft didn’t publish debug symbols for this version of explorer.exe. They might publish the missing symbols in the following days, or they might skip it since it’s a preview version. Unfortunately I don’t have control over this, so your options are either wait or downgrade to the previous version by removing the latest Windows update.

  20. Alloyd says:

    Hi there, i’m new at using Windhawk. While using mod “Taskbar Labels for Windows 11” i can see that this is a little buggy, like with icons on the taskbar buttons.

  21. Dmitry Barabash says:

    Unfortunately, the new KB5022913 cumulative update has broken all features of WindHawk.

  22. Jeffrey says:

    New Cumulative Update Preview for Windows 11 Version 22H2 for x64-based Systems (KB5025305) breaks Windhawk. To resolve, uninstall the update preview.

  23. Sergey says:

    Hi
    The antivirus deletes the file when it tries to run.
    Antivirus – drweb: Probably DPH:Trojan.Inject.3.64
    The pre-scan does not find a threat. I can’t use your program.
    Please help me (((
    Windows 11 22H2
    Sergey

    • Hi Sergey,

      Windhawk injects code into other programs, so at least part of the detection is correct, the “Inject” part. The “Trojan” part is grossly wrong, but it’s unfortunately common for antiviruses to incorrectly detect software which is not very popular as malicious.

      You can try adding Windhawk to your antivirus’ exclusion list. For other solutions, please contact Dr. Web support.

      • Sergey says:

        Dr. Web support refused to help me.
        Windhawk injects code into other programs – Is it really necessary? i just need only a mod taskbar-icon-size. Can you implement it without injects?
        TranslucentTB make do changes to the panel without injects. But they do not know how to change the size of the icons. Can you do the same without injects?
        I can’t add your program to antivirus exclusions 🙁
        I don’t have access to antivirus settings on my computer.

  24. ericvids says:

    I just updated to 1.3.1 and it says that there’s an update to the “Disable grouping on the taskbar” mod (1.2.2), but when I tried to install it, it complains with a “Compilation failed, the mod might require a new Windhawk version”. I tried uninstalling the currently installed version, but it still does this (and now since the old version is gone, I can’t reinstall that).

    Could it be that I’m using this on Windows 10? (While Win10 has native ungrouping functionality, I prefer Windhawk’s because it allows me to reorder windows of the same app, e.g., multiple Excel instances.)

    • After getting the error, can you open the following file and post its content?
      %ProgramData%\Windhawk\EditorWorkspace\compiler_errors.log

      • ericvids says:

        Thanks for the quick response!

        The error was some header file not getting found. I unfortunately don’t remember what it was, but it was a header file that did not exist in my installation. I then figured that it was probably because I did not cleanly install windhawk (I had a pre-1.0 installation, and probably the existing bundled headers were not correctly upgraded to new ones).

        Anyway, thanks, it’s working now after I cleanly reinstalled.

  25. Luk says:

    Thanks for this software. 感谢这个软件,解决了一个我非常必要的需求:Chrome标签用滚轮切换的需求。

  26. ArmorOfGod says:

    Sorry if this is a dumb question. I’m on Windows 11 now, so I just set up Windhawk to install a few of the mods that are available (including the main one I got 7+TT for in the first place, Disable Grouping). Now, do I need to keep 7+TT installed on the machine in order for the Windhawk mods to work properly? Or are those modifying Windows directly, and therefore do not need 7+TT at all?

    Also, what would be the best way to stay up to date with future updates to 7+TT (or a brand new 11+TT)?

    • Now, do I need to keep 7+TT installed on the machine in order for the Windhawk mods to work properly?

      Not at all. Both tools are independent, so you can safely disable or uninstall 7+ Taskbar Tweaker and keep using Windhawk.

      Also, what would be the best way to stay up to date with future updates to 7+TT (or a brand new 11+TT)?

      You can bookmark or subscribe via RSS to the relevant feeds:

      Note that as I wrote in some of the blog posts, “a brand new 11+TT” is unlikely to be created. At least for the near feature, new customizations will be added as Windhawk mods.

  27. Jeffrey says:

    Running Windhawk’s Taskbar Clock Customization mod along with Explorer Patcher, the Text Color options in settings do not activate. If I uninstall Explorer Patcher, the text colors work fine. Any workaround at this time?

    • I’m not too familiar with Explorer Patcher, but as far as I know, it restores the old Windows 10 taskbar, and has an option to keep using the new Windows 11 taskbar. The Taskbar Clock Customization visual settings apply only to the new taskbar.

  28. George says:

    Hi Michael

    I’ve just installed the Windows 2023-09 cumulative preview 22H2 (now on 22621.2361) and the Taskbar height and icon size mod has stopped working.

    It was working perfectly beforehand; I’m guessing something has changed in the update.

    Is there anything I can do to get it working or does the mod need an update?

    Thank you

  29. Matthias says:

    Hello again,
    I also wanted to mention that when installing, Windhawk (the installer) says it needs almost 600 MB. This is confusing…

    • If by confusing you mean that it’s surprising that the required size is so large, the reason for that is that Windhawk is based on two pretty large projects: VSCodium and LLVM/MinGW. The former provides the UI and, more importantly, an advanced development environment for mod developers. The latter allows to actually build the mods from the source code. Note that when running in the background, Windhawk is very lightweight and uses just around 1-2 MB of memory.

      In theory, an alternative Windhawk version could be created that doesn’t use these projects and instead downloads pre-built mods from the internet. That would make it slimmer, but will also make it much more difficult to verify that the mods are safe, and transparency is one of the core values of Windhawk.

  30. Peter Meier says:

    Since i updated to 1.4 my mouse cursor keeps showing the blue circling load icon, like every 500 ms. It stops only when exiting Windhawk.

  31. Alan says:

    Installing Windhawk, automatically sets the taskbar height to something between Windows 11 medium and Start11 small. However, at least on my laptop, it seems the size reduction is obtained by moving the taskbar lower, beyond the screen. The result is the icons are only partially visible, the lower part being cut off. Is this a bug for any user, or it is just on my laptop?

  32. Cesar says:

    Hi. With version 1.2.2 of Task Labels for Windows 11 the windows of the same application are no longer combined in the taskbar.

    With version 1.2.1 this did not happen.

    Do you know this problem? What can I do?

    Thank you.

  33. oladufka says:

    I have an idea for a mod. Double-clicking on the desktop hides/shows its icons.
    If someone can do this, I will be very glad.

  34. pepak says:

    Hi Michael, in Windhawk version 1.41 the Slick Window Arrangement plugin stopped working for legacy console applications. GUI applications work just fine, the new Terminal application also works fine, but anything run through conhost.exe (e.g. cmd.exe) no longer snaps to desktop edges or other windows. Windhawk 1.31 was fine in this aspect. Windhawk reports the mod is loaded into the target processes though not conhost.exe – maybe that is the problem?

    • Right, the problem is that conhost.exe is marked as a system process, and Windhawk doesn’t inject code into it by default. It’s tricky to find the right balance between safety and functionality, I’ll keep gathering user feedback and will adjust Windhawk accordingly.

      For now, you can follow these steps:

      • Add conhost.exe to the process inclusion list in Windhawk’s advanced settings.
      • Go to the Advanced tab of Slick Window Arrangement, and add conhost.exe to its custom inclusion list.
  35. Jermain says:

    Hello, Michael. I’m new to Windhawk, and am curious as to whether the “Taskbar Labels” mod can show the button labels while still leaving them combined. Is there extra coding I need to apply? (I’m not a software developer). BTW, I’m asking for Win11-23H2.

  36. Jermain says:

    It’s possibly a known that the mods which utilize scrolling over the taskbar don’t function in that capacity. If they include other features, where applicable, those work fine; but anything that specifically requires scrolling the mouse over the taskbar doesn’t get processed. This post is just in hopes that there is something I can do to make these actions functional.

    • What do you mean? Do they just not work for you?
      Note that there’s a known limitation with certain trackpads, see:
      https://tweaker.userecho.com/topics/826-scroll-on-trackpadtouchpad-doesnt-trigger-mouse-wheel-options

      One workaround is to use the “pinch to zoom” gesture.

      • Jermain says:

        Yes Michael, scrolling over the taskbar never gives any results.

        I’ve tried these 3; which have never responded:
        Taskbar Volume Control
        Cycle taskbar buttons with mouse wheel
        Taskbar minimize/restore on scroll
        (scrolling over the thumbnails is fine with this one!)

        This 1 works; but obviously doesn’t involve the taskbar:
        Chrome/Edge scroll tabs with mouse wheel

        My PC is a MS Surface tablet with a trackpad, but I use a wireless mouse with a scroll wheel through USB.

        “pinch to zoom” doesn’t seem to work at all with my tablet’s trackpad {this isn’t related to Windhawk; nothing happens anywhere in Windows when I pinch the trackpad}. I did ensure that pinch to zoom was enabled in the settings. Could that have something to do with why the mouse wheel itself won’t scroll on the taskbar?

        • Frankly, I don’t know. The issue I’m familiar with, with trackpads, is that the taskbar just doesn’t receive mouse scrolling events, and there’s nothing 7+ Taskbar Tweaker can do about it. I assume your issue is similar, as the event handling does nothing special. So perhaps it has something to do with the way the taskbar is implemented, the Surface tablet, and/or your mouse.

          Now that I think of it, an interesting experiment can be to try the Windows feature to control the system volume by scrolling over the volume tray icon:
          https://www.windowslatest.com/2022/12/21/windows-11-22h2s-new-feature-lets-you-adjust-volume-with-mouse-wheel/

          This can help check whether the issue is specific to Windhawk mods.

          • Jermain says:

            Thanks. That tip indicates there’s probably a difference in how my tablet treats the taskbar, because that native tray icon feature doesn’t work either. I even use mods within the applications WizMouse and Winaero Tweaker to send scrolls to the mouse’s location. But still, nada… I toggled the “Optimize taskbar for touch.. on tablet” Windows setting, but that didn’t effect anything.

            Oh well, my situation just doesn’t support taskbar scrolling. Thanks for your receptiveness, it was worth a try!

Leave a Reply