SteadyMouse Cover

Release Notes

Updated July 8th, 2023
Picture of mouse studying a book

SteadyMouse v2.8.7.1

Put usefulness first, and you lose it;
Put Beauty first, and what you do will be useful forever.
- Sir Roger Scruton

This release contains minor improvements, bug fixes, and much love.

High level improvements

  • The installer can now automatically load a product key if it is present in the file name.
  • The built in update system now can check for a new version, download it, verify authorship, confirm file integrity, and then run the upgrade.
  • Downloaded updates are now cached in the SteadyMouse AppData folder.
  • Added a new installer command line flag to insure the application gets relaunched after an update completes.
  • The website downloads page is still accessible by clicking the mouse artwork in the Software Updates window.
  • Added preliminary Dutch language support.
  • Added hidden setting to enable or disable early beta features (Default is enabled).
  • Upgraded installer artwork to high DPI to give a cleaner look on high resolution displays.
  • Improved organization and separation of concerns in the installer.
  • Updated installer COMMANDS.txt document with more accurate language.
  • Added new command line flag to show the version information at app startup.
  • Decreased memory usage of internal data stream queues.
  • Added timing overflow detection to queue clearing.
  • Fixed a mouse button array out of bounds access bug.
  • Cleanup and refactoring of license authentication system.
  • Added protective transfer limits to communication functions.
  • Added new language strings for status reporting on automatic updates.
  • Upgraded Visual Studio to version 16.8.5.
  • Upgraded all 3rd party libraries.
  • Library dependencies now get pulled in by the precise features that use them rather than globally.
  • Discovered and fixed an issue where Icon Targeting was relian on an incorrect Windows SDK version.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

SteadyMouse v2.8.6.0

Through the pursuit of beauty we shape the world as a home,
and in doing so we both amplify our joys and find consolation
for our sorrows.
- Sir Roger Scruton

This release contains minor improvements and bug fixes.

High level improvements

  • Upgraded all artwork to high DPI to give a cleaner look on high resolution displays.
  • Improved desktop icon resolution.
  • Updated the system tray icon to fit in more harmoniously with other artwork.
  • Slightly increased the settings window suppression period at startup to avoid accidental appearance.
  • Improved the contrast of overlay text bubbles.
  • Increased display duration of help related text overlay bubbles.
  • Removed an unused setting from being stored.
  • Added logging of CPU architecture for use in troubleshooting.
  • Improved handling of OS version differences.
  • Added new timing checks for a critical OS function.
  • Fixed an issue where file flushing to disk could sometimes fail to complete upon rapid OS shutdown.
  • Further reduced reliance on Windows OS dependencies throughout the codebase.
  • Upgraded Visual Studio to version 16.8.2.
  • Upgraded all 3rd party libraries.
  • Improved separation of concerns and abstraction for all 3rd party libraries.
  • Improved separation of concerns with OS related APIs.
  • Further simplified license activation logic.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

SteadyMouse v2.8.5.0

Every true artist does feel, consciously or unconsciously, that he is touching transcendental truths;
that his images are shadows of things seen through the veil.
- G.K. Chesterton

This release contains minor improvements and bug fixes.

High level improvements

  • The default filter set has been switched from ‘Allegro’ to ‘Feather’ upon a fresh install to give a lighter feel.
  • Enabled “open ended middle clicks” by default. This should allow panning via middle click to function in apps like Blender and Autocad.
  • Fixed a touch screen edge case with undocumented coordinate system flags on Windows 8.1.
  • Improved coordinate system misclassification countermeasures for touch screen input devices.
  • Improved file closing to better handle rapid shutdown scenarios.
  • Successfully switched to ‘spdlog’ for the debug logging system.
  • Fine tuned the new logger to look nearly identical to the old output format.
  • Added special case flushing of the log file to disk when an OS shutdown is imminent.
  • SteadyMouse now only applies speed-scale to relative motion and lets absolute motion go through unscaled.
  • Samples no longer are marked as having motion data content for zero magnitude deltas.
  • Improved separation of concerns in all low level mouse processing channels.
  • Further reduced reliance on Windows OS dependencies throughout the codebase.
  • Added support for mirroring log entries to the debug console in Visual Studio.
  • Upgraded Visual Studio to version 15.9.20.
  • Updated Copyright dates to the new year.
  • Upgraded all 3rd party libraries.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

SteadyMouse v2.8.4.0

We shall not cease from exploration
And the end of all our exploring
Will be to arrive where we started
And know the place for the first time.
- T. S. Eliot, Four Quartets

This release adds much fine tuning and polish to the major changes that rolled out for the 2.8 version. May it bring you a restful mousing experience. Have a Merry Christmas.

High level improvements

  • Touch screen input, such as on a Surface Pro, should behave normally without any cursor flicker.
  • Made significant Wacom Tablet improvements. For the best results set “Windows Ink” to off in the Wacom settings. Instructions are here.
  • Mouse Warp now always syncs the unfiltered cursor positions. Previously it did not, and this sometimes left the cursor cross-hair offset from the actual cursor.
  • Mouse warping sensitivity is slightly improved.
  • Fixed a rare issue where the cursor could remain hidden at startup, or upon resuming from sleep, due to obsolete settings.
  • Added logging if the cursor fails to become visible when requested.
  • Fixed an issue where, upon upgrading from a very old version, the latest and best settings would fail to be adopted.
  • Added special case detection for data coming from the popular automation app, AutoHotKey, in hopes of getting along better with AHK scripts.
  • Fine tuned discernment of where mouse data is coming from, so that multiple sources can be handled gracefully.
  • Improved notification tray icon setup and error handling.
  • Improved support for relative motion injection.
  • Fine tuned the default “hold period” for Ignore Accidental Clicks.
  • Fine tuned the first launch threshold where SteadyMouse will decrease mouse speed.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

SteadyMouse v2.8.2.0

All that is to last is slow to grow.
- Louis de Bonald

High level improvements

  • Fixed a performance bug that was resulting in laggy application behavior during click-and-drag operations in the previous release.
  • Improved mouse button tracking to better deal with rare but contradictory click events.
  • Resolved an issue that could cause clicks to be lost when interacting with less performant applications.
  • Added basic “Mouse Warping” support, to detect and accept when other applications attempt to move the cursor.
  • Fixed several “Wacom Touch Pad” edge cases that should make for a better drawing experience. The recommended use is with ‘Windows Ink’ turned off in the Wacom settings.
  • The “Steadicam Filter Set” is now visible for all users. This very heavy option is useful for cinematic camera stabilization purposes.
  • Fixed a bug where settings could fail to save in time at Windows shutdown, resulting in the loss of any prior changes at the next startup.
  • Updated the README and CREDITS files with recent developments.

Low level changes

Warning: Technical jargon ahead

  • Added a new hidden option for enabling or disabling “Mouse Warping” capability.
  • Fixed a significant bug where mouse samples were sometimes being misclassified due to an OS call taking too long to return.
  • Added logging for loss of sample tags that could result in misclassification of samples.
  • Improved the incoming sample classifier with the use of a “confidence estimation” method applied to the integration of the various information sources for each signal type.
  • Made improvements to enable future XBUTTON related use cases.
  • Updated all language translations.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

SteadyMouse v2.8.0.0

In things of beauty, he contemplated the One who is supremely beautiful, and, led by the footprints he found in creatures, he followed the Beloved everywhere.
- St. Bonaventure

High level improvements

  • Significantly improved Wacom tablet device support. Recommended use is with ‘Windows Ink’ turned off.
  • Fixed a Logitech interaction bug where the cursor would sometimes jump to the corner of the display.
  • The cursor should no longer glitch when mouse motion resumes after a brief idle period from the user.
  • Improved the tracking of fractional pixels to significantly reduce position error accumulation.
  • Improved recognition and categorization of data from less common input devices, significantly increasing compatibility with more unique hardware.
  • Significantly upgraded cross program interaction with other mouse influencing applications.
  • Improved handling of the computer power-save mode transition between sleep and wake.
  • Optimized motion message sending to greatly reduce the CPU impact on apps under the cursor.
  • Improved interaction with the Windows Magnifier app.
  • Added support for storing and reading shared settings.
  • The installer now attempts to shutdown SteadyMouse more gracefully before proceeding with the upgrade.

Low level changes

Warning: Technical jargon ahead

  • Fixed a bug where SteadyMouse would periodically send mouse input when there had not been any, thus keeping the computer from sleeping in certain cases.
  • Fixed a Windows XP issue that prevented mouse filtering from working properly out of the box.
  • Included the VC++ runtime in the installation folder for users that wish to run it separately, post-installation.
  • Fine tuned task timing overflow detection thresholds to be less sensitive.
  • Tuned performance tracker grace periods to end earlier and log their completion.
  • Implemented a better way to kick the cursor out of the suppressed / hidden state when user input starts or resumes.
  • Fine tuned input queue sizes and added timing performance monitoring to detect if they ever run too slowly.
  • Added fail safe logic so if a sample queue fills up, SteadyMouse switches to a pass through mode.
  • Added intermediate task jitter logging for if mouse processing is running slow and not keeping up with the sample rate.
  • Improved management of various poor performance / high OS load scenarios.
  • Completed massive cleanup and refactoring of the entire low level mouse stream system.
  • Trace messages now are accomplished by tagging real data as it goes by rather than simulating it.
  • Added sanity checking to OS cursor position data before use.
  • Improved mow() startup and shutdown multithreading cooperation.
  • Added better logging of input data from unrecognized input sources.
  • Upgraded most dependencies including lib_curl, tinyxml2, and concurrentqueue.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

SteadyMouse v2.7.1.3

Beauty is truth, truth beauty, –that is all
Ye know on earth, and all ye need to know.
- John Keats, Ode on a Grecian Urn

High level improvements

  • Added OS mouse speed enforcement feature to prevent outside applications from interfering with the user’s selection.
  • Defaulted to a more advanced mouse motion interception methodology.
  • Progressing towards a much more highly organized mouse data pipeline that can handle multiple data sources in a unified manner.
  • Language translation updates.

Low level changes

Warning: Technical jargon ahead

  • Defaulted to using Raw Input and Direct Injection going forward.
  • Upgraded all library dependencies to the latest stable versions.
  • Improved sanity checking of incoming OS mouse information.
  • Added saving of user’s preferred OS mouse speed rather than leaving it up to the OS.
  • Upgraded rate limiting on popover bubbles that guide mouse speed selection.
  • Improved keyboard toggle key transition detection.
  • Switched key-press simulation logic to newer method.
  • Switched mouse button press simulation logic to newer method.
  • Added detection if simulated input keeps the PC awake.
  • If the System Toggle Key is changed on first launch, it will no longer clear the state of the previous key (such as Num Lock).
  • Improved robustness of settings path and installation path detection.
  • Installer improvements to better get along with SCCM and corporate packaging in general.
  • Added new command line parameters for help with IT packaging. See bundled COMMANDS.txt for details.
  • Fixed issue where the first-time-running user experience could be missed if the application had been closed early.
  • Added logging of unrecognized messages.
  • Mouse position functions no longer log access denied messages.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

SteadyMouse v2.7.0.0

If the Tao is great, then the operating system is great.
If the operating system is great, then the compiler is great.
If the compiler is great, then the application is great.
The user is pleased, and there is harmony in the world.*
- The Tao of Programming (1987)

High level improvements

  • Critical and surgical changes to the mouse data pathway to better handle high complexity motion and clicking edge cases.
  • Added periodic reminder to the user to check for updates (Default: 6 months).
  • Fixed a bug where some UI images could fail to render after SteadyMouse had been running for a while.
  • Fine tuning of ignore (left) clicks debounce period logic that automatically adjusts OS double click speed.
  • On first launch, upon closing the settings window, a pop-over bubble will appear explaining how to get back to these settings.
  • Major performance improvements.
  • Language translation updates.
  • A copy of the latest release notes is now bundled with the installer.

Low level changes

Warning: Technical jargon ahead

  • Added fine detail debug logging for excessive mouse motion.
  • Fixed a bug that could result in (rare) garbage coordinates from the OS getting through and being used.
  • Added logging when an OS mouse speed change is detected.
  • Upgraded most library dependencies.
  • Added additional signaling to help periodically re-register the system-tray icon. Re-registration is necessary any time Windows restarts explorer.
  • Created a “test tracer” message where a dummy data sample can be sent through the system to map out problems in the mouse data stream.
  • Added functions to help detect anomalies in coordinate information coming from the OS.
  • The uninstaller now has a proper icon in OS Control Panel application list.
  • Increased log file size limit from 4 MB to 7 MB.
  • Fixed bug where automatic log rolling would fail with unicode characters in the folder path.
  • Updated installer art to the HiDPI winter theme.
  • Upgraded VC Runtime executable.
  • Fixed an issue where mouse motion stats were being logged at the wrong time upon toggling the system on or off.
  • Removed popup message when another instance of SteadyMouse is found running, yet no window handle located. It turns out this is usually just the desktop is locked and all window handle access is blocked.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

SteadyMouse v2.6.5.2

The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.
- Douglas Adams

High level improvements

  • Adjusted the speed scaling formula to more accurately match the native OS scaling.
  • Fixed a screen coordinate conversion issue where coordinate types were using the wrong units without realizing it.
  • Fine tuned first launch bump of the OS mouse double click speed.
  • Speed scale settings now apply equally to all stream modes.
  • Increased the speed scale maximum range from +/-200 to +/-300 for users that benefit from ultra high mouse sensitivity.

Low level changes

Warning: Technical jargon ahead

  • Made the VC Runtime installer visible and cancelable during installation.
  • Updated to the latest VC Runtime.
  • Added more detailed logging when a device change is detected.
  • Added more verbose logging to aid investigating multi-monitor invalid coordinate issues.
  • Simplified coordinate transform self-tests.
  • Improved absolute coordinate conversion to handle extremely large values without overflow.
  • Separated out mouse data stream sample injection categorization.
  • Upgraded most library dependencies.
  • VC++ compiler upgrade.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

SteadyMouse v2.6.3.0

Does a good farmer neglect a crop he has planted?
Does a good teacher overlook even the most humble student?
Does a good father allow a single child to starve?
Does a good programmer refuse to maintain his code?
- The Tao of Programming (1987)

High level improvements

  • Added detection and proper handling of swapped mouse buttons.
  • Fine tuned mouse speed auto-adjustment on the first run.
  • Modified the product key entry field to use a larger font size so it will be easier to see.
  • Changed emergency-quit hotkey to the left and right arrow keys (held for 5 seconds).
  • Changed the default “toggle key” from Scroll-Lock to Num-Lock.
  • On first-launch SteadyMouse now presents the Toggle Key selection settings.
  • Standardized the naming of “On/Off Toggle Key” throughout the UI.
  • Combed through English text strings and improved grammar and guidance.
  • Updated most language translations.
  • Significant changes to better support monitor DPI independence.
  • Placed a limit on the number of times mouse speed guidance notification bubbles can be displayed.
  • Major cleanup to the mouse motion pipeline.
  • Diagnosed and worked around an issue in Windows 10 build 17133 where at times invalid coordinates are received, resulting in chaotic cursor behavior.
  • Improved system tray robustness.
  • If the system toggle key is switched away from a locking key (eg: Scroll Lock), that key is now set to off before proceeding.
  • Created an “Ignore Accidental Clicks proficiency check” to make sure the user does not get stuck when turning on the feature for the left-mouse-button the first time.
  • Improved UI suppression at OS startup to prevent the settings window from popping up unrequested.
  • Added Raw Input button support option in the hidden settings.
  • Pic art images now support a shadow hover effect.
  • Expanded the speed-scale allowed range from 100 percent to 200 percent.
  • Ignore Clicks now adjusts the OS double-click-speed both up and down to keep the timing window reasonable.
  • Updated installer artwork with High DPI compatible images.

Low level changes

Warning: Technical jargon ahead

  • Installer now supports silent installation options such as /SILENT, /VERYSILENT.
  • Installer now supports /SKIP_VCRUNTIME=true to skip the VC++ Redistributable installation step.
  • Fixed a timing watchdog overflow bug being caused by a multithreaded race condition.
  • Upgraded VC Redistributable.
  • Added clock timing self test for all potential clock sources.
  • Added automatic selection of the highest resolution source that meets minimum timing criteria.
  • Fixed an issue where a task event for settings updates would not fire off if the regular timing events were backed up.
  • Added task period jitter compensation.
  • Added lag compensation to mouse processing based on the jitter calculation.
  • Added timing jitter compensation to targeting effects so rotation is constant.
  • Switched logging back to local time to make it easier for users to correlate logs with events they notice.
  • Added detection for Windows 10 build 16299 to enable a workaround for a “Click and Drag” bug.
  • Added function to compute font required UI area based on the text length being shown.
  • Tuned the icon-targeting system and its visual effects for DPI independence.
  • Targeting cursor snap speed should now be DPI independent.
  • The mouse unfiltered location dot effect now scales up for higher DPI screens.
  • Upgraded most library dependencies.
  • Added DPI independent pic-art placement for the UI.
  • All dialog boxes now exit with proper return codes.
  • Reduced the maximum log size to 4MB.
  • Refactored multimonitor display enumeration.
  • Upgraded code signing to an EV certificate.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

SteadyMouse v2.4.7.0

Twas the night before Christmas, when all through the house
Not a creature was stirring, not even a mouse.

This update has been many months in the making, and contains thousands of tiny tweaks to make your mouse experience extra smooth, easier to tune, and more stable than ever. Progress is steadily continuing towards eventual Mac OS support, and the process of evaluating and making changes in this way continually leads to a cleaner more beautiful system underneath. It is with pride, joy, and much warmth that I send it your way in time for Christmas Eve.

Upgrade on your own schedule, when it is right for you amidst the bustle. It is here when you are ready, and instructions can be found below to walk you through.

For those of you installing SteadyMouse as a gift on Christmas day, I will keep an occasional eye on the support channel to make sure it all goes smoothly for you. Write to support if you need something.

High level improvements

  • Long pressing the System Toggle Key for two seconds and then letting go will bring up the settings window now.
  • Compatibility with the new “Windows 10 Fall Creators Update”, released by Microsoft on December 12th, 2017.
  • Fixed an issue where, for some users, the settings window would open every time Windows started up.
  • Contains new language support for Danish and additionally, a very high quality German translation update. Many thanks to those who contributed to the translation this round! Check CREDITS.txt for details.
  • In all, language support is now available for English, Danish, French, German, Italian, Portuguese, Russian, and Spanish. If you’d like to switch languages see changing language locale for details.
  • Visual-effects no longer can steal the focus and should no longer interfere with automatic form fillers such as RoboForm.
  • Fixed a major issue where any multilingual user account name would result in failure to save settings and record the log file.
  • Now detects when the mouse speed is set in a region that will make the cursor feel floaty, and displays a note to guide the user towards better tuning.
  • Fixed an issue preventing SteadyMouse from working on some Windows XP systems. It would previously fail to run with a missing DLL error.
  • Fixed an issue whereby the Icon Targeting System would occasionally fail to automatically click a target after being triggered.
  • Adjusted the control sizes so that all languages fit without being text being cut-off.
  • Improved Product Key entry to accept only valid characters. Pressing invalid characters now results in a system beep and an informational message. It was common especially for ’O’ and ‘0’ to get mixed up, and this should be a big help at key entry.
  • Added a new experimental Steadicam filter and mode available via the hidden settings. For details see: Experimental Steadicam Mode.
  • Fixed a bug where holding down the System Toggle Key would rapidly cycle back and forth when using “Scroll Lock” or “Num Lock”.
  • Fixed a bug where “Num Lock” or “Scroll Lock” keyboard LED state could get out of sync with the actual System Toggle state.
  • On the first time running, high mouse speeds are now auto-adjusted down for a better initial experience.
  • Many default settings have undergone tuning so that users will have a first time experience that should be closer to the ideal.
  • Owner info is now hidden when the secret Developer Mode settings are visible. This is for gamers who screencast, so that their product key does not end up in their published videos.

Low level changes

Warning: Technical jargon ahead

  • Upon installation, the application now runs a self-test. If failure is detected, automatic direction towards a workaround is now provided. This was especially needed for old Windows Vista systems that sometimes have trouble.
  • Updated all internal third-party libraries to the “latest and greatest” from the respective developers.
  • Upgraded to the latest Microsoft Visual C++ 2017 Compiler.
  • Upgraded to latest “Microsoft Visual C++ 2017 Redistributable (x86)” Version 14.12.25810.0
  • Improved keyboard input abstraction to support cross platform migration.
  • Refactored Icon Targeting System code to be much cleaner and added logic to fallback to the old targeting system if the new one fails to come online.
  • Abstracted several core libraries from Windows to allow eventual movement towards MacOS support in SteadyMouse 3.
  • Refactored XML file handling.
  • ISO language codes now are included in language files.
  • Improved application instance existence functions to better detect more than one copy of SteadyMouse running at the same time.
  • The debugging log now comes online as early as possible to catch anything going wrong during application startup.
  • The debugging log file now has a maximum size limit of 16MB and will reset when it hits this limit.
  • Mouse time to idle is now computed more dynamically.
  • Fixed a loss-of-precision rounding error that may have affected relative motion mode in games.
  • Command line parameters now are written to the log file for review.
  • Startup sequencing is much more clean and robust.
  • Added new command line parameters useful for distinguishing how the app was launched. This insures the settings GUI does not show when it is not specifically requested.
  • Command line parsing is now moved to its own library and much more extensible for the addition of future command line parameters.
  • Added support for a “basic execution test” whereby the installer can run the application exe in a minimal mode that immediately exits. This allows for verification that the application is indeed able to run.
  • Added detection of application launch by Windows 10 Restart Manager. This was needed to avoid double-launching at startup.
  • Made RawInput retrieval more fault tolerant of failed system calls.
  • Discovered and fixed an inadvertent lib-curl dependency upon normaliz.dll, a file which is not available on Windows XP.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

Enjoy the update and have a blessed and Merry Christmas everyone!

Ben Gottemoller
Founder,
SteadyMouse, LLC.


SteadyMouse v2.3.2.0

The merit of all things lies in their difficulty.
- Alexandre Dumas, The Three Musketeers

The new version began a staged rollout on May 29th and, having done well, is today announced officially for all. I am pleased to say there are many subtle changes to this release that add a high level of polish to the design.

If you found this update a bit early, congrats! Otherwise, feel free to pick it up at your leisure. Instructions can be found towards the bottom.

High level changes

  • Compatibility with the new “Windows 10 Creators Update” released by Microsoft in April.
  • Language support is now in place for English, Portuguese, French, German, Italian, Russian, and Spanish. If you’d like to switch languages see changing language locale for details. Many thanks to all those who contributed to the translation this round!
  • The “Gaming Filter Set” has been renamed to “Feather Filter Set” to clarify that it’s not just for gaming, and to better imply its characteristic feel.
  • Depending on your mouse hardware, you may notice a small cursor speed difference this time around. A math error was discovered and fixed within the mouse filtering pipeline. In short, averaging was sometimes occuring rather than accumulation! The effect was that high sample rate mice would experience a slower speed when filtering was active! Fixing this now results in mouse speed remaining consistent whether filtering is toggled on or off. If you encounter a speed increase, adjust your mouse speed setting to about half of what it presently is to get back to normal.
  • Descriptive overlay-bubbles now provide a brief overview when any of the most recommended filter sets are selected.
  • Help bubbles now show one at a time, are less likely to overlap, and adjust position automatically if they happen to be partly off the screen.
  • All overlay text bubbles now contain a tiny lightbar effect to indicate how much time is left before the bubble fades.
  • Added various overlay message bubbles to provide occasional guiding comments as you interact with the UI.
  • Thanks to a bug report from an astute user, SteadyMouse now automatically disables the Windows “click lock” mouse setting if it happens to be enabled at the same time as ignore accidental clicks. Click lock is not compatible with click-ignore capability.
  • Adjusted sizing of many UI elements to better fit various supported language translations and their natural fluctuation in sentence length.
  • Fixed a bug where double clicking the desktop icon, with SteadyMouse already running, could fail to open the settings window when a language other than English was selected.

Low level changes

  • Discovered and fixed a mouse motion “feedback loop” present when using Raw Input stream mode. Most users do not have this hidden setting enabled and will not see a change, however it is a significant deal for anyone using SteadyMouse in games or as a steadicam.
  • The mouse filtering pipeline has been switched to using lockless motion queues. You can expect greater timing consistency and much less thread contention from the input engine going forward.
  • In the settings file experimental support for a “relative motion injection mode” has been added.
  • Added a workaround for a Microsoft Edge bug in Windows 10 Creators Update that occasionally prevented clicking. See here for details. The bug was additionally reported to Microsoft and their status now shows as “Fixed”.
  • There is now a hidden “Developer Mode” window with access to a heap of secret/experimental settings. If you can find it you have permission to experiment. A certain combination of these settings allows SteadyMouse to function with a decent number of games. Tip: Keep track of your changes so you can return them to normal afterwards!
  • Updated all internal third-party libraries to the latest and greatest from the respective developers.
  • Converted the majority of internal text string handling code from UTF-16 UTF-8 encoding. This is a necessary step in porting for eventual cross-platform support.
  • Abstracted away a huge number of Windows OS functions as the codebase moves towards eventual cross-platform support.
  • Reduced the SteadyMouse memory usage footprint through more dynamic optimization of text string storage.
  • Much more that is too granular to list.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

Pax et bonum! Ben Gottemoller
Founder,
SteadyMouse, LLC.


SteadyMouse v2.1.1.0

Software is never released, but ‘escapes’ leaving a trail of designers and quality assurance people in its wake.
- The Klingon Programming Guide

About three months have passed since the last update (v2.0.6.0). Today I’m releasing SteadyMouse v2.1.1.0 with a boatload of fixes and improvements to things you wrote in about (Thank you)!

High level improvements

  • Ignore accidental click support is now available for the left mouse button without compromising on double-click and click+drag support. The behavior is unique: Left clicks do not timeout. You hold the button down and the down stroke of the click passes through immediately upon reaching the “hold period” threshold. The up stroke then occurs as soon as you let up. Two consecutive clicks this way (each held just a tad longer) makes a double click. NOTE: To get the most out of this, you’ll want to set your “Hold Period” as short as you can get away with. Usually around 0.16 to 0.24 seconds is ideal.
  • Previously SteadyMouse would not filter in some programs that ran with elevated privleges and the workaround required running the program with admin rights. This is no longer necessary and SteadyMouse should now work out of the box with all other applications while running with normal user privileges.
  • Support for Italian language locale is now available (Thanks to a kind volunteer from Italy).
  • Significant optimization and adjustment has been done to timing related algorithms within the mouse filtering pipeline. While improving consistency of cursor feel, this change is primarily to fix a rare bug where SteadyMouse would stop filtering and require a program restart to fix. Due to the statistical rarity of this bug, only time will tell if it is truly fixed for good, however it has about 100 hours into it at this point so I’m hopeful. If you lose filtering in 2.1.1.0 or later please let me know.
  • Improved integration with CameraMouse. With both programs working together, you can now use the CameraMouse head tracking to get the cursor close to an item, and then use the SteadyMouse Icon Targeting System to snap it the rest of the way and automatically click.
  • Fixed a bug where users running with the “High Contrast” Windows theme could not read certain text messages due to the font color being white on a white background.
  • Added ability to change product activation keys from one to another as long as the license type is the same. This is helpful when a user with multiple keys wants to consolidate down to just one.
  • Resized many GUI elements to leave more room for various language translations.
  • Changed the help bubbles to display for seven seconds upon being clicked. They were previously setup to display only for the duration of the click which many found cumbersome.
  • If a user embarks on manual activation by clicking “Get Confirmation Code” during product activation, simple-activation is now disabled. This prevents an occasional issue where a user wastes an activation by switching back to simple-activation after they’ve already generated a confirmation code.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.

Godspeed,

Ben Gottemoller
Founder,
SteadyMouse, LLC.


SteadyMouse v2.0.6.0

There are two ways of constructing a software design;
One way is to make it so simple that there are obviously no deficiencies.
And the other way is to make it so complicated that there are no obvious deficiencies.
The first method is far more difficult.
- Tony Hoare

Today I am releasing SteadyMouse 2 to the world, and especially to all of you who have inquired over the years and patiently waited. So much has gone into this, and I know it is going to get many of you back on track. A special thanks goes as well to my grandfather, Dr. James Gottemoller, who started it all. Cheers, blessings, and Godspeed.

High level improvements

  • Added multi-monitor support.
  • The On/Off System Toggle Key is now configurable with several options.
  • Moved to a modern windows visual style.
  • Completely redesigned settings loading and saving.
  • Fixed a progress bar sluggishness issue that would manifest during accidental click practice.
  • Developed and installed next generation tremor removal filters.
  • Mathematically proved classic filters match the original v1.3 behavior.
  • Fast user switching now works.
  • Multi-monitor support works and detects display changes on fly.
  • Ignore accidental clicks now works better for small hold-period values.
  • Developed additional methods of mouse data interception.
  • Artwork updates.
  • Multiple language support.
  • IconTargeting now locates significantly more clickable items in the UI.
  • Added a raw cursor motion indicator special effect to give the user a feel for how well filtering is working.
  • Emergency Quit feature added where the user can hold down all four arrow keys simultaneously to exit the application.
  • Added a pop-over notification at startup to show toggle keys.
  • Created pop -ver notification when system toggle occurs.
  • Added checking for updates support.
  • Resized most UI items so large font sizes fit better.
  • Improved mouse coordinate precision at all layers.

Low level changes

Warning: Technical jargon ahead

  • Added functions for toggling keyboard keys that LOCK such as ScrollLock, NumLock, etc.
  • Fixed an installer bug where two instances of steadymouse could get registered at startup.
  • Fixed an issue where the cursor could get stuck at startup.
  • Added detection for obsolete SteadyMouse versions.
  • Normalized compiler settings for all projects.
  • Separated much of the business logic from the UI.
  • Switched from Mutexes to Critical-Sections for faster coherency support without frequent transitions to kernal mode.
  • Added ability to turn off “Enhance Pointer Precision” since it interferes with filtering.
  • The settings file now stores and loads data in an xml format.
  • Added a local logging mechanism to assist in debugging and support. Users can email this in if a bug is found.
  • Huge improvements in mouse idle to non idle transitions without glitching.
  • The mouse cursor no longer jumps after exiting lock screen.
  • Modified UserSettings library to be thread safe.
  • Initialization and loading of UserSettings now happens as early as possible.
  • Adopted MVC architecture.
  • UserSettings library now loads data in layers. Hard coded settings come first, then defaults.xml, and finally AppData settings.xml from the user.
  • Settings save and load works now with UTF-8 unicode.
  • Unicode compatible string support everywhere.
  • Watchdog support added for most threads.
  • Improved restore from touch pad when cursor suppression by OS is active.
  • Several thousand tiny tweaks beyond my energy to list here.

How to update

  • If you are already running SteadyMouse 2, you can follow the quick instructions here to upgrade.
  • If you have never installed yet, you can use the download button in your purchase receipt email. For detailed instructions click here.
  • If you need a fresh copy of your purchase receipt, send me a quick note.