The attached patches implement an extension to syscons called
"propellers", along with a status line. The following is an
excerpt from the (patched) syscons(4) manual page, which describes
the extension in more detail:
------ [BEGIN EXCERPT] ------
Propellers are a useful feature to watch for activity on all existing
When using the SC_PROPELLERS option, support for a status line and so-
called ``propellers'' is compiled in. The other SC_PROP_* options can be
used to set the default look and behaviour of this feature, but you can
also change all of this at run-time using the vidcontrol(1) tool.
A propeller is a character sequence, usually consisting of the characters
/ - \ |. Propellers are commonly used to indicate activity (the boot-
loader uses them, too) by cycling through these characters. The idea to
implement them in syscons was inspired by the old DOS CU/TCP telnet pro-
gram, which used propellers to watch for activity in multiple telnet ses-
When propellers are enabled, a status line is displayed at the bottom of
the screen. This means that the usable area of the screen is reduced by
one line (e.g. in the standard 80x25 mode, only 24 lines are available
for the actual terminal). Propellers can be enabled per terminal, so you
can have a status line on some terminals, but not on others, if desired.
The status line is divided into a number of fields, each of which belongs
to one virtual terminal. The number of the terminal is printed at the
left of each field, starting at 1 (just like the function keys used to
switch terminals). The actual propeller is displayed to the right of the
If output occurs on a virtual terminal, the propeller of the correspond-
ing field in the status line cycles through the character sequence, as
explained above. Additionally, if a beep occurs, the propeller is dis-
played with a different video attribute (the default is light white).
When you switch to another virtual terminal, its propeller is cleared.
At the right of the status line, a certain number of character columns
can be reserved. This reserved area is not used by propellers, and it
can be written to by userland applications, e.g. vidcontrol(1), or
------ [END EXCERPT] ------
The patch set consists of three parts:
1. kernel patches
2. vidcontrol patches
3. new program "propclockd"
I have tried to keep the new kernel code as much separated from the
rest as possible. The new code is in src/sys/dev/syscons/scprops.c,
the modifications to the existing files are appropriately #ifdef'ed.
The new kernel code is _only_ compiled in if the SC_PROPELLERS option
The new code for vidcontrol has been handled in a similar way. The
new code is in src/usr.sbin/vidcontrol/propeller.c, and there have
been only minimal changes to the existing code. Instead of burdening
vidcontrol with a dozen new options, I decided to add only one option
(-p) which is able to handle all the new features on its own, and I
think this is pretty clean. (Of course I'm open to suggestions to
make this better.)
"propclockd" is a very small and simple program which can be used to
exploit one of the new kernel features. Actually it's intended to be
just an example of what can be done (and how), but it's useful on its
own, so I think it should be included.
Everything is properly documented. The patches include additions to
the syscons(4) and vidcontrol(1) manual pages, as well as a new manual
page for the propclockd(1) utility. The new kernel options have been
added to LINT with some comments, too. Note, however, that I'm not
a native English speaker, so someone should probably proofread the
textual additions of mine.
I have started programming these extensions back in the old days of
FreeBSD 2.1, and me and my friends have been using them on a lot of
machines for years, literally, so I would regard them as pretty stable.
I'm submitting them now because I'm tired of updating and merging them
every time a new FreeBSD release comes out. :-)
Mark as 'suspended' since this does not seem as though it is being
actively worked on.
Anyone cares to comment if this is still useful/relevant?
For bugs matching the following conditions:
- Status == In Progress
- Assignee == "bugs@FreeBSD.org"
- Last Modified Year <= 2017
- Set Status to "Open"
This is OBE. syscons is on the way out, and we have other ways of doing the propeller. Closing.