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 virtual terminals. 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- sions. 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 number. 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 propclockd(1). ------ [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 is defined. 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. :-) How-To-Repeat: n/a
State Changed From-To: open->suspended 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 Do - Set Status to "Open"
This is OBE. syscons is on the way out, and we have other ways of doing the propeller. Closing.