Conversation
Upgraded target framework to .NET 10.0 (Windows 10.0.17763.0) and set SupportedOSPlatformVersion to require Windows 10 or later. Removed explicit references to System.Memory and System.Runtime.CompilerServices.Unsafe, as these are now included by default.
Upgraded JetBrains.Annotations to 2025.2.4 and Microsoft.Windows.CsWin32 to 0.3.269 for improved compatibility and latest features.
Upgraded System.CommandLine from beta to stable 2.0.2. Refactored Program.cs to use the new API: updated option definitions, validation, and command handler setup. Removed obsolete usings and improved argument parsing for compatibility and maintainability.
Updated code to use the discard variable (_) for unused return values from AttachConsole, FreeConsole, and SetHighDpiMode, clarifying intent. Also corrected the seconds option comment to show the proper command-line syntax.
…ranch Co-authored-by: cerebrate <371623+cerebrate@users.noreply.github.com>
…-dev-compatibility Add -g/--settings flag to open settings panel on startup
Clarified portable version details, updated .NET runtime reference, and added a direct link to the releases page. Added a new section explaining that concealment features will not be implemented, with reasoning.
Explicitly use this.JigglePeriod when updating niTray.Text to make it clear that JigglePeriod is a property of the MainForm instance. This improves code readability and maintainability.
Updated <Version>, <AssemblyVersion>, and <FileVersion> fields in MouseJiggler.csproj from 2.1.0 to 3.0.0 to reflect the new major release.
Refactored main entry point to better handle console attachment and detachment, introducing AttachedToConsole for state tracking. Console is now attached at startup and detached only when necessary, including before launching the Windows Forms application. Should fix #105.
Cross-merge CI from master back into dev
Added random period to system tray message.
Updated LICENSE with a "Special Usage Limitation" prohibiting use by US government agencies, employees, and contractors. Added a corresponding "Usage Limitations" section to README.md explaining the restriction and its rationale. Included LICENSE as a solution item in MouseJiggler.sln.
Switched the jiggle interval control from a TrackBar to a NumericUpDown for more precise and user-friendly input. Updated designer and logic files accordingly, including event handler renaming and label addition. Resource file updated to reflect control changes.
Replaces dynamic tray menu item creation with explicit ToolStripMenuItem fields for Open, Start Jiggling, Stop Jiggling, and Exit. Updates event handler names for consistency and toggles menu item visibility using named fields. Removes unused lbRandom label and displays random interval in lbPeriod instead. Improves code clarity and maintainability by handling tray menu setup in the designer.
Add SpacedHelpAction to insert a blank line before command-line help output, enhancing readability when attaching to the parent console. Updated Program.cs to wrap and replace the default help action with this new behavior.
Replaces the ZenJiggle boolean with a JiggleMode enum, enabling multiple jiggle modes (Normal, Zen, Circle, Linear). Updates the UI to use a ComboBox for mode selection and removes the Zen jiggle checkbox. Refactors all code and settings to use JiggleMode, updates the command-line interface to accept --mode/-o instead of --zen/-z, and improves tray tooltip to show the selected mode. Cleans up obsolete settings and prepares for future mode extensibility.
Refactored Helpers.Jiggle to accept separate X and Y deltas, enabling more precise mouse movement control. Updated all usages in MainForm to match the new signature. Improved README to clarify jiggle mode selection in the UI and replaced the --zen CLI option with a more flexible --mode option supporting multiple jiggle modes.
Replaces old zig-zag/zen logic with JigglePatterns class supporting Normal, Zen, Circle, and Linear movement patterns. MainForm now cycles through pattern steps per tick. Updates UI and help text for new modes; removes obsolete zen fields.
Introduces a "Jiggle Distance" multiplier setting, adjustable via the UI and a new -d/--distance command-line option (range 1–120). The setting is persisted, updates jiggle patterns dynamically, and is documented in the README and help text. Refactored constructors and property bindings to support this feature.
Introduces dotnet-release.yml, a new GitHub Actions workflow for official release builds. This workflow runs on release creation (targeting master) or manual dispatch, building Debug and Release configurations for both x64 and arm64 Windows platforms. It handles checkout, .NET 10 setup, restore, build, and artifact upload, and is separate from the development workflow.
There was a problem hiding this comment.
Pull request overview
Updates Mouse Jiggler for the 3.0.0 milestone by modernizing the build/runtime baseline and expanding jiggling behavior and configuration (UI + CLI), with updated docs and CI workflows.
Changes:
- Bump to v3.0.0, move to .NET 10 / updated NuGet dependencies, and add a release workflow.
- Add jiggle modes (Normal/Zen/Circle/Linear), distance multiplier, mouse-movement pause, and new CLI options.
- Update user settings schema (replace legacy Zen toggle with mode + distance) and refresh README/licensing text.
Reviewed changes
Copilot reviewed 17 out of 20 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates install/runtime notes, usage/docs for new modes/settings, and adds a “Usage Limitations” section. |
| LICENSE | Changes license header and adds a special usage limitation clause. |
| MouseJiggler/MouseJiggler.csproj | Targets .NET 10, bumps version to 3.0.0, updates dependencies, and updates package metadata. |
| MouseJiggler/Program.cs | Reworks System.CommandLine wiring; adds new options (mode/distance/settings) and help spacing workaround. |
| MouseJiggler/SpacedHelpAction.cs | Adds custom help action to insert a blank line before help output. |
| MouseJiggler/MainForm.cs | Implements new jiggle patterns, distance, movement pausing, tray text changes, and execution-state toggling. |
| MouseJiggler/MainForm.Designer.cs | Updates settings UI (mode dropdown, numeric inputs) and tray menu items. |
| MouseJiggler/Helpers.cs | Adds execution-state (stay-awake) calls and mouse movement detection helpers. |
| MouseJiggler/JigglePatterns.cs | New pattern definitions and distance scaling. |
| MouseJiggler/JiggleMode.cs | New enum for jiggle mode selection. |
| MouseJiggler/Properties/Settings.settings | Replaces ZenJiggle with JiggleMode + JiggleDistance. |
| MouseJiggler/Properties/Settings.Designer.cs | Regenerates strongly-typed settings accessors for new settings. |
| MouseJiggler/App.config | Updates default user settings to include JiggleMode/JiggleDistance. |
| MouseJiggler/NativeMethods.txt | Adds CsWin32 bindings for GetCursorPos and SetThreadExecutionState. |
| MouseJiggler/MainForm.resx | Resource formatting/reordering updates. |
| MouseJiggler/MouseJiggler.sln | Adds LICENSE to solution items. |
| .github/workflows/dotnet-release.yml | New release build workflow with RID/platform matrix. |
| .github/workflows/dotnet-dev.yml | Adds explicit permissions block. |
| mouse-jiggler.png | Updated image asset. |
Files not reviewed (2)
- MouseJiggler/MainForm.Designer.cs: Language not supported
- MouseJiggler/Properties/Settings.Designer.cs: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@cerebrate I've opened a new pull request, #124, to work on those changes. Once the pull request is ready, I'll request review from you. |
|
@cerebrate I've opened a new pull request, #125, to work on those changes. Once the pull request is ready, I'll request review from you. |
|
@cerebrate I've opened a new pull request, #126, to work on those changes. Once the pull request is ready, I'll request review from you. |
…geLicenseFile Co-authored-by: cerebrate <371623+cerebrate@users.noreply.github.com>
Co-authored-by: cerebrate <371623+cerebrate@users.noreply.github.com>
Update package description to reflect jiggle mode dropdown UI
…ption Co-authored-by: cerebrate <371623+cerebrate@users.noreply.github.com>
Fix license metadata mismatch: use PackageLicenseFile for custom Ms-PL/Modified license
…r-one Guard NotifyIcon.Text against 63-char Windows limit
Moved interval unit label left, increased its width, and set text alignment to top right. Shortened and relabeled the randomize interval checkbox to "Randomize?" and reduced its width.
No description provided.