Clipboard_devcontainer

✂️ Enable Clipboard Copy/Paste in a DevContainer (Neovim + OSC52 + tmux)

Clipboard support inside a DevContainer is not available by default, because the container cannot directly access the host clipboard.
This guide enables seamless yank/copy/paste in Neovim, tmux, and VS Code DevContainers using:

  • xclip / wl-clipboard (fallback tools)

  • Neovim’s built-in OSC52 clipboard provider

  • tmux OSC52 forwarding

Dockerfile

#Dockerfile
FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04

COPY --from=jdxcode/mise /usr/local/bin/mise /usr/local/bin/

# Install clipboard utilities
RUN apt-get update && apt-get install -y xclip wl-clipboard && rm -rf /var/lib/apt/lists/*

# make sure mise is activated in both zsh and bash
RUN echo 'eval "$(mise activate bash)"' >> /home/vscode/.bashrc && \
    echo 'eval "$(mise activate zsh)"' >> /home/vscode/.zshrc

OSC52 Clipboard Support in Neovim

#options.lua
vim.g.snacks_animate = false
vim.g.lazyvim_check_order = false

vim.opt.ignorecase = true

vim.opt.number = false
vim.opt.relativenumber = false
vim.opt.scrolloff = 8

-- Explicitly use OSC 52 for clipboard (best for remote/container environments)
vim.g.clipboard = {
  name = "OSC 52",
  copy = {
    ["+"] = require("vim.ui.clipboard.osc52").copy("+"),
    ["*"] = require("vim.ui.clipboard.osc52").copy("*"),
  },
  paste = {
    ["+"] = require("vim.ui.clipboard.osc52").paste("+"),
    ["*"] = require("vim.ui.clipboard.osc52").paste("*"),
  },
}

-- Use system clipboard for all yank/paste operations
vim.opt.clipboard = "unnamedplus"

Tmux

Add to ~/.tmux.conf

set -s set-clipboard on
set -ag terminal-overrides "vte*:XT:Ms=\\E]52;c;%p2%s\\7,xterm*:XT:Ms=\\E]52;c;%p2%s\\7"

Test

Inside the devcontainer (in tmux), run and then paste on your host.

printf "\033]52;c;$(printf "test from tmux" | base64)\a"

In Neovim inside the container, run and then paste on your host.

:echo "testing clipboard" | normal "+yy

🎉 You now have fully working clipboard support inside your DevContainer + Neovim environment.

my DevOps Odyssey

“Σα βγεις στον πηγαιμό για την Ιθάκη, να εύχεσαι να ‘ναι μακρύς ο δρόμος, γεμάτος περιπέτειες, γεμάτος γνώσεις.” - Kavafis’ Ithaka.



Enable Clipboard Copy/Paste in a DevContainer

2025-11-23

Series:lab

Categories:devops

Tags:#DevContainer, #Neovim, #OSC52, #lab


Clipboard_devcontainer: