Photo slideshow implemented in PowerShell -> Windows Forms
Simply target a (nested) folder of images. Local or LAN UNC path supported.
- task tray icon to start slideshow on demand...
- otherwise kicks off after user defined idle timeout (honors running video)
- good randomization - one soon realizes pleasantly random photos are the key want of a photo slideshow ... fortunately PowerShell has a readily available random commandlet that seems to do quite well
- persists "lastShown" for each subfolder and avoids re-showing within XX days (currently 1 month)
- image fade-in and slide for ambience
- several hotkeys functional:
- open current image folder
- copy current image to My Photos
- rotate current image (and save) - generally honors EXIF rotation metadata where present, this option allows for manual correction where EXIF is missing
- reverse to previously shown photo (left cursor)
- pause/play (space)
- hotkey legend pops up on any other keypress
- screen click functions:
- double click in center hides slideshow
- single click in center pauses slideshow
- click arrows on far left and right for prev/next image
- skips .hidden folders
- plays videos via VLC
- open to modification - it's just PowerShell :) no compiling tools required
- only the ps1 and ico files are needed, download them to a folder
- ensure VLC.exe is in your path
- (see screenshot below) create a shortcut to the ps1 and tweak the target to include
powershell
before the ps1 filename... - example full shorcut command line:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden \\beejquad\Dev\_PersonalProjects\PoShSlideshow\PoShSlideshow.ps1 -photoPath \\beejquad\photos -idleTimeout 2
- select Run: Minimized to make script launch more polished
- add
-WindowStyle Hidden
after powershell.exe on target command line for further polish - then hit the Advanced button and select Run as administrator - this is only required for the
powercfg /requests
used to identify running video and avoid starting slideshow after user input idle timeout (wouldn't mind hearing a slicker approach???) - script parameters:
- add
-photoPath {path\to\your\images}
to the end of the shortcut path - UNC shared folder fair game, write permissions required to persist folder cache flat file - add
-idleTimeout 2
to the end of the shortcut path - units are in minutes
- add
- Copy this shortcut to
shell:startup
in Windows FileExplorer to automatically launch this script when you login to your desktop
- [done]
show videos as well - thinking VLC convenient