blitspin(6x)

🌸 blitspin 🌸 β€” XScreenSaver manual, bestie edition

ok so this is the manual page for blitspin(6x), aka the XScreenSaver hack that spins your bitmap around and around and honestly? it's giving hypnotic. πŸŒ€


✨ NAME ✨

blitspin β€” rotate a bitmap in an interesting way πŸ’«


πŸŽ€ SYNOPSIS πŸŽ€

blitspin [--display host:display.screen] [--foreground color]
[--background color] [--window] [--root] [--window-id number] [--mono]
[--install] [--visual visual] [--bitmap filename] [--delay usecs]
[--delay2 usecs] [--duration secs]

πŸ’– DESCRIPTION πŸ’–

okay so here's the vibe: blitspin takes a bitmap and repeatedly rotates it by 90 degrees, but it does it with logical operations, not like... image math. it's clever-clever. 🧠✨

The way it works: the bitmap gets divided into quadrants, and the quadrants get shifted clockwise. then the exact same thing happens again but with progressively smaller quadrants β€” except all the sub-quadrants of a given size rotate in parallel, all together, slay. πŸ‘‘

so the whole thing takes O(16*log2(N)) blits of size NxN, which is genuinely iconic efficiency. πŸ”₯ the catch tho (and there's always a catch, bestie):

the image must be square, and the size must be a power of 2. no cap, no exceptions. 😭

πŸ’… OPTIONS πŸ’…

blitspin accepts the following options:

  • --window β€” draw on a newly-created window. this is the default, so if you do nothing, congrats, you already did it 🫢
  • --root β€” draw on the root window instead. main character energy on your whole desktop.
  • --window-id number β€” draw on the specific window you point at. very "i know a guy" of you πŸ•΅οΈ
  • --mono β€” if you're on a color display, pretend we're on a monochrome display. delulu is the solulu. πŸ’€
  • --install β€” install a private colormap for the window. very exclusive, guest list only 🎟️
  • --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. pick your fighter ✨
  • --bitmap filename β€” the file name of a bitmap to rotate. it does not need to be square: it'll be padded with the background color. if you leave it unspecified, or pass the string (default), a builtin bitmap is used. πŸ–ΌοΈ
    • if support for the XPM library was enabled at compile-time, the specified file may be in XPM format as well as XBM, and thus may be a color image. fancy!! 🌈
    • the *bitmapFilePath resource will be searched if the bitmap name is not a fully-qualified pathname. it'll go looking for you, bestie. πŸ”Ž
  • --grab-screen β€” if you pass this, the image that gets spun will be grabbed from the portion of the screen underlying the blitspin window, or from the system's video input, or from a random file on disk β€” as indicated by the grabDesktopImages, grabVideoFrames, and chooseRandomImages options in the ~/.xscreensaver file. see xscreensaver-settings(1) for more details. surprise image!! πŸ™ˆ
  • --delay microseconds β€” how long to delay between steps of the rotation process, in microseconds. default is 500000, one-half second. patience is a virtue etc etc ⏳
  • --duration seconds β€” how long to run before loading a new image. default 120 seconds. two whole minutes of spin, periodt. ⏱️
  • --delay2 microseconds β€” how long to delay between each 90-degree rotation, in microseconds. default is 500000, one-half second. DISPLAY to get the default host and display number. 😭 (yes that last sentence is literally just sitting there in the middle of this option, leftover from somewhere β€” she's quirky, we love her, moving on)
  • --fps β€” display the current frame rate and CPU load. for the data girlies who need the numbers πŸ“Š

🌿 ENVIRONMENT 🌿

  • 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 πŸ¦‹

X(1), xscreensaver(1), xscreensaver-settings(1), xscreensaver-getimage(6x)


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

(it's free, just keep the notice, and no promises that it won't do something weird β€” that's the deal πŸ’–)


🧚 AUTHOR 🧚

Jamie Zawinski <jwz@jwz.org>, 17-aug-92.

Based on SmallTalk code which appeared in the August 1981 issue of Byte magazine. (yes, 1981. ancient. vintage. iconic. the elders were spinning bitmaps before it was cool. 🌸)


ok that's the whole page, no notes. this one's from X Version 11, release 6.09 (07-Jun-2024) β€” go forth and rotate, bestie, and remember: square only, power of 2 only, iykyk. πŸŽ€πŸ’…βœ¨

πŸ“¦ where this page comes from