Documentation ¶
Overview ¶
Package termios implements basic termios operations including getting a tty struct, termio struct, a winsize struct, and setting raw mode. To get a TTY, call termios.New. To get a Termios, call tty.Get(); to set it, call tty.Set(*Termios) To set raw mode and then restore, one can do: tty := termios.NewTTY() restorer, err := tty.Raw() do things tty.Set(restorer)
Index ¶
- Constants
- func GTTY(fd int) (*tty, error)
- func GetTermios(fd uintptr) (*unix.Termios, error)
- func GetWinSize(fd uintptr) (*unix.Winsize, error)
- func MakeRaw(term *unix.Termios) *unix.Termios
- func MakeSerialBaud(term *unix.Termios, baud int) (*unix.Termios, error)
- func MakeSerialDefault(term *unix.Termios) *unix.Termios
- func Raw(fd int) (*tty, error)
- func SetTermios(fd uintptr, ti *unix.Termios) error
- func SetWinSize(fd uintptr, w *unix.Winsize) error
- type TTY
- func (t *TTY) Ctty(c *exec.Cmd)
- func (t *TTY) Get() (*unix.Termios, error)
- func (t *TTY) GetWinSize() (*unix.Winsize, error)
- func (t *TTY) Raw() (*unix.Termios, error)
- func (t *TTY) Read(b []byte) (int, error)
- func (t *TTY) Serial(baud int) (*unix.Termios, error)
- func (t *TTY) Set(ti *unix.Termios) error
- func (t *TTY) SetWinSize(w *unix.Winsize) error
- func (t *TTY) Write(b []byte) (int, error)
Constants ¶
const ( I = iota // Input control O // Output control C // Control L // Line control )
These consts describe the offsets into the termios struct of various elements.
Variables ¶
This section is empty.
Functions ¶
func GTTY ¶
GTTY returns the tty struct for a given fd. It is like a New in many packages but the name GTTY is a tradition.
func MakeSerialBaud ¶
MakeSerialBaud updates the Termios to set the baudrate
func MakeSerialDefault ¶
MakeSerialDefault updates the Termios to typical serial configuration:
- Ignore all flow control (modem, hardware, software...)
- Translate carriage return to newline on input
- Enable canonical mode: Input is available line by line, with line editing enabled (ERASE, KILL are supported)
- Local ECHO is added (and handled by line editing)
- Map newline to carriage return newline on output
Types ¶
type TTY ¶
type TTY struct {
// contains filtered or unexported fields
}
TTY is a wrapper that only allows Read and Write.
func NewWithDev ¶
NewWithDev creates a new TTY with the specified device