vidwhacker(6)
π vidwhacker β like, the whole vibe
okay so bestie, welcome to vidwhacker, part of the XScreenSaver manual, and it is literally the most chaotic little image gremlin you will ever meet. Let's get into it π
β¨ NAME β¨
vidwhacker β grab images and apply random filters to them π (yes that's the whole job and she ate)
πΈ SYNOPSIS πΈ
vidwhacker [--display host:display.screen] [--root] [--window-id
number][--verbose] [--stdin] [--stdout] [--delay seconds] [-directory
directory] [--fps]
(no cap, that -directory really only has one dash in the synopsis, iykyk, don't come for me, copy it exactly π)
π¦ DESCRIPTION π¦
So what she does is: she distorts an image using a random series of filters. We're talking edge detection, subtracting the image from a rotated version of itself, etc. etc. β it's giving β¨abstract art eraβ¨ and honestly it's iconic.
Random image file selection? That's not her job, she outsources it β she runs the xscreensaver-getimage-file(6) program to pick files. And if you asked for video frames, the capture is done by running xscreensaver-getimage-video(6). Teamwork, bestie π«Ά
π₯ 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 if you do nothing at all, that's where she's living. main character energy on your desktop π--window-idnumber β Draw on the specified window instead. Like, pick your fave window and she'll go there.--verboseβ Print diagnostics. She'll tell you what she's doing, out loud, unprompted π¬--stdinβ Instead of grabbing an image from disk or video, read an image to manipulate from stdin. That image must be inppm(5)format (non-negotiable bestie). The program will still perform repeated random image transformations, but it will always use this one image as its starting point. Same image, endless remixes π§--delayseconds β How long to sleep between images. Default is5seconds β but heads up, the actual elapsed time is significantly longer, due to processing time. So don't come at her with a stopwatch π--stdoutβ Instead of displaying the image on a window or on the root, write the new image on stdout, and exit. Grab the output and dip πββοΈ--directorydirectory β Use this directory instead of theimageDirectoryspecified in the~/.xscreensaverfile. Custom sourcing, we love to see it π--fpsβ Display the current frame rate and CPU load. Numbers!! On screen!! Slay π
π 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 theRESOURCE_MANAGERproperty.XSCREENSAVER_WINDOWβ The window ID to use with--root.
π BUGS π
ngl, some of these are real and I need you to actually read them.
- 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 lie, but like, a charming historical lie π
- 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'sconvert(1)instead. That would also probably make it faster. (volunteering? anyone? π)
π SEE ALSO π
X(1), xscreensaver(1), xscreensaver-getimage(6), xscreensaver-getimage-file(6), xscreensaver-getimage-video(6), ppmtogif(1), convert(1)
π COPYRIGHT π
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.
(that's the legal bit, bestie β keep it intact, it's the whole permission slip π«Ά)
β AUTHOR β
Jamie Zawinski <jwz@jwz.org>, 18-Jan-98.
and that's the page!! π this is X Version 11, 6.15 (30-Mar-2026) β from the XScreenSaver manual, mwah, go whack some vids π¦β¨
π¦ where this page comes from
- alpine 3.24: xscreensaver-doc 6.15-r0 Β· GPL-2.0-or-later GPL-3.0-or-later 0BSD MIT
- arch rolling: xscreensaver 6.15-1 Β· LicenseRef-XScreenSaver
- nixpkgs unstable: xscreensaver 6.15
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms