Skip to content

Releases: wiradeltaid/wira-desk

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 14:07
b492e26

Added

  • Directional Custom-Percentage Top Snap: Configurable top-edge snapping default set to 33% (Ctrl+Alt+Shift+Up) while lateral and bottom edges remain at 67%, with full backward compatibility and persistent configuration.
  • Canonical Update Check Subsystem: Update descriptor checks migrate to the self-hosted endpoint https://wiradelta.com/api/v1/update/wira-desk/ enforcing strict no-redirect policy (Redirects::Never), sharing identical 4-part User-Agent contract (WiraDesk/<version> (Windows <major>.<minor>.<build>; <arch>)) with installer downloads.
  • Portable Zip Distribution: Release workflows package executables, license, and notices into WiraDesk-<version>-x64-portable.zip, eliminating loose executable uploads, protected by an automated release artifact verifier in CI.
  • Settings Embedded URL Registry: Centralized registry for all studio links with trailing slashes (/), with hardened browser opening allowlist.
  • Formal Indonesian Legal Copies: Synchronized PRIVACY.id.md and SECURITY.id.md with official copy stamps and dual-language alignment.
  • Visual Window Switcher: Same-app visual switcher overlay displaying live window tiles and thumbnails with adaptive layout, keyboard navigation (including Shift-held backward cycling), and mouse selection.
  • Driverless Mouse Desktop Navigation: Native mouse hook support mapping thumb back/forward buttons and horizontal tilt wheel left/right to desktop switching, snapping, and arrangement presets without manufacturer drivers.
  • Header Defaults Buttons: Pane-level ↺ Defaults buttons in Shortcuts, General, and Mouse headers with conditional visibility appearing only when active draft differs from defaults.
  • Real-time Tray Warning Reset: Automatic clearance of the system tray warning indicator upon successful configuration reload, while maintaining critical hook error precedence.

Changed

  • Settings About Pane Layout Polish: Natural word wrapping without awkward mid-sentence breaks for update toggle disclosure, non-breaking space for Windows 11, three-line license block sequence, and removal of duplicate GitHub button in Card 3 while preserving the Source code text link in Card 1.
  • Update Check Error Message Differentiation: Update check descriptor query failures explicitly cite wiradelta.com answered with status {code}. You can try again., reserving download server error terminology strictly for installer binary downloads.
  • Canonical Domain Move to wiradelta.com: Update descriptor endpoint, studio links, browser allowlist, About pane text, and support address all move to wiradelta.com (ODR-011).
  • Settings About and General Pane Copy: Word-for-word alignment with approved studio legal specifications, renaming "Support development" to "Send a tip", standardizing hold delay notation to (100 to 500 ms), and locking all critical legal labels.
  • Threat Model Alignment: Documented dual outbound network paths, visual switcher window title inspection, and 1 MB log rotation.
  • Edge-snap default percentage updated from 50% to 67% (Ctrl+Alt+Shift+Left/Right/Up/Down).
  • General Defaults isolation: Restoring General settings to defaults now preserves the Windows auto-start preference.
  • Settings window & modal polish: Compact 560px window height, polished About pane card layout cleanly enclosing the Reset button, and redesigned modal confirmation dialog matching Onboarding aesthetics without blue focus outlines.
  • Installer safety & downgrade prevention: Inno Setup installer enforces 64-bit HKLM registry checks, strict SemVer downgrade rejection, zero-bundling invariant, and fail-closed process shutdown.

Fixed

  • Window candidate filtering: Sanitized switcher candidates to exclude WinUI 3 popup bridges, PopupHost helpers, and invisible assistant windows.
  • Start menu suppression during cycling and multi-window blind backward traversal stability.
  • Clean retirement of legacy migration shims.

Install with the setup executable or portable archive.

Updating is built in: Settings has a "Check for updates" button. Whichever way
you installed, that button is the update path, and it needs no command line.

The installer places Wira Desk under %ProgramFiles%, which is deliberate and not
configurable to a per-user location. Auto-start runs the daemon elevated at every
logon with no prompt, so a directory only administrators can write is what protects
it. Installing it anywhere a normal user can write turns that into a privilege
escalation route -- see SECURITY.md.

Verify your download against SHA256SUMS before running:

Get-FileHash .\WiraDesk-

0.3.0
-x64-setup.exe -Algorithm SHA256

These binaries are not code-signed, so Windows SmartScreen will warn and the
UAC prompt will show an unverified publisher. See SECURITY.md for what that
does and does not tell you.

Made with Slint (https://slint.dev), used under GPL-3.0-only -- the same
licence this project is released under. See LICENSE and deny.toml for which
branch of Slint's tri-licence applies.

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 08:49

Added

  • Custom-percentage edge snap: snap the active window to a screen edge at a percentage you set
    per direction in Settings, instead of the fixed half (Ctrl+Alt+Shift+Left/Right/Up/Down).
  • Snap to thirds: snap the active window to the left, middle, or right third of the screen
    (Ctrl+Alt+1/2/3).
  • Per-action shortcut on/off: every remappable shortcut — not just Overlapping Stack, previously
    the only one with a switch of its own — now has its own enable/disable control in Settings.
    Turning one off drops its chord from the keyboard hook entirely, so the key combination reaches
    whatever app is focused unchanged, exactly as if Wira Desk were not installed; the stored chord
    itself is untouched, and turning the action back on needs no re-entry.

Changed

  • The Shortcuts pane is grouped by what an action snaps to: Switching, Snap to half,
    Snap to third, Snap to custom, and Resize, move & arrange. The four custom-percentage
    rows now sit beside the halves and thirds they resemble instead of under moving windows around,
    and a row no longer repeats its group's name — under Snap to custom a row reads "Snap to left
    edge". See DEC-014.
  • The Layout pane is gone, and Settings now has four panes: General, Shortcuts, VM &
    Exceptions, About. Its one remaining control — the overlapping-stack width percentage — moves
    onto the Overlapping Stack row in the Shortcuts pane, beside that action's own shortcut and
    its on/off switch, so the setting sits with the action it belongs to. Nothing stored changes and
    no value is migrated; the width you had is the width you keep. See DEC-014.
  • A shortcut row shows its description on hover or keyboard focus instead of as a permanently
    visible line. Several descriptions were longer than the space they had, so an ellipsis was the
    only part of them some rows ever showed; the full text is now readable, and reachable without a
    mouse. The row's controls — percentage stepper, chord keycap, and on/off switch — sit on one
    vertical centre, and the five groups fit the default window width without sideways scrolling.
  • If you have bound two actions to the same chord, the one that keeps it may have changed.
    Maximize now sits behind every snap variant in the order that resolves a collision, so a snap
    action wins where Maximize used to. Nothing is migrated and no chord is renamed; on the shipped
    defaults nothing collides, so most installs see no difference. See DEC-014 for why the order
    moved and DEC-009 for how a collision is reported.
  • Overlapping Stack's default shortcut moved from Ctrl+Alt+Shift+Down to Ctrl+Alt+Shift+S,
    freeing the arrow keys under Ctrl+Alt+Shift for the custom-percentage snap above. See
    DEC-011. An install that already customized (or kept) the old default is not migrated; see
    the decision for what happens on that chord at startup.

Install with the setup executable, or through winget:

winget install WiraDigitalIndonesia.WiraDesk

Updating is built in: Settings has a "Check for updates" button. Whichever way
you installed, that button is the update path, and it needs no command line.

The installer places Wira Desk under %ProgramFiles%, which is deliberate and not
configurable to a per-user location. Auto-start runs the daemon elevated at every
logon with no prompt, so a directory only administrators can write is what protects
it. Installing it anywhere a normal user can write turns that into a privilege
escalation route -- see SECURITY.md.

Verify your download against SHA256SUMS before running:

Get-FileHash .\WiraDesk-

0.2.0
-x64-setup.exe -Algorithm SHA256

These binaries are not code-signed, so Windows SmartScreen will warn and the
UAC prompt will show an unverified publisher. See SECURITY.md for what that
does and does not tell you.

Made with Slint (https://slint.dev), used under GPL-3.0-only -- the same
licence this project is released under. See LICENSE and deny.toml for which
branch of Slint's tri-licence applies.

Download Wira Desk

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 03 Sep 10:07

Changed

  • License changed from MIT to GPL-3.0-only, across the project and all three workspace crates.
    Slint (the Settings UI toolkit) is now consumed under its own GPL-3.0-only branch rather than
    the Slint Royalty-free License 2.0, so the mandatory royalty-free-tier disclosure no longer
    applies. See LICENSE, NOTICE, and README.md.

Fixed

  • The Key Check pane in Settings now tells a chord swallowed by another program's keyboard hook
    apart from the daemon actually being stopped. Previously both showed "Daemon Not Running,"
    which pointed you at restarting a daemon that was never the problem.

Install with the setup executable, or through winget:

winget install WiraDigitalIndonesia.WiraDesk

Updating is built in: Settings has a "Check for updates" button. Whichever way
you installed, that button is the update path, and it needs no command line.

The installer places Wira Desk under %ProgramFiles%, which is deliberate and not
configurable to a per-user location. Auto-start runs the daemon elevated at every
logon with no prompt, so a directory only administrators can write is what protects
it. Installing it anywhere a normal user can write turns that into a privilege
escalation route -- see SECURITY.md.

Verify your download against SHA256SUMS before running:

Get-FileHash .\WiraDesk-

0.1.5
-x64-setup.exe -Algorithm SHA256

These binaries are not code-signed, so Windows SmartScreen will warn and the
UAC prompt will show an unverified publisher. See SECURITY.md for what that
does and does not tell you.

Made with Slint (https://slint.dev), used under GPL-3.0-only -- the same
licence this project is released under. See LICENSE and deny.toml for which
branch of Slint's tri-licence applies.

Download Wira Desk

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 29 Aug 17:00

No functional change from 0.1.3. This version exists to be found: an installed 0.1.3 checking
releases/latest/download/latest.json for the first time against a real newer tag, with no
debug seam or stand-in descriptor involved anywhere -- the last half of gate 2 this repository
had not yet proven for real. See 3p.md for what it verified.


Install with the setup executable, or through winget:

winget install WiraDigitalIndonesia.WiraDesk

Updating is built in: Settings has a "Check for updates" button. Whichever way
you installed, that button is the update path, and it needs no command line.

The installer places Wira Desk under %ProgramFiles%, which is deliberate and not
configurable to a per-user location. Auto-start runs the daemon elevated at every
logon with no prompt, so a directory only administrators can write is what protects
it. Installing it anywhere a normal user can write turns that into a privilege
escalation route -- see SECURITY.md.

Verify your download against SHA256SUMS before running:

Get-FileHash .\WiraDesk-

0.1.4
-x64-setup.exe -Algorithm SHA256

These binaries are not code-signed, so Windows SmartScreen will warn and the
UAC prompt will show an unverified publisher. See SECURITY.md for what that
does and does not tell you.

Made with Slint (https://slint.dev), used under the Slint Royalty-free
License 2.0. That licence requires this disclosure on the page the binaries
are downloaded from, which is this one -- so these two lines are a licence
term, not a credit. See deny.toml for which branch of the licence applies.

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 29 Aug 16:41

No functional change from 0.1.2. This version exists to run release.yml for the first time
ever — the tag-vs-crate check, the Inno Setup build inside CI, and the real
releases/latest/download/latest.json this repository's own updater will check against, none
of which had executed even once before this tag. A deliberate, disposable step before any
version is promoted as the one people should install; see 3p.md for what it verified.


Install with the setup executable, or through winget:

winget install WiraDigitalIndonesia.WiraDesk

Updating is built in: Settings has a "Check for updates" button. Whichever way
you installed, that button is the update path, and it needs no command line.

The installer places Wira Desk under %ProgramFiles%, which is deliberate and not
configurable to a per-user location. Auto-start runs the daemon elevated at every
logon with no prompt, so a directory only administrators can write is what protects
it. Installing it anywhere a normal user can write turns that into a privilege
escalation route -- see SECURITY.md.

Verify your download against SHA256SUMS before running:

Get-FileHash .\WiraDesk-

0.1.3
-x64-setup.exe -Algorithm SHA256

These binaries are not code-signed, so Windows SmartScreen will warn and the
UAC prompt will show an unverified publisher. See SECURITY.md for what that
does and does not tell you.

Made with Slint (https://slint.dev), used under the Slint Royalty-free
License 2.0. That licence requires this disclosure on the page the binaries
are downloaded from, which is this one -- so these two lines are a licence
term, not a credit. See deny.toml for which branch of the licence applies.

DEV: updater test harness (not a real release)

Choose a tag to compare

@kodesh87 kodesh87 released this 29 Aug 14:36

Not a real Wira Desk release. Hosts a real, checksummed installer asset so the in-app updater's download-and-verify path can be exercised end to end before the first real version is tagged. Marked prerelease so it is never picked up by /releases/latest. Referenced from shared::update's debug-only WIRADESK_DEV_LATEST_JSON_URL seam; see 3p.md, 2026-08-29.