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

> Magnification dock with pinned apps, auto-hide, window previews, and file drops.

`otter-dock` is the Otter Shell application dock. Pinned and running icons sit on a layer-shell strip. Hover magnifies them. Part of the `otter-shell` metapackage.

## Features

* Pinned and running app icons (XDG icon lookup)
* Drag pinned icons to reorder them. The order is saved in your config
* Drop files (`text/uri-list` or GNOME copied-files) onto an icon to open them with that app
* Hover magnification with configurable scale and radius. The layer grows so enlarged icons are not clipped
* Auto-hide with a reveal delay and a two-pixel edge target
* Window preview thumbnails when the compositor exposes `ext_image_copy_capture`
* Wheel paging when an app has more preview windows than one popup page
* Right-click: Open, New Window, focus a window, Quit, Keep in Dock / Remove from Dock
* Click an active app to minimize it. Badges show minimized window counts

Pinned icons stay in the pinned region. Running-only icons sit after the separator.

## Usage

```bash theme={null}
otter-dock
```

Run it as a session daemon. Autostart it the same way you start [otter-bar](/desktop/otter-bar). See [Session setup](/desktop/session-setup) for Hyprland, Sway, and Niri spawn examples.

Needs `zwlr_layer_shell_v1`. Previews use `ext_image_copy_capture` when the compositor provides it. Icons still work without that protocol. Hover previews do not.

## Configuration

Config: `~/.config/otter-shell/otter-dock.conf`

<Tip>
  The **Dock** tab in [otter-settings](/desktop/otter-settings) writes the same file.
</Tip>

Key settings:

```conf theme={null}
position = bottom
auto_hide = false
auto_hide_delay = 500
show_on = all
show_on_tags =
icon_size = 48
magnification_enabled = true
magnification_scale = 200
magnification_radius = 3
pinned_apps = firefox,kitty,nautilus
launch_animation = pulse
middle_click_action = close
```

| Key                    | Meaning                                                                                  |
| ---------------------- | ---------------------------------------------------------------------------------------- |
| `position`             | `bottom`, `left`, or `right`                                                             |
| `auto_hide`            | Hide until you hit the edge. Default off                                                 |
| `auto_hide_delay`      | Hide delay in milliseconds. Default 500                                                  |
| `show_on`              | `all` (every output), `floating` (floating layouts only), or `tags` (see `show_on_tags`) |
| `show_on_tags`         | Comma-separated tags. Used when `show_on = tags`                                         |
| `icon_size`            | Icon pixel size. Default 48                                                              |
| `magnification_scale`  | Hover scale as a percent. Default 200                                                    |
| `magnification_radius` | How many neighbouring icons grow with the hovered one. Default 3                         |
| `pinned_apps`          | Comma-separated desktop ids                                                              |
| `launch_animation`     | `pulse` or `none`                                                                        |
| `middle_click_action`  | `close` or `none`                                                                        |

Omit color keys to inherit from [theme.conf](/configuration/themes). Saving the theme updates dock colours without editing `otter-dock.conf`.

## Dependencies

* Wayland compositor with `zwlr_layer_shell_v1`
* Window previews need `ext_image_copy_capture` when you want thumbnails
