XScreenSaver

XScreenSaver is a free and open-source collection of 232[2] screensavers for Unix-like, macOS, iOS and Android operating systems. It was created by Jamie Zawinski in 1992 and is still maintained by him.[3]

XScreenSaver
XScreenSaver-demo and the XMatrix hack
Original author(s)Jamie Zawinski
Developer(s)Jamie Zawinski
Stable release
5.44 / March 20, 2020 (2020-03-20)[1]
Repository
Operating systemUnix-like
TypeScreensaver
LicenseX11 License
Websitejwz.org/xscreensaver

The free software and open-source Unix-like operating systems running the X Window System (such as Linux and FreeBSD) use XScreenSaver almost exclusively. On those systems, there are two packages for XScreenSaver: the collection of screen savers (or "hacks"), and the framework for blanking and locking the screen.

In recent years, some Linux distributions have been using the gnome-screensaver or kscreensaver screen-blanking frameworks by default instead of the framework included with XScreenSaver.[4] They still depend on the XScreenSaver collection of screen savers, which is over 90% of the package,[5] with the exception of gnome-screensaver version 3 and onward, which has dropped support for screensavers completely, supporting only simple screen blanking.[6] In December of 2018, Linux Mint released the 19.1 version of its Operating System, with Cinnamon 4.0.8, which no longer supports the XScreensaver hacks.[7]

On Macintosh systems, XScreenSaver works with the usual Apple screen saver framework, and X Window System (X11) is unneeded. A version for Android works by running the "hacks" as screensavers or live wallpapers.

There is no official version for Microsoft Windows, and the developer discourages anyone from porting it; he holds a "personal grudge" against Microsoft because of the First Browser War.[8]

In version 5.21 a time bomb has been introduced that displays large popups chastising the user for having an "outdated" version on login or interacting with XScreenSaver. The lock screen has similar wording.[9]

XScreenSaver is released under the terms of the X11 License.

Software architecture

One reason for XScreenSaver's popularity is the modularity of its design, which makes it easy to add new display modes. The display modes (termed "hacks" from the historical usage "display hack") are each stand-alone programs invoked by the xscreensaver daemon. In this way, a third-party screen saver can be written in any language or with any graphics library, so long as it is capable of rendering onto an externally provided window.

For portability, the included hacks are all written in C, using libX11 and/or OpenGL 1.3.

An important feature of the xscreensaver daemon's design is that the display modes are sandboxed into a separate process from the screen locking framework. This means that a programming error in one of the graphical display modes cannot compromise the screen locker itself (e.g., a crash in a display mode will not unlock the screen).

On Unix systems, running the hacks from the command line will cause them to open their own non-full-screen window.

For testing purposes GLMatrix was ported to Wayland.[10][11] The author choose GLMatrix because it renders with OpenGL and the ones that do not, render with Xlib, and the author did not want to port such to Cairo.

Hacks

The included hacks are highly varied, ranging from simple 2D psychedelia, to 3D demonstrations of complex mathematical principles, to simulations of other computer systems, to re-creations of artifacts and effects from movies.

Though many of the newer hacks take full advantage of the power of modern computers, the age of the project means that some of the older hacks may look dated to modern eyes, as they were originally written for much less powerful computers.

Popular hacks include:[2]

  • Atlantis an OpenGL animation showing whales and dolphins.
  • BSOD shows fake fatal screen of death variants from many computer systems, including Microsoft Windows Blue Screen of Death, a Linux kernel panic, a Darwin crash, an Amiga "Guru Meditation" error, a sad Mac, and more.
  • Apple2 simulates an Apple II computer, showing a user entering a simple BASIC program and running it. When run from the command-line, it is a fully functional terminal emulator (as is Phosphor.)
  • Barcode a number of coloured barcodes scroll across the screen.
  • Flow a 3D display of strange attractors.
  • Flying toasters 3D toasters fly around, inspired by the classic After Dark screensaver.
  • Gears an OpenGL animation of inter-meshing gears and planetary gears.
  • GLMatrix an OpenGL animation similar to the "digital rain" title sequence seen in the Matrix trilogy.
  • Molecule an OpenGL animation showing space-filling or ball-and-stick models of a series of common drugs and other molecules, of which thirty-eight (38) are built in. It can also read PDB (Protein Data Bank) from a file, or files placed in a directory, as input.
  • Penrose tiles the screen aperiodically with coloured Penrose tiles.
  • Spotlight puts a moving spotlight across the desktop in the style of the James Bond film opening sequences.
  • Sproingies an animation in the style of the video game Q*bert.
  • Webcollage creates collages out of random images found on the Web.
  • XAnalogTV simulates an analog cathode ray tube television set, including visual artifacts and reception issues.
  • XPlanet draws planets and other celestial bodies that update in real time.
  • XMatrix animations similar to the "digital rain" sequence seen in the Matrix trilogy.

Some of the included hacks are very similar to demo effects created by the demoscene:

  • Boing based on the 1984 program regarded as the first Amiga demo ever, showing the bouncing red and white ball.
  • Bumps an implementation of full-screen 2D bump mapping.
  • MetaBalls another common demo effect.
  • Moire2 moving interference circles similar to those common in older Amiga demos.
  • ShadeBobs another effect common in older Amiga demos.
  • XFlame the filter-based fire effect, also known as flame effect.
gollark: Doesn't make PHP non-evil.
gollark: PHP? ***EVIL***
gollark: http://time.lemmmy.pw/?format=DD/MM/YYYY-> "WedWed/AugAug/20182018"
gollark: There's an unofficial one. CC can only serialize JSON for some stupid dan200y reason.
gollark: `os.epoch "utc"`, right?

See also

Media related to XScreenSaver at Wikimedia Commons

References

  1. "Changelog". Retrieved April 1, 2020.
  2. "List of screen savers included in the XScreenSaver collection". April 1, 2020. Retrieved April 1, 2020.
  3. "XScreenSaver release history". December 27, 2008. Retrieved April 17, 2009.
  4. "XScreenSaver FAQ regarding KDE/Gnome". Retrieved September 11, 2009.
  5. "XScreenSaver source code distribution". December 27, 2008. Retrieved February 28, 2009.
  6. Campagna, Giovanni (March 21, 2011). "Re: What is the status of the screensaver in GNOME3?". gnome-shell (Mailing list).
  7. https://blog.linuxmint.com/?p=3715
  8. "XScreenSaver: Windows Version". www.jwz.org. Retrieved November 18, 2019.
  9. "Debian bug report #819703". April 1, 2016.
  10. "a Wayland screensaver". November 23, 2011.
  11. "Integrate wscreensaver into Weston". freedesktop.org. December 8, 2011.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.