Releases: pasiegel/postergeist
Postergeist v1.4.1
[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 --tagcommand-line argument. Name your folders with a suffix (e.g.,posters_scifi,videos_comedy) and run the script with--tag scifi comedyto display only that content.
- Added .webmSupport: The script now recognizes and plays.webmvideo files alongside the other supported formats.
Postergeist v1.4
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 postersdirectory using the formatFolderName_tag. For example, a folder namedMyMovies_vhswill use the tagvhs.
- The script will automatically look for an overlay file in the overlaysfolder 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 postersdirectory. This allows for better organization of your media library and is essential for the new tagging feature.
 
- The script now automatically scans for media files in all subfolders within the main 
🐞 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 theget_delaymethod 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 specifiedpostersfolder.
 
- Rewritten to use 
- 
_select_new_overlay()Method:- Refactored to accept the media_pathof the current file as an argument. It now parses the parent directory name to check for a_tag.
 
- Refactored to accept the 
- 
show_image()andshow_video()Methods:- Updated to pass the current file's path to the _select_new_overlay()method, enabling the new tag-based logic.
 
- Updated to pass the current file's path to the 
Postergeist v1.3
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 .gifand.apngfiles in addition to static images.
- Frame-based animation support with correct duration handling.
 
- Overlays can now be 
- Overlay Behavior Enhancements
- Overlays suppressed automatically when posters/videos nearly fill the entire display.
- Overlays animate independently of the slideshow.
 
- Performance Mode
- New --performance-modeflag disables heavy visual effects (like glow blur).
- Optimized for low-powered devices such as Raspberry Pi.
 
- New 
- 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).
 
- Split into 
- Fade Transition Logic
- Now handled by fade_to_new_slide()for smoother overlay-aware blending.
 
- Now handled by 
- 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/.jpgimages.
- 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
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
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 postersfolder 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 postersandoverlaysfolders 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 Postergeistclass, improving organization and making future enhancements easier.
- Poster Alignment: The default vertical alignment for posters has been changed from centerto 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
Initial release of windows executable for those who prefer a compiled binary.
Full Changelog: https://github.com/pasiegel/postergeist/commits/1.0