Docking

A dock that adapts to your workflow.

Fast, customizable, and extensible dock application -- fully written in Python, with built-in applets and full Linux desktop integration.

Docking dock demonstration with applets and menus
Themeable Auto-hide Multi-monitor GTK + Cairo Applet system Cross desktop environments Open source 64 Applets Themeable Auto-hide Multi-monitor GTK + Cairo Applet system Cross desktop environments Open source 64 Applets

Features: built to feel native in real Linux workflows

Docking combines launcher speed, desktop awareness, and a modular widget system in one polished surface.

Fast launcher workflow

Quick access to your core apps, work surfaces, and utilities without visual noise or startup drag.

Built-in applets (64)

Ship a dock that already knows how to show system status, weather, media, timers, notes, and more.

Fully customizable themes

Adjust themes, sizing, behavior, and pinned item icons so the dock fits the desktop you already use.

Multi-monitor and auto-hide

Keep the dock where it belongs, visible when needed and out of the way when focus matters.

Cross desktop compatibility

Built for Linux setups that span more than one desktop environment and more than one way of working.

Extensible applet system

Add your own widgets and behaviors without compromising the dock’s main runtime model.

Compatibility: one dock across Linux desktops

Docking selects the best backend for the current session and falls back cleanly when a compositor does not expose every window-management feature.

X11, GNOME, KDE Plasma, COSMIC, Niri, Wayfire, Treeland, and protocol-capable Wayland
Environment
Full

X11 desktops

MATE, Xfce, Cinnamon, KDE, GNOME Flashback

Native X11 backend

Running indicators, window actions, previews, workspace behavior, dodge/auto-hide, and desktop integration.

Full

GNOME Wayland

GNOME / Mutter 45+

GNOME Shell bridge

Dock placement, window tracking, activate/minimize/close actions, previews, workspace switching, Show Desktop, and Alt+Tab hiding.

Native

KDE Plasma Wayland

KWin / Plasma 6

KWin backend

Layer-shell placement, AT-SPI window tracking with titles, and workspace switching through KWin D-Bus. Window actions depend on what KWin exposes.

Native

Cinnamon Wayland

Cinnamon 6.4 and newer

Cinnamon shell or layer-shell

Dock placement, running-window tracking, focus and cycling, minimize and close through Cinnamon's built-in shell API, including activation across workspaces. Placement respects panels and the selected monitor, including sessions without layer-shell. Previews remain unavailable.

Native

COSMIC Wayland

COSMIC desktop sessions

COSMIC protocols

Native layer-shell placement with COSMIC toplevel, workspace, overlap, and preview protocol paths where available.

Native

Niri Wayland

Niri compositor sessions

Niri IPC backend

Layer-shell placement, window tracking with titles, previews, workspace switching, Show Desktop, idle time, and color picker - via native Niri IPC.

Native

Wayfire Wayland

Wayfire compositor sessions

Wayfire IPC backend

Layer-shell placement, window tracking with titles, activate/minimize/close actions, workspace switching, Show Desktop, visibility-based dodge, window picking, and color picker - via native Wayfire IPC.

Varies

Protocol-capable Wayland

Sway, labwc, river, Louvre-based, Jay, Miriway, Phosh / phoc

Layer-shell plus advertised protocols

Dock placement, window tracking, actions, workspaces, previews, and idle time are enabled independently. Jay and Miriway require trusted-client configuration; phoc can provide native window thumbnails.

Native

Deepin Wayland

Treeland compositor sessions

Standard protocols plus Treeland extensions

Layer-shell placement, window tracking and previews, Show Desktop, and overlap-driven hiding. Left-edge overlap falls back while Treeland's current checker remains limited.

Overlay

GameScope

Nested and gaming sessions

Native GameScope Wayland socket

Dock placement as an external overlay, including sessions without --expose-wayland. GameScope does not expose general window management to regular clients.

Fallback

Cage, Weston, and unsupported sessions

Safe launcher and applet mode

Reduced backend

Docking remains usable without running indicators, previews, or workspace switching when no supported integration is available.

64 built-in applets: searchable tools for the dock

Filter the catalog by workflow and find the applets that make Docking more than a launcher: system controls, command launchers, media, notes, weather, privacy indicators, and folder-friendly utilities.

64 built-in applets plus folder stacks and a separator item

Showing 64 applets

Install Docking on any Linux distribution

Choose your distribution's package manager below, or download a release package for your Linux setup.

Nix release assets include an output tarball and a matching store path for the selected architecture.

Debian & Ubuntu: install with APT

Add the repository once and receive updates through your package manager. Supports Ubuntu 22.04/24.04/26.04 and Debian 12/13, on both x64 and arm64.

Ubuntu derivatives, including Linux Mint 21.x/22.x, use their Ubuntu base through UBUNTU_CODENAME. Their desktops are not separately tested.

1. Download and verify the signing key

sudo apt update
sudo apt install curl ca-certificates gnupg
curl -fsSL https://dl.cloudsmith.io/public/docking/docking-apt/gpg.key \
  -o /tmp/docking-cloudsmith.asc
gpg --show-keys --with-fingerprint /tmp/docking-cloudsmith.asc

Before continuing, check that the fingerprint is 811B48CD4A69170DD98F4F49185CED80A7947754.

2. Add the repository and install Docking

Copy the complete block below. It detects your distribution base and stops before writing the source if the base is unsupported or cannot be identified.

(
set -eu
sudo install -d -m 0755 /etc/apt/keyrings
sudo install -m 0644 /tmp/docking-cloudsmith.asc /etc/apt/keyrings/docking-cloudsmith.asc
. /etc/os-release
APT_DISTRO="${ID:-}"
APT_SUITE="${VERSION_CODENAME:-}"
if [ -n "${UBUNTU_CODENAME:-}" ]; then
    APT_DISTRO=ubuntu
    APT_SUITE="$UBUNTU_CODENAME"
fi
if [ "$APT_DISTRO" = debian ] && [ -z "$APT_SUITE" ]; then
    DEBIAN_VERSION=$(cat /etc/debian_version 2>/dev/null || true)
    case "$DEBIAN_VERSION" in
        12|12.*|bookworm|bookworm/sid) APT_SUITE=bookworm ;;
        13|13.*|trixie|trixie/sid) APT_SUITE=trixie ;;
    esac
fi
case "$APT_DISTRO:$APT_SUITE" in
    ubuntu:jammy|ubuntu:noble|ubuntu:resolute|debian:bookworm|debian:trixie) ;;
    *) echo "Unsupported APT base: $APT_DISTRO/$APT_SUITE" >&2; exit 1 ;;
esac
sudo tee /etc/apt/sources.list.d/docking.sources > /dev/null <<EOF
Types: deb
URIs: https://dl.cloudsmith.io/public/docking/docking-apt/deb/${APT_DISTRO}
Suites: ${APT_SUITE}
Components: main
Architectures: amd64 arm64
Signed-By: /etc/apt/keyrings/docking-cloudsmith.asc
EOF
sudo apt update
sudo apt install docking
)

For later updates, run sudo apt update and sudo apt upgrade. Existing .deb installations can upgrade directly through APT.

APT packages hosted by Cloudsmith.

Fedora & openSUSE: install with DNF or Zypper

Repository installation is available after the first verified RPM publication. Until then, use the RPM release downloads above.

Add the repository once and receive updates through your package manager. Supports Fedora 44/45 and openSUSE Tumbleweed/Leap 16.0, on both x64 and arm64.

1. Download and verify the signing key

if command -v zypper > /dev/null 2>&1; then
    sudo zypper --non-interactive install curl gpg2
else
    sudo dnf install -y curl gnupg2
fi
curl -fsSL https://dl.cloudsmith.io/public/docking/docking-rpm/gpg.key \
  -o /tmp/docking-cloudsmith.asc
gpg --show-keys --with-fingerprint /tmp/docking-cloudsmith.asc

Before continuing, check that the fingerprint is 04C7240DAD480161C0DFC791859E104126138494.

2. Add the repository and install Docking

Copy the complete block below. It selects DNF on Fedora or Zypper on openSUSE.

(
set -eu
sudo rpm --import /tmp/docking-cloudsmith.asc
if command -v zypper > /dev/null 2>&1; then
    REPO_DIR=/etc/zypp/repos.d
else
    REPO_DIR=/etc/yum.repos.d
fi
sudo install -d -m 0755 "$REPO_DIR"
sudo tee "$REPO_DIR/docking-rpm.repo" > /dev/null <<'EOF'
[docking-rpm]
name=Docking
baseurl=https://dl.cloudsmith.io/public/docking/docking-rpm/rpm/any-distro/any-version/$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://dl.cloudsmith.io/public/docking/docking-rpm/gpg.key
sslverify=1
type=rpm-md
metadata_expire=300

[docking-rpm-noarch]
name=Docking noarch
baseurl=https://dl.cloudsmith.io/public/docking/docking-rpm/rpm/any-distro/any-version/noarch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://dl.cloudsmith.io/public/docking/docking-rpm/gpg.key
sslverify=1
type=rpm-md
metadata_expire=300
EOF
if command -v zypper > /dev/null 2>&1; then
    sudo zypper --gpg-auto-import-keys refresh
    sudo zypper install docking
else
    sudo dnf install docking
fi
)

For later updates, run sudo dnf upgrade or sudo zypper update. Existing .rpm installations can upgrade directly through the repository.

RPM packages hosted by Cloudsmith.

Build from source: clone it, hack on it, extend it

Docking is open source and built for people who want control, extensibility, and a clean code path into custom workflows.

bash
git clone https://github.com/edumucelli/docking.git
cd docking
python3 -m venv --system-site-packages .venv
source .venv/bin/activate
pip install -e ".[dev]"
PYGOBJECT_STUB_CONFIG=Gtk3,Gdk3 \
  pip install --no-deps -r requirements-typing.txt

Flexible, extensible, and built for real workflows.

Docking gives you control without getting in your way.

Frequently asked questions

What Linux desktop environments does Docking support?

Docking supports X11 and Wayland through backend-specific integrations: full X11 support, GNOME / Mutter via the companion Shell bridge, KDE Plasma 6 through the native KWin backend, COSMIC through native Wayland protocols, wlroots-style compositors via layer-shell and advertised protocols, and reduced mode when compositor integration is unavailable.

Can I create my own applets?

Yes. Docking has an extensible applet system. Each applet is a Python package with a state, render, and applet module. You can add custom widgets and behaviors without modifying the dock's core runtime.

Does Docking support Wayland?

Yes. Docking supports X11 and Wayland. Native Wayland support is selected per desktop: GNOME Shell bridge, KWin, COSMIC protocols, wlroots layer-shell/protocol paths, or reduced mode when needed.

Is Docking free and open source?

Yes. Docking is licensed under GPL-3.0-or-later and fully open source. The code is hosted on GitHub and contributions are welcome.

Start using Docking today

Install a build, star the project, and shape a Linux dock that fits the way you actually work.