brlapi_tty(3)                       BrlAPI                       brlapi_tty(3)



NAME
       brlapi_tty - How to take control of ttys for direct braille display /
       read.


SYNOPSIS
   Macros
       #define BRLAPI_TTY_DEFAULT   -1

   Functions
       int BRLAPI_STDCALL brlapi_enterTtyMode (int tty, const char *driver)
       int BRLAPI_STDCALL brlapi__enterTtyMode (brlapi_handle_t *handle, int
           tty, const char *driver)
       int BRLAPI_STDCALL brlapi_enterTtyModeWithPath (const int *ttys, int
           count, const char *driver)
       int BRLAPI_STDCALL brlapi__enterTtyModeWithPath (brlapi_handle_t
           *handle, const int *ttys, int count, const char *driver)
       int BRLAPI_STDCALL brlapi_leaveTtyMode (void)
       int BRLAPI_STDCALL brlapi__leaveTtyMode (brlapi_handle_t *handle)
       int BRLAPI_STDCALL brlapi_setFocus (int tty)
       int BRLAPI_STDCALL brlapi__setFocus (brlapi_handle_t *handle, int tty)

Detailed Description
       Before being able to write on the braille display, the application must
       tell the server which tty it will handle.

       The application must also specify how braille keys will be delivered to
       it. Two ways are possible:

       +o driver-specific keycodes: applications will get values specific to
         each braille driver, since the keycode, as defined in the driver will
         be given for each key event (press or release). Using them leads to
         building highly driver-dependent applications, which can yet
         sometimes be useful to mimic existing proprietary applications for
         instance.

       +o commands: applications will get exactly the same values as brltty.
         This allows driver-independent clients, which will hopefully be nice
         to use with a lot of different terminals.

       See also
           brlapi_readKey()

Macro Definition Documentation
   #define BRLAPI_TTY_DEFAULT   -1
       Select the default tty.

       The library takes the following steps:

       1.  Try to get the tty number from the WINDOWID environment variable
           (for the xterm case).

       2.  Try to get the tty number from the CONTROLVT environment variable.

       3.  Read /proc/self/stat (on Linux).

       See also
           brlapi_enterTtyMode()

Function Documentation
   int BRLAPI_STDCALL brlapi__enterTtyMode (brlapi_handle_t * handle, int tty,
       const char * driver)
   int BRLAPI_STDCALL brlapi__enterTtyModeWithPath (brlapi_handle_t * handle,
       const int * ttys, int count, const char * driver)
   int BRLAPI_STDCALL brlapi__leaveTtyMode (brlapi_handle_t * handle)
   int BRLAPI_STDCALL brlapi__setFocus (brlapi_handle_t * handle, int tty)
   int BRLAPI_STDCALL brlapi_enterTtyMode (int tty, const char * driver)
       Ask for some tty, with some key mechanism

       Parameters
           tty

           +o If tty>=0 then take control of the specified tty.

           +o If tty==BRLAPI_TTY_DEFAULT then take control of the default tty.

           driver tells how the application wants brlapi_readKey() to return
           key presses. NULL or '' means BRLTTY commands are required, whereas
           a driver name means that driver-specific keycodes are expected.

       Returns
           the used tty number on success, -1 on error

       WINDOWPATH and WINDOWID should be propagated when running remote
       applications via ssh, for instance, along with BRLAPI_HOST and the
       authorization key (see SendEnv in ssh_config(5) and AcceptEnv in
       sshd_config(5))

       Once brlapi_enterTtyMode() is called, brlapi_leaveTtyMode() has to be
       called before calling brlapi_enterTtyMode() again.

       If the application does not want to take control of a particular tty,
       but keep control on all ttys, brlapi_enterTtyModeWithPath should be
       called instead with nttys equal to 0. This is usually what a screen
       reader wants to use.

       TODO: document which functions work in TTY mode only.

       See also
           brlapi_leaveTtyMode() brlapi_readKey()

   int BRLAPI_STDCALL brlapi_enterTtyModeWithPath (const int * ttys, int
       count, const char * driver)
       Ask for some tty specified by its path in the tty tree, with some key
       mechanism

       Parameters
           ttys points on the array of ttys representing the tty path to be
           got. Can be NULL if nttys is 0.
           count gives the number of elements in ttys.
           driver has the same meaning as in brlapi_enterTtyMode()

       Providing nttys == 0 means to get the root, which is usually what a
       screen readers wants to use.

       The content of WINDOWPATH or XDG_VTNR will always be prepended to the
       given ttys array, so the application does not need to determine by
       itself where it is running.

       Returns
           0 on success, -1 on error.

       See also
           brlapi_enterTtyMode()

   int BRLAPI_STDCALL brlapi_leaveTtyMode (void)
       Stop controlling the tty

       Returns
           0 on success, -1 on error.

       See also
           brlapi_enterTtyMode()

   int BRLAPI_STDCALL brlapi_setFocus (int tty)
       Tell the current tty to brltty

       This is intended for focus tellers, such as brltty, xbrlapi, screen,
       ... brlapi_enterTtyMode() must have been called beforehand to tell
       where this focus applies in the tty tree.

       Returns
           0 on success, -1 on error.

       See also
           brlapi_enterTtyMode() brlapi_leaveTtyMode()

Author
       Generated automatically by Doxygen for BrlAPI from the source code.



Version 0.8                     Mon Apr 6 2026                   brlapi_tty(3)
