Skip to content

Mouse Jump settings: render preview from Windows wallpaper with acrylic taskbar - #51128

Open
Niels Laute (niels9001) wants to merge 4 commits into
mainfrom
nielslaute-microsoft-mouse-jump-appearance-redesign
Open

Niels Laute (niels9001) wants to merge 4 commits into
mainfrom
nielslaute-microsoft-mouse-jump-appearance-redesign

Conversation

@niels9001

@niels9001 Niels Laute (niels9001) commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Summary of the Pull Request

Refreshes the Mouse Jump settings in Settings > Mouse utilities:

  • Preview image: the blocky pixel-art desktop (MouseJump-Desktop.png) is replaced by one generated from the user's Windows wallpaper, with a Windows 11 style acrylic taskbar drawn on top. It is also sampled at higher quality, so it looks crisp.
  • Preview style picker: the Segmented control and "Copy to Custom preview style" button are replaced by a ComboBox in the expander header.
  • Thumbnail size card: simplified.
Image

PR Checklist

  • Closes: #xxx
  • Communication: I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected
  • Tests: Added/updated and all pass
  • Localization: All end-user-facing strings can be localized
  • Dev docs: Added/updated
  • New binaries: Added on the required places
  • Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Preview image

  • New Helpers/MouseJumpPreviewDesktop.cs builds a cached fake two-screen desktop (960×540 primary, 576×360 secondary, bottom-aligned):
    • Wallpaper comes from SPI_GETDESKWALLPAPER and is cover-fitted per screen.
    • With no wallpaper set, it uses the solid COLOR_DESKTOP. If the wallpaper file can't be loaded, it falls back to the bundled Assets\Settings\Modules\Wallpaper.png.
    • Acrylic taskbar: a blurred and tinted strip from the screen image, with a light or dark tint based on SystemUsesLightTheme. It shows a Start logo, monochrome app icons and tray/clock placeholders.
  • New Helpers/SmoothImageRegionCopyService.cs: an IImageRegionCopyService that uses HighQualityBicubic. The built-in nearest-neighbour copier aliases photos.
  • MouseUtilsViewModel_MouseJump.cs: now uses the generated desktop and copy service. It no longer loads the PNG through a Lazy that was recreated on every access.
  • Removed Images/MouseJump-Desktop.png and its EmbeddedResource.
  • Added the GetSysColor and COLOR_DESKTOP P/Invoke to NativeMethods.

The Compact, Bezelled and Custom preview styles still render through the existing Mouse Jump DrawingHelper, so their borders and bezels still match the real Mouse Jump UI.

Preview style and thumbnail size UI (MouseJumpPanel.xaml/.cs)

  • The "Appearance" expander is renamed "Preview style". Its header now holds a Compact / Bezelled / Custom ComboBox, replacing the separate Segmented card and the "Copy to Custom preview style" button.
  • The style settings are always visible.
    • Picking a preset loads its values into them.
    • Editing any of them switches the style to Custom. The panel watches PropertyChanged on the view model for the 12 style properties, and ignores changes while it is applying a preset.
    • This replaces the old copy flow. That flow had a bug: it left the preset selected instead of switching to Custom.
  • Thumbnail size card: a generic description, the current value (W × H) shown in secondary text, and the edit button next to it.
  • Removed the unused strings, the unused Segmented resource dictionary, and the commented-out message box code.

Project layout

  • Moved MouseJumpPanel.xaml/.cs from the SettingsXAML\Panels folder, where it was the only file, to SettingsXAML\Controls\MouseJump. The namespace is now Microsoft.PowerToys.Settings.UI.Controls. Updated the page xmlns, the .csproj entry, the XamlIndexBuilder scan list (Panels → Controls) and the dev docs.

Validation Steps Performed

  • tools\build\build.cmd in src\settings-ui\Settings.UI (arm64 Debug): passed with exit code 0 and an empty errors log, for each commit.
  • Rendered the Compact (783×283) and Bezelled (768×283) previews through the same LayoutHelper/DrawingHelper pipeline in a scratch harness. Both checked visually.
  • Ran the XamlIndexBuilder against SettingsXAML after the move. All 15 MouseUtils_MouseJump_* entries are still indexed and mapped to MouseUtilsPage.
  • Launched the locally built PowerToys.Settings.exe and opened Mouse utilities > Mouse Jump.
  • Design lead tried the preview style ComboBox and thumbnail size card in the locally built Settings and approved them. No automated tests cover this panel.

Replace the pixel-art MouseJump-Desktop.png preview source with a fake two-screen desktop rendered from the user's wallpaper, with a Windows 11 style acrylic taskbar, and copy regions with high-quality bicubic sampling.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot added the Product-Settings The standalone PowerToys Settings application label Oct 8, 2026
@mikeclayton

Copy link
Copy Markdown
Contributor

Niels Laute (@niels9001) - I know it's only a Draft PR at present, but I've pulled it locally and it looks really good :-)

In case you were looking at improving the current "Win 3.11"-style bezels as well, I've been doing a bit of work to sync some new rounded corners with smoother highlight and shadow rendering down from FancyMouse - it's a work in progress at the moment but the ticket (and a first PR) is here for reference so we don't accidentally duplicate effort:

… card

- Replace the Segmented control and 'Copy to Custom' button with a ComboBox in the expander header (renamed 'Preview style')
- Always show the style settings; picking a preset loads its values, and editing any setting switches to Custom
- Thumbnail size card: generic description, value shown as secondary text next to the edit button

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@niels9001

Copy link
Copy Markdown
Collaborator Author

Niels Laute (@niels9001) - I know it's only a Draft PR at present, but I've pulled it locally and it looks really good :-)

In case you were looking at improving the current "Win 3.11"-style bezels as well, I've been doing a bit of work to sync some new rounded corners with smoother highlight and shadow rendering down from FancyMouse - it's a work in progress at the moment but the ticket (and a first PR) is here for reference so we don't accidentally duplicate effort:

Michael Clayton (@mikeclayton) Yeah we got some pointers from the design team to tweak a few things to have it be more inline with the overall Settings UX guidance, hence this PR 😁.

This PR is ready for review.. if it makes more sense to merge it into your PR, please let me know!

@niels9001
Niels Laute (niels9001) marked this pull request as ready for review October 9, 2026 10:47
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown

🧭 PR intake

Visual evidence: Required — The pull request changes product UI files, so reviewers need to see the visible result. Visual evidence was detected in the PR description.

Recommendation

Link the issue this PR fixes using a closing keyword such as Closes #123.

✅ Ready for review

This PR passed the automated intake checks and is ready for maintainer review.

Automated PR intake; PowerToys maintainers make final decisions.

The Panels folder only contained MouseJumpPanel. Move it next to the other Settings controls, update the namespace, page xmlns, csproj entry, search index scan list and dev docs.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@mikeclayton

Michael Clayton (mikeclayton) commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Niels Laute (@niels9001) - I'd just merge yours tbh to get it shipped. Mine is in 2 parts and includes some fairly big changes to the internals to properly support WinUI controles (rather than rending single combined bitmap) and it's got some performance gains as well, so I think it'll have some merge conflicts that will need dealing with.

Better to sneak yours in first and then I'll deal with and conflicts in mine...

I did make a mock-up of what the "Bezelled" style would look like with your change and mine both deployed though:

image

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Product-Settings The standalone PowerToys Settings application Ready for review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants