glitchpeg(6)

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

πŸŽ€ glitchpeg β€” the XScreenSaver manual, bestie edition πŸŽ€

okay so you're reading the glitchpeg(6) page and honestly? iconic of you. this is the one that lives in the XScreenSaver manual and it's about to ruin some JPEGs for art. let's go πŸ’…


✨ NAME ✨

glitchpeg β€” a glitched image screen saver. that's it. that's the whole vibe. πŸ¦‹


🌸 SYNOPSIS 🌸

glitchpeg [--display host:display.screen] [--visual visual] [--window]
          [--root] [--window-id number] [--delay number] [--duration number]
          [--count number]

πŸ’– DESCRIPTION πŸ’–

so what it does is: it loads an image, corrupts it, and then displays the corrupted version, several times a second. yeah. that's the whole bit. after a while, it finds a new image to corrupt. main character energy, honestly. πŸ”₯

the way it glitches the image? it alters random bytes in the compressed image file before de-compressing it. this creates interesting visual effects on JPEG files πŸ“ β€” but ngl, it doesn't work well on PNG files, since PNG contains checksums that detect simple corruption. so like… JPEG slays here, PNG is just sitting there doing its little checksum thing. 😭


πŸ’œ OPTIONS πŸ’œ

  • --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 ✨
  • --window β€” draw on a newly-created window. this is the default, so like, no pressure 🫢
  • --root β€” draw on the root window. go big, go desktop-wide πŸ‘‘
  • --window-id number β€” draw on the specified window. very specific. very demure.
  • --delay number β€” per-frame delay, in microseconds. default: 30000 (0.03 seconds). yes, microseconds. yes, that's fast. πŸ”₯
  • --duration number β€” how many seconds before loading a new image. default: 120. two whole minutes of glitch before we move on πŸ¦‹
  • --count number β€” number of glitches to introduce per iteration. default: 400. four hundred little oopses per round, no cap πŸ’€

🌈 ENVIRONMENT 🌈

  • DISPLAY β€” to get the default host and display number. the classic.
  • 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.

🚨 SECURITY 🚨

okay bestie, listen, this part is serious, so put the emoji down for a sec πŸ™ˆ

because this program is feeding intentionally-invalid data into your operating system's image-decoding libraries, it is possible that it may crash as a result of that corrupted data. 😭

that should not be possible β€” but it might be. fr fr.

please note that if this happens, that indicates a serious security bug in your system's image libraries! it likely means that your libraries are susceptible to buffer overflow attacks or similar, which can lead to remote code execution. you should report that bug to the maintainers of those image libraries. yes, actually report it. this is not a drill. πŸ’€

in the context of xscreensaver, when configured to load only local image files, this should not be a direct security concern: this screen saver crashing will not affect the xscreensaver daemon and will not unlock your screen. so like, your screen stays locked. phew. 🫢


πŸ¦‹ SEE ALSO πŸ¦‹

X(1), xscreensaver(1)


copyright Β© 2018 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, just keep the notice, and no promises that it won't do something weird. which, given this program, is very on brand. πŸ’…)


⭐ AUTHOR ⭐

Jamie Zawinski. legend behaviour, honestly. πŸŽ€


and that's the page, bestie!! πŸ’– this manual came to you from X Version 11, version 6.15 dated 30-Mar-2026 β€” write it down, cite it in your essay, whatever, go forth and glitch some JPEGs πŸ§šβ€β™€οΈβœ¨πŸŒΈ

πŸ“¦ where this page comes from