This is not an updater. Due to the sensitive nature of Windhawk, it has no auto-updating mechanism, only update notifications (this file is part of that).
When you install or run a program, how do you make sure it doesn't include malware? I assume that you check for the author's record/reputation, and perhaps look at the source code if it's available.
It's similar with Windhawk mods. The GitHub and X profiles are verified to be the profiles of the author, so you can decide whether you trust them. The source code is available, so you can inspect it as well. Mods are single-file and usually short, which makes it easier to review than an average program.
The reason the Windhawk UI is based on VSCodium is mainly for the mod editing functionality. VSCodium with clangd are used for C++ intellisense out of the box.
You might say that many users don't care about mod development and don't need it. I agree, and I have it on my list to create a lite Windhawk version which doesn't depend on VSCodium.
Note that VSCodium is only used for the UI. When Windhawk is running in the background, its memory consumption is a couple of MB.
Hi, Windhawk author here. Nice to see it on Hacker News.
This is just one Windhawk mod, submitted by a community member. There are hundreds others. Windhawk was created to simplify Windows customization and to make it more accessible, both for developers and users. For a more detailed introduction, check out the Windhawk release blog post:
Thanks for the tip, I tried that. It might be a bit faster, but in my tests, it wasn't significant, and it still enumerates all system threads which means that it becomes slower the more threads your system has.
A truly fast and documented solution is using PssCaptureSnapshot, it can enumerate only threads of the target process. It uses NtGetNextThread under the hood. The downside: it's only available from Windows 8.1.
Using NtGetNextThread is not only fast and available from Windows Vista, it also allows avoiding race conditions - what happens if a new thread is created after the snapshot is created? A snapshot returns thread ids, what happens if one of the threads is destroyed? What happens if the thread id is reused (unlikely but possible)? I believe all the benefits I'm getting by using NtGetNextThread are worth using an undocumented function.
I'm using VSCodium not only for the labels and buttons, but also for its code editing capabilities. In development mode, you get features such as code navigation and code completion. My rational is the following: storage is cheap, and the resource usage is only relevant when the UI is shown. The tray icon and the background service are implemented in C++ and are very lightweight.
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. Check out the introduction blog post for more details:
https://ramensoftware.com/windhawk
https://windhawk.net/mods/taskbar-button-scroll