phosphor(6)
π phosphor(6) β the XScreenSaver manual, bestie edition β¨
okay so picture this: your screen turns into a big chunky old-school terminal, the pixels glow and sloooowly fade out like the phosphor is gonna outlive us all, and also β plot twist β it's a whole actual working vt100 terminal emulator. that's phosphor. she's iconic, she's retro, she's from the XScreenSaver manual, and she's about to be your new hyperfixation π
β¨ NAME β¨
phosphor β simulates an old terminal with long-sustain phosphor π
π¦ SYNOPSIS π¦
phosphor [--display host:display.screen] [--window] [--root]
[--window-id number][--install] [--visual visual] [--font font] [--scale
int] [--ticks int] [--delay usecs] [--no-cache] [--program command]
[--meta] [--esc] [--bs] [--del] [--fps]
πΈ DESCRIPTION πΈ
so the phosphor program draws text on your screen in a very large pixelated font β like genuinely giving old low-resolution dumb tty realness. the pixels flare and fade out, as if the phosphor had extremely long sustain (hence the name, iykyk). and bestie? it's also a fully functional vt100 terminal emulator. not me being a screensaver AND a terminal at the same time, main character energy fr fr π
π OPTIONS π
phosphor accepts the following options:
--windowβ draw on a newly-created window. this is the default, she lives here π«Ά--rootβ draw on the root window instead.--window-idnumber β draw on the window you specify. be specific, bestie.--installβ install a private colormap for the window.--visualvisual β pick which visual to use. legal values are the name of a visual class, or the id number (decimal or hex) of a specific visual.--fontfont-name β the X font to use. phosphor can take any font and scale it up to pixelate it. the default isfixed.--scaleint β how much to scale the font up; in other words, the size in real pixels of the simulated pixels. default6.--ticksint β the number of colors to use when fading to black. default20.--delayusecs β the speed of the terminal: how long to wait between drawing each character. default50000, which is about 1/20th second β±οΈ--cache|--no-cacheβ speed up rendering at the expense of memory and startup time. default is yes.--ptyβ launch the sub-program under a PTY, so that it can address the screen directly. this is the default.--pipeβ launch the sub-program at the end of a pipe: do not let it address the screen directly.--programsh-command β the command to run to generate the text to display. this option may be any string acceptable to/bin/sh. the program will be run at the end of a pty or pipe, and any characters that it prints to stdout will be printed on phosphor's window. the characters will be printed artificially slowly, as per the--delayoption above. if the program exits, it will be launched again after 5 seconds. π
for example:
phosphor --program 'ping 8.8.8.8'
phosphor --program 'ps -e'
phosphor --program 'od -txC -w6 /dev/random'
phosphor --program 'cat /dev/random'
phosphor --scale 2 --program 'top'
phosphor --scale 4 --program 'mtr www.kernel.org'
phosphor --scale 4 --program 'emacs -nw -q -f life'
phosphor --scale 4 --program 'emacs -nw -q --eval "(hanoi 5)"'
if you have the festival(1) text-to-speech system installed, you can have it read the screen as phosphor prints it:
phosphor --program \
'xscreensaver-text | tee /dev/stderr | festival --tts'
you can also use phosphor as a lo-fi replacement for the xterm(1) and gnome-terminal(1) terminal emulators:
phosphor -delay 0 -program $SHELL
--escβ when the user types a key with the Alt or Meta keys held down, send an ESC character first. this is the default.--metaβ when Meta or Alt are held down, set the high bit on the character instead.--delβ swap Backspace and Delete. this is the default.--bsβ do not swap Backspace and Delete.--fpsβ display the current frame rate and CPU load. numbers go brrr π
π§ TERMINAL EMULATION π§
by default, phosphor allocates a pseudo-tty for the sub-process to run under. this has the desirable side effect that the program will be able to use ioctl(2) to fetch information about terminal parameters and window size, which many programs (such as top(1)) need to run properly. phosphor will also set the environment variable TERM to vt100 in the child process. slay π
any characters typed on the phosphor window will be passed along to the sub-process.
okay important caveat bestie: this only works when running in "window" mode, not when running in --root mode under xscreensaver. no cap, that's just how it is π
π ENVIRONMENT π
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 theRESOURCE_MANAGERproperty.XSCREENSAVER_WINDOWβ the window ID to use with--root.TERMβ to inform the sub-process of the type of terminal emulation.
π SEE ALSO π
xscreensaver(1), xscreensaver-text(6), fortune(1), apple2(6), starwars(6), fontglide(6), ljlatest(6), dadadodo(1), webcollage(6), driftnet(1), EtherPEG, EtherPeek, console_codes(4).
like, the whole friend group showed up π
π COPYRIGHT π
Copyright Β© 1999 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: go off, use it, just keep the notice, and don't come for her if it breaks π)
β AUTHOR β
Jamie Zawinski <jwz@jwz.org>, 27-Apr-99. Pty and vt100 emulation by Fredrik Tolf <fredrik@dolda2000.com>. absolute legends, both of them π«Ά
π one last vibe check, bestie: everything above is exactly what the page says, so type responsibly.
X Version 11 Β· 6.15 (30-Mar-2026) β that's the version and date, mwah, signing off πβ¨π
π¦ where this page comes from
- alpine 3.24: xscreensaver-doc 6.15-r0 Β· GPL-2.0-or-later GPL-3.0-or-later 0BSD MIT
- arch rolling: xscreensaver 6.15-1 Β· LicenseRef-XScreenSaver
- nixpkgs unstable: xscreensaver 6.15
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms