PowerToys/doc/planning/awake.md
Den Delimarsky 49a828236a
[Awake]PROMETHEAN_09082024 - tray icon fixes (#34717)
* Update with bug fixes for tray icon and support for parent process

* Process information enum

* Update the docs

* Fix spelling

* Make sure that PID is used in PT config flow

* Logic for checks based on #34148

* Update with link to PR

* Small cleanup

* Proper task segmentation in a function

* Cleanup the code

* Fix synchronization context issue

* Update planning doc

* Test disabling caching to see if that manages to pass CI
2024-09-26 15:25:30 +01:00

4.9 KiB

last-update
7-16-2024

PowerToys Awake Changelog

Builds

The build ID can be found in Core\Constants.cs in the BuildId variable - it is a unique identifier for the current builds that allows better diagnostics (we can look up the build ID from the logs) and offers a way to triage Awake-specific issues faster independent of the PowerToys version. The build ID does not carry any significance beyond that within the PowerToys code base.

The build ID moniker is made up of two components - a reference to a Halo character, and the date when the work on the specific build started in the format of MMDDYYYY.

Build ID Build Date
PROMETHEAN_09082024 September 8, 2024
VISEGRADRELAY_08152024 August 15, 2024
DAISY023_04102024 April 10, 2024
ATRIOX_04132023 April 13, 2023
LIBRARIAN_03202022 March 20, 2022
ARBITER_01312022 January 31, 2022

PROMETHEAN_09082024 (September 8, 2024)

Note

See pull request: Awake - PROMETHEAN_09082024

  • Updating the initialization logic to make sure that settings are respected for proper group policy and single-instance detection.
  • [#34148] Fixed a bug from the previous release that incorrectly synchronized threads for shell icon creation and initialized parent PID when it was not parented.

VISEGRADRELAY_08152024 (August 15, 2024)

Note

See pull request: Awake - VISEGRADRELAY_08152024

  • #34148 Fixes the issue where the Awake icon is not displayed.
  • #17969 Add the ability to bind the process target to the parent of the Awake launcher.
  • PID binding now correctly ignores irrelevant parameters (e.g., expiration, interval) and only works for indefinite periods.
  • Amending the native API surface to make sure that the Win32 error is set correctly.

DAISY023_04102024 (April 10, 2024)

Note

See pull request: Awake Update - DAISY023_04102024

  • #33630 When in the UI and you select 0 as hours and 0 as minutes in TIMED awake mode, the UI becomes non-responsive whenever you try to get back to timed after it rolls back to PASSIVE.
  • #12714 Adds the option to keep track of Awake state through tray tooltip.
  • #11996 Adds custom icons support for mode changes in Awake.
  • Removes the dependency on System.Windows.Forms and instead uses native Windows APIs to create the tray icon.
  • Removes redundant/unused code that impacted application performance.
  • Updates dependent packages to their latest versions (Microsoft.Windows.CsWinRT and System.Reactive).

ATRIOX_04132023 (April 13, 2023)

  • Moves from using Task.Run to spin up threads to actually using a blocking queue that properly sets thread parameters on the same thread.
  • Moves back to using native Windows APIs through P/Invoke instead of using a package.
  • Move away from custom logging and to built-in logging that is consistent with the rest of PowerToys.
  • Updates System.CommandLine and System.Reactive to the latest preview versions of the package.

LIBRARIAN_03202022 (March 20, 2022)

  • Changed the tray context menu to be following OS conventions instead of the style offered by Windows Forms. This introduces better support for DPI scaling and theming in the future.
  • Custom times in the tray can now be configured in the settings.json file for awake, through the tray_times property. The property values are representative of a Dictionary<string, int> and can be in the form of "YOUR_NAME": LENGTH_IN_SECONDS:
{
    "properties": {
        "awake_keep_display_on": true,
        "awake_mode": 2,
        "awake_hours": 0,
        "awake_minutes": 3,
        "tray_times": {
            "Custom length": 1800,
            "Another custom length": 3600
        }
    },
    "name": "Awake",
    "version": "1.0"
}
  • Proper Awake background window closure was implemented to ensure that the process collects the correct handle instead of the empty one that was previously done through System.Diagnostics.Process.GetCurrentProcess().CloseMainWindow(). This likely can help with the Awake process that is left hanging after PowerToys itself closes.