distort(6)

πŸ“¦
version 6.15 Β· 2 versions
, in alpine 3.24, arch rolling, nixpkgs unstable

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

okay so real talk: this is distort, from the XScreenSaver manual, and it's lowkey one of the most iconic little screen-hijackers out there. buckle up bestie, we're going pixel-warping πŸŒ€βœ¨


✨ NAME ✨

distort β€” it distorts the content of the screen in interesting ways. that's it. that's the whole vibe. 🫢


πŸŽ€ SYNOPSIS πŸŽ€

distort [--root] [--window-id number][--window] [--mono] [--install]
[--noinstall] [--visual visual] [--window-id window-id] [--delay usecs]
[--duration secs] [--radius pixels] [--speed int] [--number int]
[--swamp] [--bounce] [--reflect] [--vortex] [--magnify] [--blackhole]
[--slow] [--shm] [--no-shm] [--fps]

πŸ¦‹ DESCRIPTION πŸ¦‹

so distort grabs an image and then lets circular zones of distortion just… wander randomly around it, warping whatever's underneath them. it's giving "melting mirror" energy and honestly? obsessed. πŸ’–

and you get to control it! the mode of distortion and the overall behaviour of the zones can be influenced in various ways β€” we'll get to all of that, don't worry.

now, the image it manipulates gets grabbed from one of three places, as indicated by the grabDesktopImages, grabVideoFrames, and chooseRandomImages options in your ~/.xscreensaver file:

  • the portion of the screen underlying the window 🌸
  • the system's video input πŸ“Ή
  • a random file on disk πŸ’Ύ

see xscreensaver-settings(1) for more details, bestie, it's all in there.


🌈 OPTIONS 🌈

okay distort accepts the following options, and yes i'm listing every single one, no cap:

  • --root β€” draw on the root window. main character energy, whole screen is the canvas. πŸ‘‘
  • --window-id number β€” draw on the specified window.
  • --window β€” draw on a newly-created window. this is the default, so if you don't pick anything, this is what you get. πŸŽ€
  • --mono β€” if you're on a color display, just pretend we're on a monochrome display. delusion, but make it aesthetic. πŸ’€
  • --install β€” install a private colormap for the window.
  • --noinstall β€” don't install a private colormap for the window.
  • --visual visual β€” specify which visual to use. legal values are the name of a visual class, or the id number (decimal or hex) of a specific visual.
  • --window-id window-id β€” specify which window id to use. (yes, it's in here twice β€” the original lists it twice, and i refuse to erase history. iykyk 😌)
  • --delay usecs β€” the delay between subsequent animation frames, in microseconds. tiny numbers, big drama.
  • --duration seconds β€” how long to run before loading a new image. default 120 seconds.
  • --radius pixels β€” the radius of the distortion zone, in pixels.
  • --speed int β€” the speed at which the distortion zone moves. 0 is slow, higher numbers are faster, and 10 is pretty fast. fr fr.
  • --number int β€” the number of distortion zones. more zones = more chaos = slay.
  • --swamp β€” instead of letting zones wander around, let small zones pop up like bubbles in a swamp and leave permanent distortion. 🫧
⚠️ WARNING, bestie, read this twice: --swamp uses a colossal amount of memory. keep the --radius small when you're using --swamp. like, genuinely. your RAM is not okay with this. 😭
  • --bounce β€” let zones wander around and bounce off the window border. this is the default.
  • --reflect β€” a mode of distortion that resembles reflection by a cylindrical mirror. πŸͺž
  • --vortex β€” whirlpool-shaped distortion. way cool. (the manpage said it, not me, but also, correct.)
  • --magnify β€” this mode of distortion looks like a magnifying glass. πŸ”
  • --blackhole β€” suck your pixels beyond the event horizon. favourite mode of Dr Stephen Hawking. genuinely iconic behavior. πŸ•³οΈβ­
  • --slow β€” make the zone wander slower. cozy mode.
  • --shm β€” use the shared memory extension.
  • --no-shm β€” don't use the shared memory extension.
  • --fps β€” display the current frame rate and CPU load. numbers on screen, we love to see it. πŸ“Š

🧚 ENVIRONMENT 🧚

the environment variables it cares about, and yes they're all doing something:

  • 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.

🌸 SEE ALSO 🌸

go read these too, they're the friend group:


Copyright Β© 1998 by Jonas Munsin and Jamie Zawinski.

okay the legal bit is legal bit, so i'm giving it to you straight, no edits, because that's how licenses work bestie:

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.

tl;dr β€” it's free to use, just keep the notice, and there's no warranty. periodt. πŸ’…


⭐ AUTHORS ⭐

  • Jonas Munsin <jmunsin@iki.fi>
  • Jamie Zawinski <jwz@jwz.org>

and this manual page is by Matthias Warkus <mawa@iname.com>, dated 17-Oct-1999. πŸŽ€


and that's the whole page, babes πŸ¦‹ β€” brought to you by X Version 11, version 6.15, dated 30-Mar-2026. go forth and distort responsibly, and pls keep that --radius small in swamp mode, i'm begging πŸ™ˆπŸ’–

πŸ“¦ where this page comes from