Introduction
============

Shared memory is another method for BRLTTY to get the content of the screen.
For this method you need two components:

*  Some other application needs to maintain the shared screen image. This can 
   be done via the screen program when augmented by a BRLTTY-supplied patch.
*  BRLTTY needs to be able to view the shared screen image. This is done via
   its Screen screen driver.

The original purpose of screen was to run different "screens" on a single
terminal. It also supports features like copy-and-paste, a scrollback buffer,
etc. Screen supports lots of terminal types, especially XTERM. This is
important because it runs under X-Windows which is part of most unixes.


Instructions
============

1) Build and install BRLTTY:

      ./configure
      make
      make install
   
   BRLTTY's Screen screen driver will be built by default. Be sure not to 
   explicitly exclude it via, for example, a configure option like:

      --with-screen-driver=-sc

2) Get the source for screen from: 

      ftp://ftp.uni-erlangen.de/pub/utilities/screen/screen-4.0.1.tar.gz

3) Unpack the source:

      tar xzf /path/to/screen-4.0.1.tar.gz

4) Change to the source tree:

      cd screen-4.0.1

5) Apply the patch: 

      patch -p0 </path/to/brltty/Patches/screen-4.0.1.patch

6) Build screen:

      ./configure
      make
      make install

7) Run screen, and then brltty (specifying its Screen screen driver): 

      screen
      brltty -x sc

   The only order dependency is that screen must be run first the first time in
   order to get the shared memory segment created. Although brltty can be run
   first from then on, the shared memory image will, of course, be stale until
   screen is started.


BRLTTY's screen patch was originally developed by Rudolf Weeber
<rudolf.weeber@gmx.de>.
