> ## 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.

# otter-screenshot

> Capture regions, windows, or the full screen on Wayland. Drag to select, then copy to clipboard or save to a file.

`otter-screenshot` is Otter Shell's Wayland screenshot tool. It captures through the `ext_image_copy_capture_v1` protocol. No X11 fallbacks, no `grim`, no external capture tool. By default you drag to select a region and the result goes to the clipboard as `image/png`. Pass `--output` to write a file instead.

## Basic Usage

Run `otter-screenshot` without arguments to enter region-selection mode. Drag with the left mouse button to define the area. Press <kbd>Esc</kbd> or <kbd>Ctrl+C</kbd> before selecting to cancel. [otter-rec](/apps/otter-rec) and [otter-shot](/apps/otter-shot) use the same drag-to-select UI for region capture.

```bash theme={null}
otter-screenshot                                       # drag to select a region
otter-screenshot --output screenshot.png               # save region to file
otter-screenshot --fullscreen --output screenshot.png  # capture all outputs
otter-screenshot --active --output active.png          # capture active window
otter-screenshot --freeze --output region.png          # freeze before selecting
```

## Options

| Flag            | Short     | Description                                                                                                                                                        |
| --------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `--output PATH` | `-o PATH` | Write the PNG to `PATH` instead of copying it to the clipboard.                                                                                                    |
| `--fullscreen`  | :         | Capture all outputs immediately, without opening the selection overlay.                                                                                            |
| `--active`      | :         | Capture the compositor-reported active toplevel immediately. See [Compositor Requirements](#compositor-requirements) for the necessary protocol support.           |
| `--freeze`      | :         | Capture the screen first, then display that frozen image behind the selection overlay. Useful when the content you want to capture would disappear while you drag. |
| `--cursor`      | :         | Include the cursor in the captured image. The cursor is hidden by default.                                                                                         |
| `--border`      | :         | Keep the selection border in the final image. By default the border is only a visual selection aid and is cropped out.                                             |
| `--tonemap-hdr` | :         | Apply a simple SDR tonemap before encoding. Use this as a best-effort fallback when capturing HDR outputs. It is not color-managed output.                         |
| `--help`        | `-h`      | Print usage and exit.                                                                                                                                              |

## Clipboard

When no `--output` path is given, `otter-screenshot` pipes the PNG through `wl-copy --type image/png`. Otter Shell ships its own `wl-copy` as part of the native data-control implementation, so you do not need a separate clipboard utility.

File output writes directly to disk and does not touch the clipboard.

## Compositor Requirements

<Warning>
  `otter-screenshot` requires the compositor to expose the `ext_image_copy_capture_v1` protocol for output capture. If the compositor does not support it, the tool exits with an error. It does not fall back to another capture path.

  Active-window capture (`--active`) also requires `ext_foreign_toplevel_list_v1` and `ext_foreign_toplevel_image_capture_source_manager_v1`. If either protocol is missing, `--active` will not work.
</Warning>

## Binding a Shortcut

<Tip>
  Bind `otter-screenshot` to a hotkey in your compositor config. Examples:

  **Hyprland:**

  ```ini theme={null}
  bind = $mainMod, P, exec, otter-screenshot
  bind = $mainMod SHIFT, P, exec, otter-screenshot --freeze --output ~/Pictures/screenshot.png
  ```

  **Sway:**

  ```
  bindsym $mod+p exec otter-screenshot
  ```

  See [Keybinds](/configuration/keybinds) for more compositor examples.
</Tip>
