xscreensaver-command accepts the following command-line options:
--help Prints a brief summary of command-line options.
--quiet Only print output if an error occurs.
--verbose
Opposite of --quiet. Default.
--activate
Tell xscreensaver to turn on immediately (that is, blank the screen, as if the user had been idle
for long enough.) The screensaver will deactivate as soon as there is any user activity, as
usual.
--deactivate
This tells xscreensaver to pretend that there has just been user activity. This means that if
the screensaver is active (the screen is blanked), then this command will cause the screen to un-
blank as if there had been keyboard or mouse activity. If the screen is locked, then the
password dialog will pop up first, as usual. If the screen is not blanked, then this simulated
user activity will re-start the countdown (so, issuing the --deactivate command periodically is
one way to prevent the screen from blanking.)
--cycle If the screensaver is active (the screen is blanked), then stop the current graphics demo and run
a new one (chosen randomly.)
--next This is like either --activate or --cycle, depending on which is more appropriate, except that
the graphics hack that will be run is the next one in the list, instead of a randomly-chosen one.
In other words, repeatedly executing --next will cause the xscreensaver process to invoke each
graphics demo sequentially. (Though using the --settings option is probably an easier way to
accomplish that.)
--prev This is like --next, but cycles in the other direction.
--selectnumber
Like --activate, but runs the Nth element in the list of hacks. By knowing what is in the
programs list, and in what order, you can use this to activate the screensaver with a particular
graphics demo. (The first element in the list is numbered 1, not 0.)
--lock Tells the running xscreensaver process to lock the screen immediately. This is like --activate,
but forces locking as well, even if locking is not the default (that is, even if xscreensaver's
lock resource is false, and even if the lockTimeout resource is non-zero.)
Note that locking doesn't work unless the xscreensaver process is running as you. See
xscreensaver(1) for details.
--suspend
Like --activate, but ignores lockTimeout and immediately powers off the screen without fading
out. This is intended to be run just after your laptop's lid is closed, and just before the CPU
halts, to lock things down quickly.
--exit Causes the xscreensaver process to exit gracefully. This does nothing if the display is
currently locked. Warning: never use kill-9 with xscreensaver. That can leave things in an
inconsistent state, and you may need to log out to repair the damage.
--restart
Causes the screensaver process to exit and then restart with the same command line arguments as
last time. You shouldn't really need to do this, since xscreensaver notices when the
.xscreensaver file has changed and re-reads it as needed.
--time Prints the time at which the screensaver last activated or deactivated (roughly, how long the
user has been idle or non-idle: but not quite, since it only tells you when the screen became
blanked or un-blanked.)
--watch Prints a line each time the screensaver changes state: when the screen blanks, locks, unblanks,
or when the running hack is changed. This option never returns; it is intended for use by shell
scripts that want to react to the screensaver in some way. An example of its output would be:
BLANK Fri Nov 5 01:57:22 1999
RUN 34
RUN 79
RUN 16
LOCK Fri Nov 5 01:57:22 1999
RUN 76
RUN 12
UNBLANK Fri Nov 5 02:05:59 1999
The above shows the screensaver activating, running three different hacks, then locking (perhaps
because the lock-timeout went off) then unblanking (because the user became active, and typed the
correct password.) The hack numbers are their index in the `programs' list (starting with 1, not
0, as for the --select command.)
For example, suppose you want to run a program that turns down the volume on your machine when
the screen blanks, and turns it back up when the screen un-blanks. You could do that by running
a Perl program like the following in the background. The following program tracks the output of
the --watch command and reacts accordingly:
#!/usr/bin/perl
my $blanked = 0;
open (my $in, "xscreensaver-command -watch |") || die;
while (<$in>) {
if (m/^(BLANK|LOCK)/) {
if (!$blanked) {
system ("sound-off");
$blanked = 1;
}
} elsif (m/^UNBLANK/) {
system ("sound-on");
$blanked = 0;
}
}
Note that LOCK might come either with or without a preceding BLANK (depending on whether the
lock-timeout is non-zero), so the above program keeps track of both of them.
--version
Prints the version of xscreensaver that is currently running on the display: that is, the actual
version number of the running xscreensaver background process, rather than the version number of
xscreensaver-command. (To see the version number of xscreensaver-command itself, use the --help
option.)