Skip to content

Releases: almakarem/Magnifier

v0.1.7

Choose a tag to compare

@github-actions github-actions released this 15 Jun 07:45

Full Changelog: v0.1.6...v0.1.7

Full Changelog: v0.1.6...v0.1.7

Full Changelog: v0.1.6...v0.1.7

v0.1.6 - DPI scaling + PS4 guidance

Choose a tag to compare

@almakarem almakarem released this 13 Jun 08:04

Added

  • DPI-aware Settings window. The window now opens at the correct physical size for your monitor's scale factor (e.g. 1520×1120 on a 4K display at 200%). Fonts and widget spacing scale proportionally so everything is legible without squinting. Moving the window between monitors with different DPI scales re-applies the correct size and font automatically via \WM_DPICHANGED.

Improved

  • PlayStation controller guidance in Diagnostics. The tab now explains clearly that DualShock 4 and DualSense controllers will always show Gamepads: 0 in Magnifier because Sony does not implement XInput, and that the fix is to install DS4Windows. It also clarifies that Steam's PlayStation Controller Support setting does not work here — only DS4Windows provides the system-wide XInput emulation Magnifier needs.

Upgrading

Drop-in MSI upgrade from 0.1.5.

v0.1.5 - bug fixes

Choose a tag to compare

@almakarem almakarem released this 11 Jun 09:38

Two regressions from 0.1.4, both reported and fixed within a few hours.

Fixed

  • Lens stops following the mouse after a keyboard pan or controller nudge. A single arrow-key press would latch the lens off-cursor until the app was restarted, because the keyboard pan path set the cursor-ownership flag but only the controller-idle code path ever cleared it. Mouse-follow now releases the latch the instant the physical mouse moves, and toggling the lens off / on resets it as well. Filed under InputRouter::ReleaseCursorOwnership().
  • --start-minimized flag (and general.start_minimized setting) was a no-op for the first-run welcome balloon. App::Initialise discarded the CLI flag and never consulted the persisted setting. Both now combine into a single start_quiet predicate that suppresses the welcome toast, so autostart launches are silent as advertised.

Upgrading

Drop-in MSI upgrade from 0.1.4 (MajorUpgrade is configured). Portable users: replace the executable, keep the existing %LOCALAPPDATA%\\Magnifier\\config.toml.

Verify

Get-FileHash SHA-256s are listed below.

v0.1.4

Choose a tag to compare

@almakarem almakarem released this 11 Jun 06:18

What's new in 0.1.4

Added

  • MIT LICENSE — codebase is now MIT-licensed to AMSA.
  • show_settings hotkey — default Ctrl+Alt+S, rebindable from Settings → Hotkeys.
  • First-run welcome toast — on fresh install a tray balloon names the toggle and settings shortcuts.
  • Tray hover tooltip — shows current mode + active oggle_lens + show_settings keys; auto-updates after any rebind.
  • App icon — .exe, tray, and Settings window load the custom icon from �pp/Magnifier.ico (conditional HAVE_ICON build; scripts/make-icon.ps1 helper).
  • About tab — author bio, Ko-fi/PayPal donation links, Discord/X/Email contact, acknowledgements, MIT attribution.
  • Issue templates — structured �ug.yml and eature.yml forms; blank issues disabled.
  • CHANGELOG.md — Keep-a-Changelog format covering 0.1.0 → 0.1.4.
  • Exhaustive README — per-tab Settings docs, all default hotkeys, controller tiers, CLI reference, privacy statement, SmartScreen guidance, build-from-source steps.

Changed

  • Refresh-rate auto-detect + vblank sync. The tick loop now matches the monitor's actual refresh rate (re-queried on \WM_DISPLAYCHANGE) and calls \DwmFlush()\ each tick while a mode is active. Fixes ghost trails / smear at low zoom on 240 Hz panels.
  • Updates tab is read-only. Editable Owner/Repo/PAT fields removed; source is pinned to \�lmakarem/Magnifier.
  • Default updater owner hardcoded to \�lmakarem\ so reset configs check the right repo.

Fixed

  • Crash-dump handler verified wired (\src/util/Crash.cpp\ + \crash::Install()). Unhandled exceptions produce a .dmp\ under %LOCALAPPDATA%\Magnifier\crashes\.

Build

  • \magnifier_core\ now includes \�pp/\ so resource headers resolve from any TU.
  • CMake project version bumped to 0.1.4.

Magnifier v0.1.3

Choose a tag to compare

@almakarem almakarem released this 10 Jun 16:08

Controller detection fixes, About tab, more rebindable hotkeys.

What's new

Controller (the BT-pad situation):

  • Added a RawGameController fallback path. The previous WGI backend only saw devices that Windows promotes to a strict standard gamepad. Many BT pads (some DualSense modes, generic HID gamepads, Switch Pro variants) never qualify and showed up as nothing. We now fall back to raw HID enumeration so axes work even when Windows refuses to map the pad. Buttons may map differently per vendor on the raw path.
  • Diagnostics tab now shows TWO enumeration counts so you can tell the difference between:
    • Standard Gamepads > 0 -> Just Works
    • Standard = 0, Raw > 0 -> we use the raw fallback (axes only)
    • Both = 0 -> Windows itself doesn't see the pad; pair it via Settings > Bluetooth or install a vendor driver such as DS4Windows for DualShock/DualSense
  • Note: Steam working does NOT mean Windows sees the pad. Steam ships its own HID driver and bypasses Windows' standard gamepad enumeration entirely.

Hotkeys:

  • Added rebindable rows for pan_left / pan_right / pan_up / pan_down in Settings > Hotkeys.
  • Added a yellow warning banner explaining the Intel/AMD GPU rotation hotkey conflict. If Ctrl+Alt+Arrows do nothing in your app, your graphics driver is eating them. Fix: disable rotation hotkeys in Intel Graphics Command Center (Preferences > System > Hotkeys) or AMD Adrenalin (Preferences > Hotkeys), OR rebind to e.g. Win+Alt+Arrows or Shift+Alt+Arrows.
  • Reminder: plain arrow keys pan ONLY while lens mode is on. There is no separate 'arrow mode' to exit. Press your Toggle Lens hotkey (default Ctrl+Alt+Z) or use the tray icon to turn lens off.

About tab:

  • New About tab with author, source, donation, and acknowledgements (placeholder — links to be filled in).

Download

  • Portable: Magnifier-0.1.3-win64.zip
  • Installer: Magnifier-0.1.3-x64.msi

All 32 unit tests pass.

Magnifier v0.1.2

Choose a tag to compare

@almakarem almakarem released this 10 Jun 15:39

Whats new

Bluetooth / DualSense / DualShock / Switch Pro controller support

The previous controller backend used XInput, which only sees devices that emulate the Xbox 360 protocol. Native Bluetooth-paired DualSense, DualShock 4, Switch Pro, and generic HID gamepads were invisible to it (even though Steam saw them fine ? Steam has its own HID driver). v0.1.2 adds a second backend built on Windows.Gaming.Input (WGI), so those controllers now work without DS4Windows or Steam Input as a bridge.

  • Polls WGI first each tick; falls back to XInput if WGI sees nothing.
  • Uses the raw WinRT C ABI to sidestep an SDK/MSVC C++20 incompatibility.
  • WGI hot-plug works exactly like XInputs: plug or unplug a pad at any time, no app restart.

Settings -> Diagnostics tab

A new tab in the Settings window shows the live controller poll snapshot ? backend (WGI / XInput / empty), device name, left/right stick X/Y, triggers, and the XInput-style buttons bitfield. Use this to verify your controller is being seen.

Plain arrow keys pan the lens while lens mode is active

When lens mode is on, unmodified Left / Right / Up / Down now pan the lens with autorepeat. When lens mode exits the keys are released, so they wont hijack typing in other apps. The permanent Ctrl+Alt+Arrows bindings still work in any mode.

How to verify

  1. Pair the controller.
  2. Open tray icon -> Settings -> Diagnostics.
  3. Move the sticks ? the bars should respond instantly.
  4. If Backend stays empty: check %LOCALAPPDATA%\Magnifier\magnifier.log for WGI: Windows.Gaming.Input backend ready.

Magnifier v0.1.1

Choose a tag to compare

@almakarem almakarem released this 10 Jun 14:55

Bug fixes

  • Lens shows white on 3/4 of the window on a single high-DPI display
    Fixed by giving the host window an opaque-black background brush, adding WM_SIZE and WM_DPICHANGED handlers that keep the WC_MAGNIFIER child exactly aligned with the host's client area, and forcing per-monitor-V2 DPI awareness explicitly on the UI thread at startup.
  • Arrow keys did not pan the lens
    Added four new actions pan_left / pan_right / pan_up / pan_down bound by default to ctrl+alt+left/right/up/down. Each press moves the lens centre by lens.pan_step (default 80 px); hold the key for smooth panning via keyboard autorepeat.
  • Controller hot-plug visibility
    ControllerPoll now logs each XInput slot connect / disconnect. Check %LOCALAPPDATA%\Magnifier\magnifier.log if a controller still doesn't work — if you don't see XInput controller detected on slot N shortly after plugging it in, your controller isn't exposing itself as an XInput device (e.g. some DualShock 4 / DualSense modes). Use DS4Windows or Steam Input to bridge it to XInput.

Notes

This is a private release; in-app auto-update requires a fine-grained PAT with Contents: Read scope on this repo. Drop it into Settings \u2192 Updates \u2192 Personal Access Token.

Magnifier v0.1.0

Choose a tag to compare

@almakarem almakarem released this 10 Jun 12:05

Magnifier v0.1.0 — Initial Release

Features

  • Lens and fullscreen magnification modes
  • Mouse, keyboard hotkeys, and Xbox controller support
  • ImGui settings window (hotkeys, zoom, lens size, colours)
  • IPC server for external control
  • Auto-update check via GitHub Releases API

Downloads

  • Magnifier-0.1.0-x64.msi — Windows installer (recommended)
  • Magnifier-0.1.0-win64.zip — Portable (extract and run)

Requirements

  • Windows 10 1903+ (64-bit)