βοΈ 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
#DockerfileFROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04COPY --from=jdxcode/mise /usr/local/bin/mise /usr/local/bin/# Install clipboard utilitiesRUN 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 bashRUN echo 'eval "$(mise activate bash)"' >> /home/vscode/.bashrc && \echo 'eval "$(mise activate zsh)"' >> /home/vscode/.zshrc
OSC52 Clipboard Support in Neovim
#options.luavim.g.snacks_animate = falsevim.g.lazyvim_check_order = falsevim.opt.ignorecase = truevim.opt.number = falsevim.opt.relativenumber = falsevim.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 operationsvim.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.