Skip to content

Add macOS and Windows screensaver build for weathr #41

Description

@Matroskin86

Description:
Currently, weathr is a terminal-based CLI application. Users cannot install it as a native screensaver on macOS or Windows. This feature request proposes packaging weathr as a screensaver that runs the ASCII weather animation in the screensaver context.

Problem:

  • macOS requires .saver bundles implementing a ScreenSaverView class.
  • Windows requires .scr files handling standard screensaver callbacks.
  • Currently, users must run weathr manually in the terminal; no native screensaver option exists.

Proposed Solution:

  1. Implement a wrapper module for macOS:
    • Create a .saver bundle
    • Implement ScreenSaverView subclass that launches weathr internally
    • Render ASCII animation inside the screensaver window
  2. Implement a wrapper module for Windows:
    • Compile a .scr file
    • Handle standard screensaver messages (WM_PAINT, WM_CLOSE, WM_SYSCOMMAND)
    • Launch weathr animation inside a dedicated window
  3. Add build targets in Cargo for each platform
  4. Optional: allow config options for location, units, and animation style

Alternatives:

  • Run weathr inside a fullscreen terminal emulator, but this is not a proper native screensaver.

Additional Context:

  • macOS .saver bundles must declare NSPrincipalClass = ScreenSaverView in Info.plist
  • Windows .scr are essentially .exe with screensaver callbacks

Goal:
Enable users to run weathr as a true native screensaver on both macOS and Windows, preserving the ASCII weather animation.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions