---
name: "lefty"
section: "1"
platform: "linux"
package: "graphviz"
version: "2.42.4-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/lefty"
---

# lefty(1)

A Programmable Graphics Editor

## NAME

lefty - A Programmable Graphics Editor

## SYNOPSIS

**lefty** \[ *options* \] \[ *file* \]

## DESCRIPTION

**lefty** is a two-view graphics editor for technical pictures. This editor has no hardwired knowledge about specific picture layouts or editing operations. Each picture is described by a program that contains functions to draw the picture and functions to perform editing operations that are appropriate for the specific picture. Primitive user actions, like mouse and keyboard events, are also bound to functions in this program. Besides the graphical view of the picture itself, the editor presents a textual view of the program that describes the picture. Programmability and the two-view interface allow the editor to handle a variety of pictures, but are particularly useful for pictures used in technical contexts, e.g., graphs and trees. Also, **lefty** can communicate with other processes. This feature allows it to use existing tools to compute specific picture layouts and allows external processes to use the editor as a front end to display their data structures graphically.

## USAGE

The file name is optional. It may be **-**, for reading from standard input. **lefty** uses two environment variables, **LEFTYPATH** and **LEFTYOPTIONS**. **LEFTYPATH** is a colon separated list of directories. When **lefty** tries to open a file, it searches that path for the file. When **lefty** tries to start up another process, it searches **LEFTYPATH** first, then the standard **PATH** variable. **LEFTYOPTIONS** can be used to set specific options. Options specified on the command line override options set through this variable.

## OPTIONS

- **-x**

  Instructs the editor to exit after processing **file**.

- **-e \<expression\>**

  **\<expression\>** is parsed and executed.

- **-el \<num\>**

  Set error reporting level. The default value is **0**. **0** never prints any messages. **1** prints severe errors, such as trying to return from a non function. **2** is the most useful: it reports function calls that cannot be executed, either because there is no function, or because of argument mismatches. **3** also warns about bad variable names. **4,5** warn about expressions that do not return a value. Only level **1** messages are real errors. The rest arise from legal **lefty** statements, but may be caused by some logic errors.

- **-sd \<num\>**

  Specifies how much of the stack to show, when an error message is to be printed. The default value is **2**. With **0**, no part of the stack is shown. With **1**, only the top stack frame is printed. With **2**, the full stack is printed.

- **-sb \<num\>**

  Specifies how much of each function in the stack to show, when an error message is to be printed. The default value is **2**. With **0**, no part of the function is shown. With **1**, only the line around the error is printed. With **2**, the full function body is printed.

- **-df \<string\>**

  Sets the default font. This font is used whenever a requested font cannot be found. The string must be a legal X font. If string is **''**, **lefty** will draw small boxes instead of text.

- **-ps \<file\>**

  Specifies a default file name for postscript files. This name is used when no name is specified in the **createwidget** call. The default file name is **out.ps**.

- **-V**

  Prints the version.

- **-?**

  Prints the usage and exits.

## SEE ALSO

*lefty* user guide.
