glitchpeg [--display host:display.screen] [--visual visual] [--window] [--root] [--window-id number] [--delay number] [--duration number] [--count number]
Loads an image, corrupts it, and then displays the corrupted version, several times a second. After a while, finds a new image to corrupt.
It glitches the image by altering random bytes in the compressed image file before de-compressing it. This creates interesting visual effects on JPEG files, but doesn't work well on PNG files, since PNG contains checksums that detect simple corruption.
- --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.
Draw on a newly-created window. This is the default.
Draw on the root window.
- --window-id number
Draw on the specified window.
- --delay number
Per-frame delay, in microseconds. Default: 30000 (0.03 seconds).
- --duration number
How many seconds before loading a new image. Default: 120.
- --count number
Number of glitches to introduce per iteration. Default: 400.
to get the default host and display number.
to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property.
The window ID to use with --root.
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.
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.
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.
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.