jigsaw(6x)

✨ jigsaw β€” permute an image like a jigsaw puzzle ✨

okay bestie, pull up a chair because this is jigsaw, a little XScreenSaver hack from the 6x section of the manual, and it is lowkey one of the most chaotic-cute things in the whole screensaver family πŸ’–


🌸 SYNOPSIS 🌸

jigsaw [--display host:display.screen] [--delay usecs] [--speed ratio]
[--complexity ratio] [--resolution int] [--thickness float]
[--no-wobble] [--fps] [--visual visual] [--window] [--root] [--window-id
number]

🧩 DESCRIPTION 🧩

so here's the vibe: jigsaw loads up an image, carves it into a jigsaw puzzle, shuffles the whole thing around like it's got no manners, and then solves it. it's giving "I made the mess AND I cleaned it up, main character energy" πŸ’…

Where does the image come from, you ask? Great question, bestie. The image it manipulates gets grabbed from one of these three places, and it's decided by the grabDesktopImages, grabVideoFrames, and chooseRandomImages options in your ~/.xscreensaver file:

  • the portion of the screen sitting underneath the window
  • the system's video input
  • a random file chilling somewhere on disk

peep xscreensaver-settings(1) for the deets on all of that 🫢


πŸŽ€ OPTIONS πŸŽ€

jigsaw accepts the following options, and yes, we're going through every single one, no skipping, no cap:

  • --delay microseconds β€” how long to wait between animation frames; default 20000.
  • --speed ratio β€” less than 1 for slower, greater than 1 for faster. Default 1.
  • --complexity ratio β€” less than 1 for simpler puzzles (fewer pieces), greater than 1 for more complex puzzles (more pieces). Default 1.
  • --resolution ratio β€” smoothness of the edges of the pieces. Less than 1 gives you rougher pieces (fewer polygons), greater than 1 gives you smoother pieces (more polygons). Default 1.
  • --thickness float β€” thickness of the puzzle pieces (relative to their width). Default 0.06.
  • --no-wobble β€” keeps the display stationary instead of very slowly wobbling back and forth.
  • --fps β€” display the current frame rate, polygon count, and CPU load. the little stats girlies ate with this one πŸ“Š
  • --window β€” draw on a newly-created window. This is the default.
  • --root β€” draw on the root window.
  • --window-id number β€” draw on the specified window.
  • --install β€” 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.

🌈 ENVIRONMENT 🌈

the environment variables, bestie, they're literally setting the scene:

  • 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, they're iconic, iykyk:


Copyright Β© 1997 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.

(translation: it's free, take it, but keep the receipts 🧾 and don't come for them if it breaks, because there's no warranty, periodt.)


πŸ’œ AUTHOR πŸ’œ

Jamie Zawinski <jwz@jwz.org>, 25-Nov-97. king behaviour, honestly 🫢


and that's the whole page, bestie πŸ’– go forth, crank that --complexity, and watch the pieces solve themselves. self-care fr fr ✨

X Version 11 Β· 6.17-1.fc44 Β· 13-Oct-2026 β€” that's the version-and-date stamp from the bottom of the original page, mwah πŸ’‹

πŸ“¦ where this page comes from