Skip to content

Basjohn/ShittyRandomPhotoScreenSaver

Repository files navigation

ShittyRandomPhotoScreenSaver (SRPSS)

How dare you hover your cursor here!

ShittyRandomPhotoScreenSaver (SRPSS) is a modern Windows (W10/W11) screensaver that is suprisingly less shit than the majority of ancient decrepid screensavers around today. Born from my sheer exhaustion of still using a screensaver from 2005 to do less than what this does.

3-6-Still-1080p-3

Features

  • Random Image Slideshow

    • Local folders (recursive) as primary source

    • Optional RSS/JSON image feeds (e.g. curated Reddit wallpaper feeds)

    • Mixed mode (folders + RSS) support with ratio control

    • High‑quality scaling with optional sharpening

    • Transitions:

      • Ripple
      • 3D Block Spin (Actual 3D like 1998!)
      • Crumble (More work than it was worth!)
      • Particle (Somehow does not look shit!)
      • Warp Dissolve
      • Crossfade
      • Slide
      • Wipe
      • Diffuse
      • Block Puzzle Flip
      • Blinds
    • Multi‑monitor aware: same image on all screens or independent images per screen

  • Overlay widgets

    • GMAIL Via Imap with customizable notifications, control from inside the app/saver etc.
    • Clock widgets (up to three): 12h/24h, multiple time zones, analogue or digital
    • Weather widget using Open‑Meteo (no API key) with location autodetect on first run
    • Media widget (Spotify/Musicbee now‑playing) with optional controls and artwork. Auto detection for which app is open, link to Musicbee plugin in settings.
    • Beat visualizer paired with the media widget – Overly robust and feature filled af.
    • Reddit widget showing top posts from a configured subreddit

    Widget requests are welcome, the engine is robust enough to handle all sorts of your weird kinky shit. Realisitically since so many APIs are bogged down and so much scraping is blocked each has to be assessed. Steam/Search/*Arr widgets are the next best targets if anyone ever cares about this project beyond me.

  • Settings dialog (config mode)

    • Dark, frameless UI
    • Tabs:
      • Sources – folders + RSS/JSON feeds
      • Display – mode, interval, sharpen, pan & scan, monitor selection
      • Transitions – transition type, duration, directions, per‑type tuning
      • Widgets – clock(s), weather, media, Spotify visualizer, Reddit (You'll need to configure these to your liking! Geolocation is kinda shit.)
      • Accessibility - Join my crippled ass with these features! Background brightness dimming and pixel shifting because maybe you're feeling kinda weird or something.
      • Presets - Preset system to get going fast with an auto-saving custom preset for your personalization.
      • About – version, credits, SST/JSON-based settings Import/Export, emergency defaults button and preset import/export.
  • Interaction Mode & Interaction Gating

    • Optional "Interaction" mode: mouse movement/clicks no longer exit; only keyboard, context menu or reddit links exit.
    • Ctrl‑driven halo to interact with overlays (e.g. media controls, Reddit links) while the screensaver stays active.

    Why? Because you can actually click those reddit links! You can actually control Spotify through its controls in the widget! I never clicked the clock or weather though, you probably shouldn't try it.

    Cntrl holding gives you a temporary interaction mode that makes you able to move/see/click the mouse without exiting (but if you click a reddit link we're going to exit and take you to the comments so you can join everyone else in not reading the article/source)

    Interaction Mode on the other hand makes nothing except ESC/RightClick/Reddit links close the screensaver. (This is replicated in the SRPSS_MC release version) While seeming strange at first, if you have multiple monitors you can pick one or two of them, leave it running 24/7 with widgets of your choice. Your image will change reducing any burn worries aaaand you have pretty widgets.

    MC/Media Center Builds are designed for Interaction Mode especially. These come with it turned on and run in the background with minimal resource usage.

    (If you have an OLED nothing is gonna stop burn in except a black screen but you know that already)


Transitions Showcase Shrunk Down To GitHub's 1999 Ass 10MB Limit: SSRPSTrOnly

Keyboard & Mouse Controls

While the screensaver is running

  • Hotkeys (do not exit)

    • 'Z' - Previous image
    • 'X' - Next image
    • 'C' - Cycle transition type
    • 'S' - Open settings dialog (stops the saver, shows the config UI)
    • 'PgUp/PgDown' - Global Volume Up/Down
    • 'Spacebar' - Play/Pause
    • 'Home' - Global Media Play Pause
    • 'END' - Global System Mute On/Off
  • Exit keys (always exit)

    • Esc – Exit screensaver
    • Q – Exit screensaver
  • Mouse

    • Normal mode (Interaction Mode OFF):
      • Move the mouse beyond a small threshold → exits the screensaver.
      • Any mouse button click → exits the screensaver.
    • Interaction mode (Interaction ON):
      • Mouse movement and clicks do not exit, Double Clicks advance to the next image; use Esc or Q or the context menu to exit.
    • Right Click Context Menu
      • Right Click while holding Ctrl and a glorious context menu is born.
      • Use it for EVERYTHING. EMBRACE IT. HOLD IT. DO NOT LET OTHERS KNOW YOU HAVE IT. IT IS YOURS ALONE.
  • Ctrl Halo interaction

    • Hold Ctrl to show a halo/cursor proxy over the active display.
    • While Ctrl/halo is active, mouse clicks can interact with overlay widgets (e.g. media controls, Reddit links) without immediately exiting.
    • Right Click while holding Ctrl and a glorious context menu is born.

Settings Dialog

You can open the settings dialog in three ways:

  • From Windows Screen Saver Settings, by clicking Settings... for SRPSS (see below).
  • From the running screensaver itself by pressing S.
  • From your precious right-click context menu.

The settings dialog lets you:

  • Configure EVERYTHING.
  • Change EVERYTHING.
  • DEVOUR EVERYTHING.
  • BECOME ONE.

It also is a riduclously pretty looking thing that even simulates DWM transparency from the Vista era.

All changes are applied immediately and persisted between runs.


  • Docs: Spec.md and Index.md are the canonical references for architecture/module mapping; Docs/10_WIDGET_GUIDELINES.md is the canonical new-widget creation guide, and Docs/Custom_Style_Implementation.md covers shared style/chrome rules.

Keep contributions aligned with the centralized managers (ThreadManager, ResourceManager, SettingsManager) and the widget/theming policies documented above—rogue threads/shadows will be mocked relentlessly.

Installation & Usage (Windows 10 / 11)

Download a version, ideally the setup version if you want it to actually work.

1. Run the installer.

  1. Yeah that's literally it.
  2. Really.
  • Note, all versions replace all visualizers every install because I do weird shit I cannot keep track of. If you have saved visualizer presets you want to preserve use export presets in about and then import them after the install. Your custom section visualizers are never touched.

2. Set SRPSS as your screensaver

Check the open screensaver settings box in the installer (or leave it checked) and it will even take your lazy ass there.

In the Screen Saver Settings dialog:

  1. Open the Screen saver dropdown.
  2. Select SRPSS (this is the name of the SRPSS.scr file).
  3. Optionally adjust Wait time and On resume, display logon screen.
  4. Click Apply and OK.

3. Settings

  • Set your sources! Either a folder (or multiple) on your system with your wallpapers or RSS/JSON feeds or....both with a weird ratio slider!
  • If you are exceptionally lazy about your sources just click the "Just Make It Work" button at the bottom of the sources tab. It will just work.
  • Clock does a decent job figuring out your timezone, you can have multiple timezones and up to 3 clocks, optionally digital or analogue and with different regions per display.
  • Weather does a really bad job of figuring out where you are but has awesome autocomplete so just start typing your City name and click the suggestion.
  • Reddit can be set to any kinky ass subreddit you want.

4. Layout

  • Right Click (With CNTRL held or Interaction Mode on) to open your bethrothed context menu and choose Edit.
  • In this sexy new mode drag around the widgets, resize them by the corners or your scroll wheel however you like, even across displays.
  • When things look positioned like you'd like choose save in the context menu (or press enter like a bitch who cannot handle context menus) and it will apply.
  • Revert in Edit is for going back to non-custom mode or saving yourself from weird changes. Each widget has a reset button in Edit mode and the Spotify widget even has an extra one for if the visualizer gets lost.

Versioning

Version information is centralised in versioning.py and used by both runtime and build tooling and Inno installer is used for this to actually fucking work.

  • Application name: ShittyRandomPhotoScreenSaver
  • Executable name: SRPSS
  • Version string: APP_VERSION

Credits

https://basmilius.github.io/ For the pillaged weather icons!

This README focuses on wasting your time.

About

Supports folders, rss feeds, spotify, reddit, gmail inbox control, multiple timezone clocks, weather, four displays, too many visualizers and will ideally not look like shit. Maybe.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Contributors

Languages