Skip to content

Releases: pasiegel/postergeist

Postergeist v1.4.1

28 Sep 04:05
aac5d61

Choose a tag to compare

[1.4.1] - 2025-09-27

Added

  • Folder Tag Filtering: You can now filter the slideshow to only include media from specific subdirectories using the --tag command-line argument. Name your folders with a suffix (e.g., posters_scifi, videos_comedy) and run the script with --tag scifi comedy to display only that content.
  • Added .webm Support: The script now recognizes and plays .webm video files alongside the other supported formats.

Postergeist v1.4

26 Sep 21:45
75325aa

Choose a tag to compare

Postergeist - Changelog

All notable changes to this project will be documented in this file.


v1.4.0 - 2025-09-26

This is a significant update that introduces a major new feature for themed overlays and fixes a critical bug related to video playback.

✨ New Features

  • Themed Overlay Tagging:

    • You can now assign specific overlays to entire folders of media.
    • How it works: Rename a subfolder inside your posters directory using the format FolderName_tag. For example, a folder named MyMovies_vhs will use the tag vhs.
    • The script will automatically look for an overlay file in the overlays folder with a filename that matches the tag (e.g., vhs.png, vhs.gif).
    • If no matching overlay is found for a tag, or if a folder has no tag, a random overlay will be used as a fallback.
  • Subdirectory Scanning:

    • The script now automatically scans for media files in all subfolders within the main posters directory. This allows for better organization of your media library and is essential for the new tagging feature.

🐞 Bug Fixes

  • Video Transition Stall:
    • Fixed a critical bug where the slideshow would not advance to the next item after a video file finished playing.
    • Cause: The root.after() scheduler was being given a reference to the get_delay method instead of the result of calling the method.
    • Solution: The call was corrected from `self.root.after(self.get_delay, ...)` to `self.root.after(self.get_delay(), ...)`, ensuring the scheduler receives a valid millisecond value.

🔧 Code & Logic Improvements

  • load_files() Function:

    • Rewritten to use os.walk() to recursively search through the entire directory tree of the specified posters folder.
  • _select_new_overlay() Method:

    • Refactored to accept the media_path of the current file as an argument. It now parses the parent directory name to check for a _tag.
  • show_image() and show_video() Methods:

    • Updated to pass the current file's path to the _select_new_overlay() method, enabling the new tag-based logic.

Postergeist v1.3

22 Sep 15:46
06ebc96

Choose a tag to compare

Changelog

All notable changes to Postergeist will be documented in this file.


[1.3.0] - 2025-09-22

Added

  • Animated Overlay Support
    • Overlays can now be .gif and .apng files in addition to static images.
    • Frame-based animation support with correct duration handling.
  • Overlay Behavior Enhancements
    • Overlays suppressed automatically when posters/videos nearly fill the entire display.
    • Overlays animate independently of the slideshow.
  • Performance Mode
    • New --performance-mode flag disables heavy visual effects (like glow blur).
    • Optimized for low-powered devices such as Raspberry Pi.
  • Glow Effect
    • Posters now have an optional glow effect (Gaussian blur behind the poster).
  • Cached Video Background
    • Video backgrounds are blurred and cached for smoother playback.
  • New CLI Options
    • --fade-height: sets the fade height at the bottom of posters as a percentage (default: 20).
    • --performance-mode: disables glow and other intensive effects.

Changed

  • Overlay Handling
    • Rewritten to support both static and animated overlays.
    • Uses separate scheduling for overlays (overlay_job) and slides (slideshow_job).
  • Image Processing
    • Split into prepare_base_frame() (background + poster) and _update_canvas() (final composition with overlays).
  • Fade Transition Logic
    • Now handled by fade_to_new_slide() for smoother overlay-aware blending.
  • Rotation
    • Rotating posters resets cached video backgrounds to prevent blur misalignment.

Removed

  • Replaced the older single-pass overlay system with a more robust animated overlay management system.

[1.2.0] - 2025-09-17

Added

  • Initial slideshow engine with image & video support.
  • Overlay support for static .png/.jpg images.
  • Fade transitions between slides.
  • Rotation support via keyboard shortcut.
  • Multi-display support with fullscreen or windowed mode.
  • Randomized slide delay option.
  • Splash screen when no media is available.

Postergeist v1.2

17 Sep 14:03
2d436a6

Choose a tag to compare

Postergeist v1.2

This release updates the core logic, making it easier to get started.

✅ What's Changed

  • Fix: The overlay now correctly hides itself when the main poster image fills the entire height of the canvas. This prevents the overlay from obscuring full-screen content.

📦 Assets

  • Postergeist-v1.2.exe: A standalone Windows executable. Run the slideshow without needing to install Python or any dependencies.
  • Source code (zip)
  • Source code (tar.gz)

Full Changelog: 1.1...1.2

postergeist-1.1

16 Sep 15:28
6dba612

Choose a tag to compare

Postergeist v1.1.0 - The Foundation Update

This is the first major stable release of Postergeist! This version transitions the script from a basic concept to a robust, feature-rich slideshow application. The core rendering and timing logic has been completely refactored to fix critical bugs, and several new user-friendly features have been added to create a polished and reliable experience.

🚀 New Features

  • Video Playback: The slideshow now seamlessly handles common video files (.mp4, .mkv, .mov, etc.), playing them within the same dynamically generated frame as the images.
  • Responsive Splash Screen: A helpful splash screen now appears if the posters folder is empty. It's fully responsive and will dynamically re-center itself if the application window is resized.
  • Automatic Folder Creation: To simplify setup, the script will automatically create the posters and overlays folders on its first run if they don't exist.

🐛 Bug Fixes

  • Rotation Logic: Completely overhauled the image rendering pipeline. Rotation now correctly fills the entire screen by composing all elements onto a logically oriented canvas before the final rotation is applied.
  • Slideshow Timing: Fixed a critical bug that caused the slideshow to cycle much faster than the configured delay. The script now properly manages and cancels timers, preventing multiple timers from running simultaneously.
  • Splash Screen Rendering: Corrected an issue where the initial splash screen text would render off-screen.

🎨 Improvements

  • Code Structure: The script has been refactored into a more robust Postergeist class, improving organization and making future enhancements easier.
  • Poster Alignment: The default vertical alignment for posters has been changed from center to top-aligned for a cleaner presentation.
  • Blurred Backgrounds: Restored and improved the dynamic blurred background feature, which fills empty screen space with a color-matched, blurred version of the current poster.

postergeist-1.0

15 Sep 15:30
f6cdf07

Choose a tag to compare

Initial release of windows executable for those who prefer a compiled binary.

Full Changelog: https://github.com/pasiegel/postergeist/commits/1.0