Skip to content

Releases: builtbybel/NixThis

NixThis 0.42 - Ready for daily use

Choose a tag to compare

@Belim Belim released this 04 Oct 10:51

NixThis 0.42

What uBlock does for websites, but for Windows itself.

Version
Filter list
Windows

NixThis_Press

Hello, world is the first thing a program ever says. It is also, roughly, the last thing
Windows says before it starts talking over you: a button nobody asked for, a suggestion in
Start, an ad on the lock screen, a full screen page after an update explaining how much better
everything is now.

NixThis is five days old. This is the build where it stops being an experiment and starts being
a tool. Point at the thing, read what will change, make it go. Everything it took can come back.

NixThis icon

Also: NixThis has a face now.


New

The funnel learned about the things you cannot point at

Fifteen switches had no home before. They are grouped by subject now, rather than by a place on
screen that does not exist.

Group Filters What sits there
Ads 6 Advertising ID, finish setup prompts, tips, Settings suggestions, the page after an update, tailored experiences
Privacy 8 Activity history, diagnostic data, Recall, app launch tracking, location, speech, Narrator, background game recording
Apps 1 Apps installing themselves, plus everything actually installed

Every entry in the funnel carries the count of what is behind it. The funnel icon turns red
while a category is on, because the search box has to stay free for typing.

Installed apps have their own place

They used to be filed under Start menu, which was true only in the sense that Start happens
to list them.

A rule matches labels in Windows' language, not yours

The picker reads text off the screen, and that text follows Windows. Set NixThis to German on an
English Windows and name based rules used to quietly stop matching. Matching strings are read
from the system locale now, independent of the language you picked for the app.


Fixed

Widgets actually goes away

The old rule wrote TaskbarDa, the per user switch that only hides the button. The feature stayed on behind it

[Widgets]
Path=HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Dsh
ValueName=AllowNewsAndInterests
RecommendedValue=0
DefaultValue=<deletevalue>

Important

This one is machine wide, so Windows asks for an administrator. NixThis tries it normally
first and offers to restart elevated if Windows refuses.

One filter less, because two were the same filter

News and interests wrote EnableFeeds under Windows Feeds. Microsoft's own Policy CSP page
lists that setting as not applying to Windows 11 in any edition. It was a filter that did
nothing, and it is gone.

The picker no longer fights the cursor

Pointing used to make the whole desktop wait. Details in the fold.

Why a mouse hook made the cursor stutter

A global WH_MOUSE_LL hook is delivered to the thread that installed it, and Windows holds the
input until that thread answers. NixThis installed it on the UI thread, and then did the UI
Automation lookup on that same thread, every 60 ms. Measured on a 1920x1080 display, that lookup
costs between 1 and 13 ms, 54 ms on the first cold call

So for a fifth of every frame, the thread that owns your mouse input was busy asking another process what sits under the pointer

The lookup runs on a thread pool thread now and hands back plain values, which is exactly the
arrangement Microsoft's threading guidance for UI Automation clients asks for: all calls from a
separate MTA thread, never from the thread that draws your own UI. The frame stopped flickering
on the way, and the expensive subtree walk is skipped where FromPoint already returns a named
leaf, verified against the old path across a screen grid with zero differences.

A GDI leak in the picker frame

One Region was allocated per element you hovered and none were ever released

Two rules matched the wrong way round

Suggested notifications looked for omnibuttonleft, which is not what the tray reports.
Edge sidebar had no stable id at all and matched on visible text, so it only worked in English.


Better

  • Apply changes counts. The button says how many ticks disagree with reality and greys out
    when the answer is zero. A button that does nothing is worse than a button that admits it
  • Filter list v1.1. Sixty sections, fifty two of them rows in the list, the file reordered so
    reading it top to bottom follows the window
  • Writing a filter is documented. Filters.md takes a line from
    Sightings.log and turns it into a working section, in English and
    german. Translating the app is Translations.md, and it is
    still one file in Localization and nothing else
  • The grid stopped counting on its fingers. Cells were addressed by index, so row.Cells[2]
    meant Status until somebody inserted a column. They go by name now

Unchanged, on purpose

Note

Everything NixThis knows lives in one file, Data/Filters.ini. Swap it and
NixThis knows different things. It carries its own version, which is why the list is already at
1.1 while the app is at 0.42.

  • Most filters are one documented registry value. No patched system files, no disabled services,
    no mystery script behind an Optimize button
  • Portable. Windows 10 or 11, .NET Framework 4.8
  • Nothing runs in the background
  • Nothing leaves the machine unless you press Explain
  • A grey frame still means NixThis does not know that element. The sighting is written to
    Data/Sightings.log, stays on your PC, and is where the next filter comes from

Warning

Removed Store apps are the one thing with no real undo. Windows does not offer one, so
Bring it back opens the matching Microsoft Store page instead.


Before this one it was called Poof.
The name lasted a day longer than the first prototype did.