SlopScore
00 crowd

hgfloater (github.com/rubidus-api/hgfloater)

HGFloater is a lightweight, high-performance quick launcher and task switcher for Windows 11 and above. Built exclusively with pure C and WinAPI, it offers a fast and responsive experience through translucent floating boxes and optimized keyboard/mouse interactions.
C · ★ 5 · 0 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)other
listed 2 hours ago by rubidus-api · last checked 32 minutes ago · demo
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-11: a tiny pure-C Win32 launcher and task switcher for Windows 11; the author lists the method as 'developed with AI assistance, in the "vibe coding" style'. 5 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as rubidus-api. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
HGFloater is a lightweight, high-performance quick launcher and task switcher for Windows 11 and above. Built exclusively with pure C and WinAPI, it offers a fast and responsive experience through translucent floating boxes and optimized keyboard/mouse interactions.
website
https://github.com/rubidus-api/hgfloater
topics
amd64win11winapiwindowswindows-11windows-desktopwindows-desktop-appx64x86-64
created
2026-04-17 · pushed 12 hours ago · 346 commits · 2 contributors
release
v0.17.13 · 2026-09-11
languages
C 96%Shell 2%Python 1%Batchfile 0%Makefile 0%PowerShell 0%
paperwork
licensereadme 42% health
dependencies
no dependency graph (no manifest, or disabled) · OSV.dev, checked 2 hours ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
other
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
batchfilecmakefilepowershellpythonshell
topic (detected)
amd64win11winapiwindowswindows-11windows-desktopwindows-desktop-appx64x86-64
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: a tiny pure-C Win32 launcher and task switcher for Windows 11; the author lists the method as 'developed with AI assistance, in the "vibe coding" style'. It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README (read the rest on GitHub)

HGFloater

English | 한국어

v0.17.13 — built 2026-09-11

Download hgfloater.exe — v0.17.13, 650 KB · All releases

HGFloater is a lightweight desktop utility for Windows 11 and above. A small translucent widget floats on your desktop; clicking it opens a dashboard that launches your shortcuts, switches between running windows, and puts volume, brightness, opacity, and a command console one click away. It is written in pure C against the Win32 API with zero external dependencies: the whole program is a single executable of about 650 KB that needs no installer and no runtime, so it starts instantly and stays out of your way.

screenshot


Table of Contents

  1. Overview
  2. Install and First Run
  3. The Two Windows
  4. The Floater
  5. The Taskbox
  6. The Toolbar
  7. The Options Menu
  8. The Command Box
  9. Monitor Thumbnails
  10. Notes
  11. Keyboard Reference
  12. Mouse Reference
  13. Configuration File
  14. Files and Directories
  15. Building From Source
  16. Project Layout
  17. Tests and Verification
  18. About the Developer
  19. The HellGates Series
  20. License

1. Overview

HGFloater aims at one thing: making everyday desktop control faster than the stock taskbar allows. It works as a quick launcher, a task switcher, a system control panel (volume, per-display brightness and scaling, window opacity, screen lock), a command box for driving windows by name and number, and a note pad - all reachable from a widget you can park anywhere on any monitor.

Design principles worth knowing before you use it:

  • Nothing runs in the background but the app itself. No services, no installer. A single hgfloater.exe. It writes exactly one registry value, and only if you switch Start with Windows on - the ordinary per-user Run entry, which you can see and delete yourself.
  • Plain files on disk, in one folder. Settings live in a plain config.ini under your user profile, and notes are plain .txt files beside it. Nothing is a database, everything is editable by hand, and the program writes no logs, caches, or temporary files.
  • Everything is adjustable in place. Size, opacity, font size, grid shape, and colors change live with the wheel or the keyboard, and persist by themselves.
  • Keyboard and mouse are equal citizens. Every action has both a pointer gesture and a key.
  • The taskbox has no background of its own. The desktop shows through between the icons and behind the function buttons and shortcuts; only the icons, their labels and the border are drawn. Each lettered function button keeps one white line around it, because a button needs an edge to be a button. A side effect worth knowing: clicks land on whatever is behind those gaps, so drag the box by its M button rather than by the space between icons.
  • It follows the system theme. Switching Windows between light and dark mode re-colors everything immediately. The widgets invert it on purpose - a control has to stand out against the desktop behind it - while the document windows (notes, note list, clipboard history, command box, About) follow it directly: light grey page with black text on a light theme, black page with white text on a dark one. Under high contrast both defer to the colors you chose there.

2. Install and First Run

  1. Download the latest hgfloater.exe from the Releases page.
  2. Run it. There is no installer. On first launch it creates %USERPROFILE%\.HellGates\hgfloater\ with a config.ini and a shortcuts folder, then shows the floater.
  3. Add shortcuts. Drop .lnk or .url files into %USERPROFILE%\.HellGates\hgfloater\shortcuts. They appear in the taskbox automatically; press Esc in the taskbox to re-scan the folder immediately. A shortcut that points at a folder goes to the Dir button's list rather than the icon grid.
  4. Summon it from anywhere with Win + Alt + Space (configurable).

Only one instance runs at a time. Launching hgfloater.exe again simply signals the running copy instead of starting a second one.

Checking what you downloaded

The executable is unsigned, so nothing but the file itself vouches for it. Three ways to check, none of which require taking anyone's word:

  • Verify the file. Every release lists the SHA-256 of the download. In PowerShell: Get-FileHash .\hgfloater.exe -Algorithm SHA256. If it matches the release notes, you have the file that was built here.
  • Try the .zip, when a release carries one. Some releases also offer the same executable inside a zip, which browser download-protection tends to treat less harshly.
  • Read the source. All of it is in this repository under the MIT licence, and the build is reproducible from the included Makefile / build.bat.

One thing the binary demonstrably cannot do: reach the network. It imports no socket, HTTP, or download function of any kind, so it cannot phone home, fetch anything, or send anything anywhere.

Two features are switched off in the published builds until the executable is code-signed — the maximize-button menu, which needs a system-wide mouse hook, and Start with Windows, which writes one value under the per-user Run key. Both stay in the options menu, greyed, reading (off in this build).

3. The Two Windows

HGFloater is built from two windows that trade places:

Window What it is How you get it
floater A small always-on-top widget: clock, date, host name, and system bars. The default state.
taskbox The dashboard: running windows, your shortcuts, and the toolbar. Click the floater, or press the global hotkey.

Expanding centers the taskbox on the floater and then pushes it fully inside that monitor's work area, so a floater parked at a screen edge never yields a clipped dashboard. Collapsing returns the floater to where it was — and if you moved the taskbox while it was open, the floater travels the same distance, so the pair stays where you left it.

4. The Floater

The floater is the resting state: a compact translucent panel that stays on top of other windows.

What it shows

  • Clock and date, refreshed every second, sized proportionally to the widget itself.

  • Host name in a thin line across the top.

  • Status bars for CPU, temperature, GPU, memory, and battery: horizontal bars running behind everything - the host name included - with small labels down the left edge and each row's reading printed down the right. Full width means 100%; the two temperature rows use their own scale, below. A row whose value the machine does not report is absent entirely, which is why desktops have no battery row and machines without sensors have no TMP or GPU. Set show_stats=0 in config.ini to hide the whole panel.

  • TMP is drawn on a fixed 20 to 100 degree Celsius scale rather than as a percentage, with the reading printed on its own bar, because the difference between 55 and 75 degrees matters more than a few pixels of bar length can say.

    GPU follows it on the same scale, and it gets a better answer than the CPU does: the adapter's own sensor, read through the same interface Task Manager uses, with no vendor SDK and no driver. Plenty of drivers report nothing, and those machines simply have no GPU row.

    The CPU reading is read from an ACPI thermal zone your firmware exposes. That is the only temperature reachable without installing a kernel driver and running as administrator, and it is worth knowing what it is: a sensor on the board near the CPU, not the CPU die. It tracks the processor without being it, and it lags under a sudden load. Many machines expose no zone at all - on those the row simply is not there, the same way the battery row is absent on a desktop. If you need true per-core readings, use a tool built around a hardware-monitoring driver; HGFloater will not become one.

    Firmware usually declares several zones, and often puts one it never updates in front of the live one, so a single reading taken blindly is a coin toss. HGFloater reads every zone, from both surfaces Windows offers - the WMI class and the thermal performance counters, which do not always agree about being available - and prefers a zone it has watched change over one that has only ever held the same number. Type list sensors in the command box to see all of them and which one is on the bar.

What you can do to it

  • Left click — toggles the taskbox, from anywhere on the floater. It opens in place, and the floater hides itself while the taskbox is up.
  • Hover — nothing, unless Open the Taskbox on Hover is switched on in the Options menu. With it on, resting the pointer on the clock's minutes — the two digits after the colon, and nothing else on the floater — opens the taskbox. The click above keeps working from anywhere either way.
  • Left drag — moves the floater anywhere on any monitor. A press and release without moving is a click and toggles the taskbox; a few pixels of travel makes it a drag instead. Alt + drag does the same and is the one to use with Open the Taskbox on Hover switched on, since the dashboard opens under the pointer before an ordinary drag can start.
  • Alt + Wheel — opacity.
  • Ctrl + Wheel or Ctrl + Left drag — font size, which scales the whole widget with it.
  • Alt + Arrows / WASD — moves the window from the keyboard.
  • T — opens the taskbox. C or Ctrl + E — opens the Command Box. F1 — About.

When the cursor leaves the taskbox, it collapses back to the floater after a half-second grace period, so brushing past the edge does not dismiss it.

4.1 The maximize button menu

While HGFloater is running, right-click the maximize button — the one left of the X — on any window, and you get HGFloater's menu for that window: Move to (0, 0), the same size presets the task icons offer, and Close, which shuts the menu without touching the window. Left-clicking the button still maximizes; right-clicking a caption button does nothing in Windows, so nothing was taken away.

It works on HGFloater's own document windows too — a note, the note list, the command box, the About window — and on any window whose title bar answers hit-tests its own way (a PuTTY-style utility): where the window declines to name its buttons, the DWM-computed button bounds say which third the click landed on.

Switch it off with Menu on Maximize Button in the options menu, or caption_menu=0 under [etc]. Close HGFloater and the behaviour is gone — there is nothing installed and nothing to uninstall.

Three cases where the click does what it always did, none of them a failure:

  • Windows running as administrator. Windows does not let an unelevated program touch input bound for an elevated one, and HGFloater runs unelevated on purpose.
  • Windows with no maximize button — nothing to right-click.
  • Applications that report neither a maximize button nor caption-button bounds. Rare, and they simply keep their ordinary behaviour.

This is the only thing HGFloater does outside its own windows, and it needs a system-wide mouse hook to do it. The hook reads the button and the coordinates and nothing else; it holds no keyboard hook and never has. The design and its costs are in docs/RFC-2026-07-caption-button-menu.md.

5. The Taskbox

The taskbox is a grid of icons with a status line on top and a toolbar of built-in buttons.

5.1 Running windows and shortcuts

  • Task icons come first: one per window, not one per program, in the order Windows reports them. A program with four windows open gets four icons, each going straight to its own window.

    That now includes HGFloater's own windows — every open note editor, the note list, the clipboard history, the command box. All of them are ordinary application windows: each gets its own taskbar button, its own Alt-Tab entry, and all three caption buttons — minimize, maximize, close — and they stay open regardless of what the floater and taskbox do, until you close them. The floater, the taskbox and the toolbar stay out: they are the thing you are looking at.

  • Shortcut icons follow: one per .lnk or .url in your shortcuts folder.

📌 How to add a shortcut icon

  1. Open the options menu — the Opt button, Ctrl + O, or a right-click on the status line.
  2. Choose Open Shortcuts Folder. Explorer opens on %USERPROFILE%\.HellGates\hgfloater\shortcuts\.
  3. Copy a shortcut into it — any .lnk or .url. Drag one out of the Start menu, or right-click a program and Send to → Desktop, then move that file here.

The new icon appears within a second. No restart, no settings screen: the folder is the setting.

To change the order, rename the files. Icons are sorted by file name, so putting a number in front controls where each one sits:

0001 Visual Studio Code.lnk
0002 Firefox.lnk
0010 Calculator.lnk

Pad the numbers to the same width — 0001, not 1. The sort is a plain alphabetical one, so 10 would come before 2 otherwise. Leaving gaps (0010, 0020, 0030) means you can slip something in later without renaming everything after it.

  • Left click activates a task or launches a shortcut.

Every icon carries its key in a small box at its top-left corner. The badge is the whole chord: the S is Shift, so S3 means Shift + 3, which activates that icon exactly as clicking it would.

  • Windows take the digits: S0 to S9, the first ten, and no key past that.
  • Shortcuts take the letters: SA to SZ, in the order they sit in the grid.

They used to share one run of labels, all of it windows, so which key opened what depended on how many windows happened to be open — and a shortcut had no key at all. Split, both halves hold still: Shift + 3 is the fourth window whatever else is running, and Shift + K is the same shortcut every time, because the shortcuts folder is a list you keep. Past ten windows or twenty-six shortcuts there is no badge and no key, which is honest: a label nobody can press is furniture.

Shift is what keeps this clear of the bare-letter grid movement (WASD) and of the bare C that opens the command box.

Every button in that half of the grid is framed — the function buttons and the shortcuts alike — in your Windows accent colour, two pixels thick. The taskbox is see-through, so "the background" is whatever you have on your desktop; a one-pixel white line vanished against a light wallpaper and was hard to find against a busy one. The accent is nudged toward the middle of its range first, because a very pale accent disappears on white and a very dark one disappears on black, and this line has to hold on both.

The function buttons wear the same badge, for the same reason: C shows C, Note shows N, Clip shows CL, Opt shows CO, X shows CQ. The modifiers are their initials in a fixed order — Ctrl, Alt, Shift, Win — so CN is Ctrl + N and CSR is Ctrl + Shift + R. A button no chord reaches wears nothing, and a key whose name is too long for the box (Space, Delete) is left to the tooltip, which spells it out in full.

Hover a tabbed application's icon and its tabs appear next to it. Off by default; turn it on with Show Tabs as Task Icons in the options menu, or show_tabs=1 under [taskbox] in config.ini. The window keeps its single icon — orderable like any other — and the hover box lists its tabs by title:

Pointing at a task icon outlines its window on the desktop. A frame appears around the window itself, so "which one is that?" is answered by where it is and not only by its name. Nothing else happens - the window is not raised, not focused, and the outline takes no clicks, because pointing at something is not choosing it. The keyboard focus does the same as the pointer. A minimized window is left alone: there is no place on the desktop to point at, and a frame around where it used to be would be a lie. A window sitting behind others is outlined all the same - the frame says where it is, not what is in front of it.

The box opens on hover and when the keyboard focus lands on the icon, so both ways of getting there work the same.

It never covers the icon. The box sits flush above or below it — never beside it — running right from the icon's left edge or left from its right edge, so the icon's whole width falls inside the box's and the two read as one piece. Of those four placements it takes the first that fits the display whole, which is what keeps it from running off an edge near a corner.

These keys are the box's, and they are the same in all three lists — the tabs, the Dir folders and the Set controls:

Key or click What it does
1-9 Straight to that row, whether or not you have stepped into the box.
0 The last row, the same way.
Up / Down Step into the box, and from then on move the selection in it. Down enters at the top row and Up at the bottom, so the selection lands where the key was already pointing. The box is what sits above or below the icon, so those keys reach it rather than stepping over it to the next row of icons.
Tab Step into the box as well. On a Dir or Set button, Space does it too: activating the button opens its list and hands it the keyboard.
Home / End The first row, the last row. The selected row is filled and marked, so where the arrows are standing is never in doubt.
Left / Right Leave the box and move to the icon left or right — a list is a column, and sideways is what the grid means by those keys. The next icon opens its own box if it has one. One exception: on a row that holds a number they are less and more, the same as PageUp / PageDown.
a-z, A-Z The labels past the ninth row (inside the box, because those letters move the grid outside it).
Enter / Space, or a click Take that row: switch to the tab, open the folder, flip the switch.
A tooltip On every Set row, as you arrive: which keys that row answers — the arrows for a number, Space or Enter for a switch.
Right click Close that tab. The list stays up. (Tabs only.)
Esc Leave the box. The keyboard stays in the taskbox, where it was.

While you are using the keyboard, the pointer is ignored. The taskbox answers the mouse continuously — a pointer resting on an icon opens that icon's list, a pointer that has wandered off closes the box and eventually collapses the taskbox — and all of that is wrong the moment you reach for the arrow keys, because the pointer is then sitting wherever it was left. So the first key press hands control to the keyboard, and it stays there until the mouse actually moves: Space on a function icon opens that icon's list no matter where the mouse is, and nothing the pointer is resting on will close it.

A pointed-at row is drawn selected, the same filled bar the arrows leave, so the row a click would take always looks like the row a click would take.

A row too long for the box says the rest in a tooltip — whether the pointer found it or the arrows did. The box is measured against its own rows first and takes the width they need, so most lists are read whole; the tooltip is for what is longer than any box should be.

Digits work immediately because the grid does not use them; the letters wait for Tab because WASD moves the focus and C and N open other things.

The tabs are read when you look at them, once per box, and never on a timer — a window nobody hovers costs nothing at all.

Nothing about this is specific to browsers. What limits it is cost: a tab is not a window, so the only supported way to find one is UI Automation — a call into the other application's own UI thread, which is slow and can block if that thread is busy. Asking every window on the desktop would make that cost the cost of running HGFloater, so it asks only windows whose class is on a list:

Built in
Chrome_WidgetWin_1 Chrome, Edge, Brave, Opera, and Electron apps
CabinetWClass File Explorer
MozillaWindowClass Firefox
CASCADIA_HOSTING_WINDOW_CLASS Windows Terminal
Notepad Notepad

Any other application can be added with tab_classes under [taskbox], semicolon-separated, no rebuild needed:

[taskbox]
tab_classes=SomeApp_Frame;OtherApp

Run show windows class (s w class) in the command box to see the class of every open window, which is where those names come from. An application whose tabs UI Automation does not publish will simply keep its single icon.

The reading happens on a background thread, and the box draws from what was last known while the fresh answer is on its way — a cross-process call whose cost grows with the browser's own accessibility data is never waited for. Anything that fails falls back silently to one icon for the window. Some applications do not publish off-screen tabs at all, and those tabs will not appear. The design and what it costs are in docs/RFC-2026-07-tabs-as-task-icons.md.

  • Left drag on a task icon reorders it within the grid.
  • Right click (or Enter / F2 on the focused icon) opens its menu:
    • Run (&R) — start a new instance, or launch the shortcut.
    • Focus (&F) — switch to the existing window.
    • Close Window (&X) — task icons only. On a tab icon this reads Close Tab and closes only that tab, by invoking the tab's own close button; if the tab has no such button nothing is closed and the status line says so. Focus on a tab switches to that tab rather than only raising its window.
    • Open File Location (&O) — shortcut icons only.

5.2 The status line

A single-line read-only field across the top of the taskbox.

  • It shows one message at a time — the most recent one replaces its predecessor.
  • Ten seconds after the last message it falls back to the current time, written as 2026. 11. 23.(Tue) 13:24, and refreshes as the minute changes.
  • Right click it to open the options list (the same one the Opt button opens).
  • Left drag it to move the whole taskbox.
  • Ctrl + Wheel over it changes only its own font size.

5.3 Shape and size

  • Drag any border to change the grid: the taskbox snaps to whole columns, so no half icon is ever left hanging.
  • Ctrl + Wheel (or Ctrl + + / -) scales icons and text together and keeps the window proportional.
  • Alt + Wheel (or Alt + + / -) changes opacity.
  • Ctrl + R / 0, or F5 resets position, size, and opacity.

6. The Toolbar

Twelve built-in buttons sit in the same grid as the icons. Their order is fixed. Each carries a short word rather than a single capital, three of them open a list instead of doing something outright, and the last two carry a reading: their colour is the value they hold.

The word is fitted to the button: up to three letters it stays on one line, and four to six letters are stacked on two, at a size the button can hold. The alternative — shrinking a long word until it fits across — ends at a size nobody can read.

A button's tooltip names its key. Hovering C reads Command Box (C, Ctrl+E); a button that no chord reaches says only what it does. The chords come from the key table as the tooltip is built, so a key you rebind is the key the tooltip shows.

Button Click Drag / Wheel
R Resize Drag resizes the taskbox grid.
M Move Click moves the taskbox aside (see below). Drag moves the window.
X Exit Quits HGFloater.
D Desktop Minimizes every window; click again to restore.
C Command Opens the Command Box.
Note Note Opens the note list.
Clip Clipboard Opens the clipboard history, as Ctrl + L does; press again, with it in front, to close it.
Dir Folders Opens the folder list — the shortcuts that point at a directory.
Set Settings Opens the control list: the pin, the switches, and the doors to the settings.
Opt Options Opens the options menu, directly under the button.
Ico Icons Opens the icon box: Vol, Mon and Alp, as icons you turn with the wheel.

6.1 The Dir button

Point at Dir — or land on it with the arrow keys, or click it — and the folders appear in a list beside the button — above it or below it, whichever fits the screen, never over the button itself. Click a row, or press its number, and that folder opens in Explorer; the list and the taskbox both get out of the way, because a folder is somewhere you are going.

The folders are the shortcuts you already have. Any .lnk in the shortcuts folder whose target is a directory is listed here instead of taking a slot in the icon grid — a folder is a place to go rather than a program to run, and a dozen of them crowd out the programs. Nothing new to register: drop a folder shortcut in, and it moves itself to this list. A shortcut that does not resolve to a real directory stays an icon, which is what keeps anything unusual working.

6.2 The Set button

Set is everything there is to set. Point at it — or land on it with the arrow keys — and the same kind of list opens. Pointing at a button and arriving at it with the keyboard are the same arrival, so neither needs a click first. The rows are text, so they say their whole name and what turns them:

The rows are grouped by what a row is, top to bottom:

Row What it does
Pin Pins the taskbox open — while pinned, moving the mouse away no longer collapses it. Click, or Space / Enter, toggles.
the switches Every on/off setting, one row each, with on or off beside it. Click, or Space / Enter, flips one.
Settings Window... The settings window: every option, value and key in one list.
Edit Configuration Opens the config file in your editor.
Reset Settings Position, size and opacity back to their defaults.
(off in this build) Last: the ones this build cannot switch. Listed rather than hidden, and out of the way of the ones that work.

The last three came from the options menu. Everything about changing settings belongs with the settings, so a reader looking for what to change finds one list rather than two. They sit below the switches because a door is a bigger step than a toggle, and Reset Settings is last of the three because it is the one that throws work away.

A row with a number is turned; a row with a state is sw

Scan report · 2026-09-11
  • Prohibited terms or links
  • Repository eligibility
  • slopscore.md paperwork
  • Content policy
  • Risk review — +25 binaries at repo root (build.bat)

0 comments

log in to comment.

report this listinglog in to report