starwars man page

starwars — draws a perspective text crawl, like at the beginning of the movie


starwars [-display host:display.screen] [-window] [-root] [-visual visual] [-delay microseconds] [-program command] [-size integer ] [-columns integer] [-wrap | -no-wrap] [-left | -center | -right] [-lines integer] [-spin float] [-steps integer] [-delay usecs] [-font xlfd] [-no-textures] [-no-smooth] [-no-thick] [-fps]


The starwars program runs another program to generate a stream of text, then animates that text receeding into the background at an angle, in front of a star field.


starwars accepts the following options:


Draw on a newly-created window.  This is the default.


Draw on the root window.


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.

-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 pipe, and any characters that it prints to stdout will be printed on the starwars window.  If the program exits, it will be launched again after we have processed all the text it produced.

Note that starwars is not a terminal emulator: programs that try to directly address the screen will not do what you might expect.  This program merely draws the characters on the screen left to right, top  to bottom, in perspective.  Lines (may) wrap when they reach the right  edge.

In other words, programs like fortune(1) will work, but programs like top(1) won't.

Some examples:

starwars -program 'cat /usr/src/linux*/README'
starwars -columns 30 -program 'ping'
starwars -left -no-wrap -program 'ps -auxwwf'
starwars -left -no-wrap -columns 45 -program 'top -bn1'
starwars -left -columns 40 -program 'od -txC /dev/urandom'
starwars -font fixed -program 'od -txC /dev/urandom'
-size integer

How large a font to use, in points.  (Well, in some arbitrary unit  we're calling "points" for the sake of argument.)  Default: 24.

-columns integer

How many columns of text should be visible on the bottom line of the screen.  Default: 60.

Only one of -columns and -size may be specified; if both are specified, -columns takes priority.


Word-wrap lines when they reach the rightmost column.  This is the default.


Do not word-wrap: just let the lines go off the right side of the screen.

-left | -center | -right

Whether to align the text flush left, centered, or flush right. The default is centered.

-lines integer

How many lines should be allowed to be on the screen before they fall off the end.  The default is 125.

-spin float

The star field on the background slowly rotates.  This is how fast. The default is 0.03.

-steps integer

How many steps should be used to scroll a single line.  The default is 35. If the animation looks jerky to you, increase this number.

-delay usecs

The delay between steps of the animation; default is 40000 (1/25th second.)

-font font-name

The name of the font to use.  For best effect, this should be a large font (at least 36 points.)  The bigger the font, the better looking the characters will be.  Note that the size of this font affects only the clarity of the characters, not their size on the screen: for that, use the -size or -columns options.

Default: -*-utopia-bold-r-normal-*-*-720-*-*-*-*-iso8859-1


Instead of texture-mapping a real font to render the text, use a built-in font composed of line segments.  On graphics cards without texture support, the line-segment font will have much better performance.


When using the line-segment font, turn off anti-aliasing of the lines used to draw the font.  This will make the text blockier, but may improve performance.


When using the line-segment font, turn off use of thick lines for the characters that are close to the foreground.  This will make the text appear unnaturally skinny, but may improve performance.


Display the current frame rate, CPU load, and polygon count.



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.

See Also

xscreensaver(1), xscreensaver-text(1), fortune(1), phosphor(6x), apple2(6x), fontglide(6x), ljlatest(6x), dadadodo(1), webcollage(6x), driftnet(1) EtherPEG, EtherPeek


Jamie Zawinski <> and Claudio Matauoka <>


5.36-4.fc26 (10-Feb-2017) X Version 11 XScreenSaver manual