Skip to content

feat(caffeinate): add timed keep-awake controls - #952

Open
josteinhanssen wants to merge 1 commit into
noctalia-dev:mainfrom
josteinhanssen:agent/add-caffeinate
Open

feat(caffeinate): add timed keep-awake controls#952
josteinhanssen wants to merge 1 commit into
noctalia-dev:mainfrom
josteinhanssen:agent/add-caffeinate

Conversation

@josteinhanssen

Copy link
Copy Markdown

Summary

Adds Caffeinate v1.1.2, a Noctalia v4 launcher provider and optional bar widget for temporarily pausing idle-triggered display, lock, and suspend actions.

  • Accepts flexible durations from seconds through weeks, clock forms, and an indefinite session.
  • Shows status, validation, replacement, and cancellation actions in the launcher.
  • Adds a compact bar countdown, exact seconds on hover, an attached session menu, preset controls, and right-click settings.
  • Shares Noctalia's built-in manual idle inhibitor instead of introducing a separate backend.
  • Includes configurable launcher alias, duration presets, inactive-widget behavior, English translations, documentation, and a 960×540 preview.

The standalone source and v1.1.2 release are available at https://github.com/josteinhanssen/caffeinate-provider/releases/tag/v1.1.2.

Why

Noctalia's built-in Keep Awake control is convenient for indefinite sessions, but starting precise timed sessions currently requires more manual interaction. Caffeinate makes arbitrary and reusable durations available directly from the launcher while keeping the active session visible and controllable from the bar.

Testing

  • Live-tested launcher input, finite and indefinite sessions, replacement, cancellation, compact and hover countdowns, the attached bar menu, right-click settings, and inactive-widget visibility in Noctalia v4.
  • Verified restart-free updating from the prior v1.0.2 custom-source release.
  • Ran ./scripts/check: manifest/registry validation, QML linting, upgrade-contract checks, and all 108 QML tests pass.
  • Verified caffeinate/preview.png is a 960×540 PNG and the registry copy differs from the v1.1.2 release only by the repository URL required for registry submissions.

AI assistance

The plugin was developed with substantial OpenAI Codex assistance under human direction. The implementation was reviewed, exercised live, covered by automated tests, and polished against the repository's AI-assisted development guidelines.

Caffeinate settings preview

@josteinhanssen

Copy link
Copy Markdown
Author

CI note: manifest-check and code-quality both failed during checkout, before inspecting any files in this PR. Their pull_request_target jobs use actions/checkout@v6, which now refuses to check out fork code in that trusted context by default (manifest run, quality run). The required-files check passed.

There is no plugin-side change that can resolve these checkout failures. Could a maintainer please validate through a safe fork-checkout workflow or review the checks manually? For reference, the standalone source passes manifest/registry validation, QML linting, upgrade-contract checks, and all 108 QML tests; this registry payload matches v1.1.2 except for the repository URL required by this registry.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant