Subject: Re: control of wscons screens
To: None <brook@biology.nmsu.edu>
From: Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de>
List: current-users
Date: 05/14/2002 17:57:54
On Tue, May 14, 2002 at 04:49:16PM +0100, brook@biology.nmsu.edu wrote:
> The following is an initial proposal for an extension to wsconsctl to
> enable controling the current screen.  I would greatly appreciate
> answers to the following questions:
> 
> - is this capability available elsewhere?
> - is this capability valuable as an addition to NetBSD?
> - is wsconsctl the appropriate place to add it?
> - if not, where?
> 
> Problem to solve: It seems that in order to suspend/resume a laptop
> running an X server, wscons must first be switched into text mode
> prior to suspending then switched back to graphics mode after
> resuming.  For ease of use in the apm scripts (e.g., suspend and
> resume) there should be a command that enables screen switching.
> Switching screens can be done using the VT_ACTIVATE ioctl on the
> wscons configuration file, so providing a command line interface to
> that capability would be valuable.
> 
> Existing capability: As far as I can tell there are no existing
> VT_ACTIVATE ioctls outside of the kernel in the 1.5 release branch.  I
> don't have a -current source tree handy, so I can't say if it differs
> in this regard.  This suggests, however, that there are no command
> line interfaces that enable switching the wscons screen.
> 
> Proposed solution: The purpose of wsconsctl is to control aspects of
> the wscons system.  Consequently, it seems appropriate to embed the
> screen switching functionality within wsconsctl.  It seems that this
> can be accomplished in the following way:
> 
> - Add a new "configuration" section to the code to extend the current
>   keyboard, mouse, and display sections.  This section would be
>   activated by the currently unused -c flag.  A new section is needed
>   (rather than overloading the display section) because the file to
>   manipulate is different (i.e., /dev/ttyEcfg rather than /dev/ttyE0).
> 
> - The new file config.c would implement the getting and setting of the
>   current screen using the VT_GETACTIVE and VT_ACTIVATE ioctls.
> 
> - It may or may not be appropriate to include an option for waiting a
>   certain amount of time and subsequently querying the current screen
>   after setting it to account for the delay imposed by actual devices
>   when they make the switch.  I am unsure if this is a problem in
>   practice.  Suggestions welcome here.
> 
> Presumably code for this new section would exactly mimic the parallel
> sections that already exist.
> 
> Please let me know if this is a reasonable proposal.  Additionally,
> please offer any suggestions for implementation and/or naming of the
> externally visible elements.
> 
> Thanks for your attention to this.
> 
> Cheers,
> Brook

Looks good, but:

VT_GETACTIVE and VT_ACTIVATE are only valid if WSDISPLAY_COMPAT_USL is defined.

First step should be new generic ioctl's to manage screens.

-- 
Juergen Hannken-Illjes - hannken@eis.cs.tu-bs.de - TU Braunschweig (Germany)