phosphor - simulates an old terminal with long-sustain
phosphor
phosphor [--display host:display.screen] [--window]
[--root] [--window-id number][--install] [--visual visual]
[--font font] [--scale int] [--ticks int] [--delay
usecs] [--program command] [--meta] [--esc] [--bs] [--del]
[--fps]
The phosphor program draws text on the screen in a very
large pixelated font that looks like an old low resolution dumb tty. The
pixels flare and fade out as if the phosphor was very long-sustain. It is
also a fully functional vt100 terminal emulator.
phosphor accepts the following options:
- --window
- Draw on a newly-created window. This is the default.
- --root
- Draw on the root window.
- --window-id number
- Draw on the specified window.
- --install
- Install a private colormap for the window.
- --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.
- --font
font-name
- The X font to use. Phosphor can take any font and scale it up to pixelate
it. The default is fixed.
- --scale
int
- How much to scale the font up: in other words, the size in real pixels of
the simulated pixels. Default 6.
- --ticks
int
- The number of colors to use when fading to black. Default 20.
- --delay
usecs
- The speed of the terminal: how long to wait between drawing each
character. Default 50000, or about 1/20th second.
- --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.
- --program
sh-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 --delay option 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.
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.
Any characters typed on the phosphor window will be passed along
to the sub-process. (Note that this only works when running in
"window" mode, not when running in --root mode under
xscreensaver.)
- 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 the RESOURCE_MANAGER property.
- XSCREENSAVER_WINDOW
- The window ID to use with --root.
- TERM
- to inform the sub-process of the type of terminal emulation.
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).
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.
Jamie Zawinski <jwz@jwz.org>, 27-Apr-99. Pty and vt100
emulation by Fredrik Tolf <fredrik@dolda2000.com>.