vidwhacker(6x)

πŸ’… vidwhacker (6x) β€” the XScreenSaver manual, but make it make sense

okay so bestie, welcome to vidwhacker, a little gremlin from the XScreenSaver manual (section 6x, yes it's a real section, slay). It grabs pics and then absolutely violates them with random filters. No cap.


✨ NAME ✨

vidwhacker β€” grab images and apply random filters to them πŸŽ¨πŸ¦‹


✨ SYNOPSIS ✨

vidwhacker [--display host:display.screen] [--root] [--window-id
number][--verbose] [--stdin] [--stdout] [--delay seconds] [-directory
directory] [--fps]

πŸŽ€ DESCRIPTION πŸŽ€

So what it does: it distorts an image using a random series of filters β€” edge detection, subtracting the image from a rotated version of itself, that whole vibe, etc. It's giving glitch art before glitch art was a thing πŸ’€

When it needs to pick a random image file, it does that by running the xscreensaver-getimage-file(6x) program. And if you ask it for video frames, that capture is done by running the xscreensaver-getimage-video(6x) program. Teamwork, honestly 🫢


🌸 OPTIONS 🌸

vidwhacker accepts the following options, and yes we're going through all of them:

  • --root β€” Draw on the root window. This is the default, so it's kind of the main character here πŸ‘‘
  • --window-id number β€” Draw on the specified window instead. Specificity is a love language.
  • --verbose β€” Print diagnostics. If you're nosy (same), this is your moment πŸ™ˆ
  • --stdin β€” Instead of grabbing an image from disk or video, read an image to manipulate from stdin. That image must be in ppm(5) format, okay? No funny business. The program will still perform repeated random image transformations, but it will always use this one image as its starting point β€” same pic, infinite chaos ✨
  • --delay seconds β€” How long to sleep between images. Default is 5 seconds. But lowkey, the actual elapsed time is significantly longer, due to processing time, so don't come for it 😭
  • --stdout β€” Instead of displaying the image on a window or on the root, write the new image on stdout, and exit. Very "here's your file, bye" energy.
  • --directory directory β€” Use this directory instead of the imageDirectory specified in the ~/.xscreensaver file. (heads up, the synopsis writes this one with a single dash as -directory β€” that's literally what it says, we don't fix, we report πŸ’…)
  • --fps β€” Display the current frame rate and CPU load. Numbers on screen. Obsessed.

πŸ¦‹ ENVIRONMENT πŸ¦‹

  • DISPLAY β€” to get the default host and display number.
  • XENVIRONMENT β€” to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property.
  • XSCREENSAVER_WINDOW β€” The window ID to use with --root.

πŸ’€ BUGS πŸ’€

  • It is poorly named; originally it worked only on grabbed video frames, before being expanded to work on any image. So the name is a whole lie, fr fr πŸ™ˆ
  • It requires the various PBM tools, e.g., ppmrelief(1). Though still available, the "pbmplus" suite has largely fallen out of favor these days, so it would be nice if someone were to port this script to make use of ImageMagick's convert(1) instead. That would also probably make it faster. Not me volunteering you… but also πŸ‘€

🌈 SEE ALSO 🌈

X(1), xscreensaver(1), xscreensaver-getimage(6x), xscreensaver-getimage-file(6x), xscreensaver-getimage-video(6x), ppmtogif(1), convert(1)


Copyright Β© 1998-2001 by Jamie Zawinski. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

Translating that from lawyer to group chat: use it, sell it, ship it, just keep the copyright notice and this permission notice in the docs, and understand there's no warranty β€” it is what it is, no take-backs 🫢


⭐ AUTHOR ⭐

Jamie Zawinski <jwz@jwz.org>, 18-Jan-98.


and that's the whole page, bestie πŸŽ€ β€” signed off with X Version 11, 6.09 (07-Jun-2024), from the XScreenSaver manual. go forth and distort some pixels πŸ’œβœ¨

πŸ“¦ where this page comes from