> ## Documentation Index
> Fetch the complete documentation index at: https://docs.otter-shell.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Libraries overview

> Eleven shared Zig libraries that Otter Shell apps link at build time. Stack diagram, compile flags, and repo layout.

Otter Shell apps share eleven Zig libraries. They link into binaries at build time. End users do not install them as separate packages.

## Library stack

| Library                                                        | Purpose                                                        | Depends on                                                                                                   |
| -------------------------------------------------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| [otter-utils](/developers/libraries/otter-utils)               | Bounded arrays, logging, file paths, inotify                   | none                                                                                                         |
| [otter-geo](/developers/libraries/otter-geo)                   | Geometry types (Point, Rect, Padding, Transform)               | none                                                                                                         |
| [otter-conf](/developers/libraries/otter-conf)                 | Comptime config parser and hot-reload watcher                  | otter-utils                                                                                                  |
| [otter-render](/developers/libraries/otter-render)             | CPU renderer, fonts, images, CommandList                       | otter-geo, otter-utils                                                                                       |
| [otter-wayland](/developers/libraries/otter-wayland)           | Wayland client, layer shell, input, clipboard                  | otter-geo, otter-render, otter-utils                                                                         |
| [otter-vte](/developers/libraries/otter-vte)                   | Terminal cell rendering primitives                             | otter-geo, otter-render                                                                                      |
| [otter-theme](/developers/libraries/otter-theme)               | Shared theme tokens and 12 presets                             | otter-geo, otter-render, otter-conf, otter-utils                                                             |
| [otter-config-types](/developers/libraries/otter-config-types) | Typed config structs for all apps                              | otter-render, otter-geo, otter-conf                                                                          |
| [otter-tools-core](/developers/libraries/otter-tools-core)     | Pure-Zig helpers for CLI tools and search                      | otter-conf, otter-utils                                                                                      |
| [otter-desktop](/developers/libraries/otter-desktop)           | XDG icons, D-Bus, PipeWire, PAM, sysinfo                       | otter-utils                                                                                                  |
| [otter-ui](/developers/libraries/otter-ui)                     | Surface Description frame API, drawing primitives, bar widgets | otter-geo, otter-render, otter-vte, otter-theme, otter-wayland, otter-utils, otter-desktop, otter-tools-core |

Typical app chain: **otter-ui**, then **otter-wayland**, **otter-render**, **otter-theme**, **otter-conf**, **otter-desktop**.

## Compile-time flags

| Flag                               | Libraries affected                       | Effect                |
| ---------------------------------- | ---------------------------------------- | --------------------- |
| `-Denable_dbus=false`              | otter-desktop, otter-bar, otter-lock     | Remove D-Bus services |
| `-Denable_pipewire=false`          | otter-desktop, otter-bar, otter-osd      | Remove PipeWire audio |
| `-Denable_pam=false`               | otter-desktop, otter-lock, otter-greeter | Remove PAM auth       |
| `-Denable_text=false`              | otter-render                             | No font/shaping       |
| `-Dc_allocator=jemalloc\|mimalloc` | All with C deps                          | Override C allocator  |

## Source locations

Each library has its own repo under [git.pika-os.com/otter-shell](https://git.pika-os.com/otter-shell). Monorepo checkout layout:

```
otter-shell/
├── otter-conf/
├── otter-geo/
├── otter-utils/
├── otter-render/
├── otter-wayland/
├── otter-vte/
├── otter-theme/
├── otter-config-types/
├── otter-tools-core/
├── otter-desktop/
├── otter-ui/
└── otter-bar/ … (applications)
```

Read each component's `README.md` for API examples and build instructions.
