Repository navigation
Releases: cmm-cmm/Action-Wheel
Release list
v2.11.0
New: choose the hover effect
Settings → Appearance & trigger now has a Hover effect group:
- Hover effect:
- Grow and swap colours, the original look and still the default.
- Glow: the button grows and glows softly in its own colour.
- Lift: the button grows and its shadow deepens and drops further, as if lifted off the screen.
- None: nothing happens on hover. Pressing a button still gives its usual feedback.
- Hover growth: how much a hovered button grows, from 100 % (no growth) to 130 %. The default is 112 %, as before.
- Hover speed: how long the change takes, from instant (the default, as before) up to 300 ms for a smooth ease-in.
- Also when choosing by dragging: when you hold the trigger and flick towards a button, that button now grows too, not only changes colour. Turn it off to keep the gesture to colour and shadow only.
The preview in Settings responds to the pointer, so hovering it shows the effect you picked. The effect applies to the main ring, a group's satellite buttons and the preview alike.
With the defaults, the ring looks and behaves exactly as before, apart from the drag gesture now growing the chosen button.
Compatibility
New settings in preferences.json only. Older files load with the defaults above, and actions.json is unchanged.
Download
Use ActionWheel-v2.11.0-win-x64.zip: extract it and run Action Wheel.exe from inside the extracted folder.
Do not rename the .exe. This is an unpackaged WinUI 3 app whose resource identity is tied to the exact filename it was published under; a renamed copy will crash on launch (0xc000027b) even though the bytes are identical. The zip already contains the file under its correct name - just extract and run it as-is.
v2.10.0
New: AI assistants
Ring buttons can now reach the AI tools installed on your computer. Only tools that are actually found are offered. Settings has a new AI assistants section that shows what was found, where, and how.
Open an AI tool where you are working
- Command-line tools (Claude Code, Codex, OpenCode, Gemini CLI, GitHub Copilot CLI) open in a Windows Terminal tab, in the folder of the File Explorer window you were using. With no Explorer window in front, they open in your user folder.
- Editors (Antigravity, Cursor, Windsurf) open on that folder.
- The Claude desktop app starts, whether it was installed with its classic installer or from the Microsoft Store.
How to add one: choose the Windows function type for a button, then an AI · Open … entry.
AI tasks on the selected text
Select text in any app and press a button such as Fix spelling and grammar with Claude Code. The text goes to the tool with a prompt template, and the answer opens in a window with Copy, Replace selection and Close.
- Prompt templates. Four are built in: Explain, Fix spelling and grammar, Translate to English, Summarize. Edit them or add your own in Settings → AI assistants;
{selection}marks where the text goes. Templates are included in Backup all…. - Asks before sending. A task shows the text first, unless its template says not to. It always asks when nothing was selected and the clipboard's text would be used instead.
- Locked down by design. Only Claude Code and Codex run tasks, each in a mode that can neither run commands nor change files:
- Claude Code runs with every tool and MCP server off and no saved session.
- Codex runs in its read-only sandbox.
- The prompt goes on stdin, and each run uses an empty temporary folder that is deleted afterwards.
- In testing, both tools were asked to create a file, and neither could.
- Safe in terminals. In a terminal window the selection is not copied with Ctrl+C, which would stop the running program. The clipboard is used instead.
- Your own sign-in. The text goes through your own sign-in with that tool. Action Wheel never sees or stores a key.
What is detected, and how
- Leftover registrations are not trusted. A tool whose registration outlived its program shows as "Registered, but its program is missing" and is not offered.
- Installer launchers are not the tool. VS Code's GitHub Copilot CLI launcher only installs the real CLI on first run. If the real CLI is installed, it is used; otherwise the tool is not offered.
- Damaged Store packages are not offered.
- Existing buttons keep loading. A button for a tool or template that later goes away still loads. It reports the problem when pressed, and Save in Settings lists it.
Not included in this release
- OpenCode and GitHub Copilot CLI can be opened, but they do not run tasks. OpenCode's built-in agents allow every tool by default, and Copilot CLI's one-shot mode requires allowing every tool.
- Local model runners such as LM Studio and Ollama are not supported for now.
- There is no "open in the browser" fallback.
The full design and research notes are in Doc/ai-assistants.md.
Compatibility
New function ids only (action-wheel.ai:<tool>/<task>). Existing actions.json files load unchanged.
Download
Use ActionWheel-v2.10.0-win-x64.zip: extract it and run Action Wheel.exe from inside the extracted folder.
Do not rename the .exe. This is an unpackaged WinUI 3 app whose resource identity is tied to the exact filename it was published under; a renamed copy will crash on launch (0xc000027b) even though the bytes are identical. The zip already contains the file under its correct name - just extract and run it as-is.
v2.9.0
New
- Start hidden in the notification area. A new toggle in the main window (and Start hidden in the tray menu) makes launches show only the tray icon. Double-click the icon, or pick Open Action Wheel, to bring the window up. If the tray icon can't be created, the window is shown anyway, so the app is never running with no way to reach it.
- Punctuation keys in shortcuts.
Ctrl+Plus(orCtrl++),Ctrl+-,Ctrl+/,Ctrl+`,Ctrl+[and the rest can now be configured, and the shortcut recorder captures them. They follow the US keyboard layout. - See what a profile or backup will launch before you accept it. Restoring a backup, or importing a profile whose buttons launch anything, now lists every program, file or URL those buttons can start, with arguments. A launch target can be any command line, so read the list before accepting one from someone else.
- Crash notice. After an unexpected exit, the main window says so once on the next launch. Copy diagnostics now includes the last crash's error text. It is kept only on this machine and holds nothing about what you were doing.
Fixes
- Buttons could all reset to the defaults. Startup's icon cleanup deleted icons used only by a group's child buttons, and the next load then rejected the whole
actions.json. Restoring a backup on a new machine failed the same way. A missing icon file no longer rejects the configuration: that button shows its glyph instead, and Settings warns about it. - The backup is kept. Saving over a rejected
actions.jsonno longer overwrites the last good.bak. The rejected file is kept asactions.json.invalid. - Renaming a profile no longer breaks the buttons that switch to it. They are updated in
actions.json, in your other profiles and in the editor, and Undo keeps the new name. Renaming that only changes upper/lower case now works. - Chrome, Edge, Office and VS Code are found. Settings no longer reports
chrome.exeand similar as "not found on this machine", and Use the app's icon works for them. Ctrl++sent only Ctrl. It is now Ctrl + Plus, and a shortcut with a stray+is reported instead of quietly sending less.- Shut down now turns the power off. It is logged as a planned shutdown, and the confirmation dialog no longer locks up together with the app you were using.
- Editing
actions.jsonby hand keeps being picked up after a file-watcher error. - Restoring a backup applies its trigger and ring settings straight away.
- Profile files are flushed to disk before they replace the old copy.
- Two-button chord triggers no longer misjudge timing when the system clock changes.
- The update check only ever opens a github.com release page.
- The UI and docs now state the real group size limit: 8 buttons, not 5.
Compatibility
- A shortcut with an empty part, such as
Ctrl+or+A, is now invalid. As with any invalid shortcut, anactions.jsoncontaining one is rejected on load. The main window shows why and offers the backup. The shortcut recorder never wrote that form.
Download
Use ActionWheel-v2.9.0-win-x64.zip: extract it and run Action Wheel.exe from inside the extracted folder.
Do not rename the .exe. This is an unpackaged WinUI 3 app whose resource identity is tied to the exact filename it was published under; a renamed copy will crash on launch (0xc000027b) even though the bytes are identical. The zip already contains the file under its correct name - just extract and run it as-is.
v2.8.0
Fixes from a project-wide audit
- Chord trigger fix: the two-button hold trigger (Right-then-Left or Left-then-Right) could leave the foreground app believing a mouse button was still held - the first button's press reached the app but its release was incorrectly swallowed. Fixed and covered by a new regression check.
- Backup restore is now all-or-nothing: if restoring a backup failed partway through, previously-written files stayed changed with no way back. A failed restore now rolls back everything it had already written.
- Backup import hardening: importing a ZIP backup no longer extracts an unlimited number/size of entries before validating them, and rejects any entry name outside the actual backup format - defense against a malformed or hostile backup file.
- Fixed a small handle leak on shutdown/restart/sleep, and a temp-file naming collision risk in preferences/profile saves.
- Synced version metadata across the project (an unused packaging manifest and the contributor docs had drifted) and added build-time checks so they can't silently drift again.
- Upgraded Windows App SDK 2.3.1 -> 2.4.0, verified against this project's own launch-smoke-test history with this dependency.
- Added
.editorconfigand three new regression-check tools (Build.ps1 -Task VerifyChordGate/VerifyConfigBackup/VerifyVersionSync/VerifyFormat) so these issues are checked automatically on every future build.
Full detail in Doc/PROJECT-AUDIT-2026-08-25.md.
Download
Use ActionWheel-v2.8.0-win-x64.zip - extract it and run Action Wheel.exe from inside the extracted folder.
Do not rename the .exe. This is an unpackaged WinUI 3 app whose resource identity is tied to the exact filename it was published under; a renamed copy will crash on launch (0xc000027b) even though the bytes are identical. The zip already contains the file under its correct name - just extract and run it as-is.
v2.7.0
What's new
- Icon text: a button's icon can now be a short word, letter, or emoji instead of only a glyph or an SVG/PNG/ICO file. Set it under each button's "Icon text" field in Settings. Precedence is icon file > icon text > glyph.
- Added accessible names (
AutomationProperties.Name) to the remaining icon-only buttons in Settings for screen readers.
Fixes
- Saving a button with icon text into a named profile and reloading it no longer silently drops the text back to the glyph.
- The settings preview now redraws live and undo/redo now captures edits to the icon text field.
- Fixed a small handle leak on the shutdown/restart/sleep action path.
preferences.json/active-profile.txtwrites now use a collision-safe temp filename, matching howactions.jsonalready saves.
Download
Use ActionWheel-v2.7.0-win-x64.zip - extract it and run Action Wheel.exe from inside the extracted folder.
Do not rename the .exe. This is an unpackaged WinUI 3 app whose resource identity is tied to the exact filename it was published under; a renamed copy will crash on launch (0xc000027b) even though the bytes are identical. The zip already contains the file under its correct name - just extract and run it as-is.
v2.6.0
What's new
- Background update checker: after launch, the app checks GitHub for a newer release (silently, no network errors ever shown) and offers a "View release" link on the main window when one is found. Throttled to once per 20 hours.
- Sliders instead of numeric spinners: shadow opacity/blur/offset in the button editor, and chord timeout/movement, button size and orbit radius in Appearance & Trigger, are now drag sliders with a live value readout instead of NumberBox up/down controls.
- Group buttons: the fan-out limit is raised from 5 to 8 children per group.
- Appearance & Trigger cards are now equal height regardless of content.
Download
ActionWheel-v2.6.0-win-x64.zip — extract it anywhere and run Action Wheel.exe. Requires Windows 10 or later.
Note: this build must keep its original file name. Renaming Action Wheel.exe causes it to crash on launch (exception 0xc000027b in Microsoft.UI.Xaml.dll) even though the bytes are unchanged - the app's unpackaged resource identity is tied to that exact name. That's why this release ships as a zip instead of a bare portable exe.
v2.5.0
What's new
- Group buttons: turn any outer button into a small satellite ring of up to 5 more buttons. Hover the parent to fan them out from its own position; hovering a different main-ring button closes the group again. Satellites are the same size as the main ring's own buttons and always draw in their parent's own colours and shadow, so a group reads as one cohesive control rather than a separate menu. Configure a group's children from the redesigned "Edit group…" dialog — an icon (glyph or SVG/PNG/ICO file), a name and a type for each, matching the main row editor.
- Hold actions: press and hold a button for about half a second instead of clicking it, and it runs a separate, optional action — configured right below the button's main one, with a live "holding" progress indicator on the ring itself.
- Named profiles: save the current nine buttons under a name and load any saved profile back later. A button can switch or open a profile directly via a built-in Windows function, and the tray icon's menu now lists recent profiles for one-click switching.
- One-file backup and restore: every profile, the trigger, the ring appearance and extracted icons, saved to or restored from a single file — Restore previews what a backup contains before touching anything on disk.
- Redesigned main window and Settings window. Settings is now organised like the Windows 11 Settings app: a left-hand rail with three sections (Buttons, Appearance & trigger, Profiles & backup). Buttons is master-detail — a compact list on the left, and a detail panel on the right for whichever button is selected — instead of all nine buttons showing every field at once. The main window leads with hook/config status instead of burying it at the bottom of a long scroll.
See README.md for the full feature list, build instructions (Build.ps1), and the actions.json/preferences.json configuration reference.
v2.4.0
What's new
- Effect duration is now set in milliseconds (100-1000 ms) with a Slow/Fast slider, replacing the old 100-500% NumberBox — easier to reason about and to drag into place. 200 ms remains the tuned default.
- Fixed a flash of the overlay's opaque frame when a menu closed — visible as the ring's 400x400 window briefly appearing as a solid square, most noticeable in Windows Light app mode.
- Fixed the ring opening at the wrong size on multi-monitor setups with mixed DPI scaling.
- Fixed the portable download crashing on launch (
0xc000027binMicrosoft.UI.Xaml.dll). Root cause: Windows App SDK 1.8 does not reliably support single-file publish for WinUI 3. Upgraded to Windows App SDK 2.3.1, which does not have this problem — verified with a new build step that extracts the actual release zip and launches the exe for real before calling a build successful. The download below is a single portable exe again, no zip needed. - Fixed a config-file edge case: a corrupted
actions.jsonnext to the exe, with a good one in%LOCALAPPDATA%, used to run fine off the good file while Save silently wrote to the broken one instead. The app now consistently treats whichever file exists first as authoritative, matching what Save and "Open config file" always used.
See README.md for features, build instructions (Build.ps1), and actions.json/preferences.json configuration reference.
v2.3.0
What's new
- Adjustable opening-animation duration. A new "Effect duration (%)" control in Settings > Ring size and animation scales every preset's timings from 50% (twice as fast) to 200% (twice as slow) of their tuned default, without disturbing each preset's internal stagger. Saved per machine in
preferences.json. - App icon (extracted from
icon.ico) now shows at the top ofREADME.md.
See README.md for features, build instructions (Build.ps1), and actions.json/preferences.json configuration reference.
v2.2.0
First release under the Action Wheel name (renamed from Action Ring).
No functional changes from the last Action Ring build — this release marks the rebrand plus repository cleanup:
- Community health files:
CODE_OF_CONDUCT.md,CONTRIBUTING.md,SECURITY.md - Issue and pull request templates
- Polished, badge-driven
README.md LICENSE.txtcopyright corrected
See README.md for features, build instructions (Build.ps1), and actions.json configuration reference.