Skip to content

Changelog

All notable changes to this project are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

1.3.1 - 2026-08-11

Fixed

  • Scheduled power action never fired. The warning dialog built its message label with pady=(18, 6) — a 2-tuple is only valid on .pack(), so Tk raised bad screen distance before the widgets and countdown were created. The result was an empty "Power action" window and no Sleep/Hibernate/Shutdown at any duration, on both Windows and macOS.
  • Windows hibernate is now reliable. Uses shutdown /h instead of SetSuspendState(1, 1, 0), which can silently fall back to sleep on some machines. Falls back to the power API if the command is unavailable.

Added

Removed

  • The redundant dont_lock_pc.py legacy launcher shim; use dontlockpc or python -m dontlockpc.

1.3.0 - 2026-07-26

Added

  • Scheduled power action — a "Then … after …" control to Sleep, Hibernate (Windows), or Shut down the machine once a timer elapses (minutes or a HH:MM clock time). The countdown is armed while keep-awake is running, releases keep-awake first, and shows a 30-second cancelable warning before acting. Backed by a new power_actions/power_action capability on the backend interface (Windows: Sleep/Hibernate/Shutdown · macOS: Sleep/Shutdown).

1.2.2 - 2026-07-13

Changed

  • Polished the developer credit line: crisp red heart, bold underlined name, and a hover highlight on the link.

1.2.1 - 2026-07-13

Added

  • Developer credit — a footer credit line with a clickable link.

Removed

  • Unused color constants (SURFACE, BLUE) from the UI palette.

1.2.0 - 2026-07-13

Added

  • Stay awake with the lid closed (Windows) — an optional toggle that overrides the active power plan's lid-close action to Do nothing while keep-alive is running, and restores the original setting on STOP/exit. Backed by a new prevent_lid_sleep/restore_lid_sleep capability on the backend interface (lid_close_supported). Not available on macOS, where clamshell sleep requires sudo pmset.

1.1.1 - 2026-07-13

Added

  • Automated release builds — a GitHub Actions Release workflow that, on every v* tag, builds the standalone DontLockMyPC.exe (Windows) and DontLockMyPC.app (macOS) with PyInstaller, zips them, and attaches them to the published GitHub Release.

1.1.0 - 2026-07-13

Added

  • Start at login — an in-app "Start automatically at login" toggle backed by a new cross-platform autostart module (Windows Run registry key / macOS LaunchAgent).
  • Standalone build — a checked-in dontlockpc.spec for PyInstaller that produces a windowed DontLockMyPC.exe (Windows) or DontLockMyPC.app (macOS); pyinstaller added to the dev extras.
  • UI previewdocs/screenshot.svg embedded in the README.

Changed

  • Repositioned the app around its core use case: keeping the system awake and unlocked while long-running AI agents work. Updated README, in-app subtitle, and package metadata accordingly.
  • Close button (✕) now fully exits the app; the minimize button (─) hides to the system tray.

1.0.0 - 2026-07-13

Added

  • Cross-platform support for Windows and macOS via a pluggable keep-awake backend abstraction (KeepAwakeBackend).
  • macOS backend using the built-in caffeinate utility plus Quartz CGEvent mouse/F15 input synthesis.
  • Proper src/ package layout (dontlockpc) with python -m dontlockpc and a dontlockpc console entry point.
  • Packaging via pyproject.toml, platform-marked dependencies, and a development extras group.
  • System-tray wrapper that degrades gracefully where a background-thread tray is unavailable (e.g. macOS → minimize to Dock).
  • GitHub Actions CI (lint + import smoke on Windows and macOS), issue/PR templates, CONTRIBUTING.md, CODE_OF_CONDUCT.md, and tests.

Changed

  • Extracted the original single-file Windows script into a package; the Windows Win32 logic now lives in backends/windows.py.
  • UI now uses platform-appropriate fonts and a native title bar on macOS.

Full commit history and release downloads are on GitHub Releases.