Skip to content

feat(wsl): Sixel Neovim images and Cursor agent clipboard paste#112

Merged
aguil merged 10 commits into
masterfrom
feat/wsl-sixel-graphics
Jul 11, 2026
Merged

feat(wsl): Sixel Neovim images and Cursor agent clipboard paste#112
aguil merged 10 commits into
masterfrom
feat/wsl-sixel-graphics

Conversation

@aguil

@aguil aguil commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Enable Sixel graphics in Windows Terminal for Neovim image viewing on WSL (experimental.sixelSupport only; Ctrl+V text paste unchanged).
  • Add WSL apt dependencies (imagemagick, libsixel-bin) for Sixel encoding.
  • Configure tmux Sixel passthrough (allow-passthrough all, Sxl overrides) and bind prefix + p to inject a clipboard image path into agent CLIs.
  • Use inline (not popup) Sixel rendering in Neovim image.nvim on WSL Windows Terminal to avoid popup WinNew flush races.
  • Add clipboard image helpers for agent paste: paste-image-agent.sh, shared clipboard-image.sh, WSL wl-paste shim, and pngpaste on macOS.

Commits

  1. feat(wt): enable Sixel graphics in Windows Terminal defaults
  2. feat(wsl): add imagemagick and libsixel apt packages
  3. feat(tmux): enable Sixel passthrough and agent image paste binding
  4. feat(nvim): use inline Sixel images on WSL Windows Terminal
  5. feat(agent): add clipboard image paste helpers for Cursor agent
  6. chore(qa): lint agent clipboard paste shell scripts

Test plan

  • Merge WT experimental.sixelSupport into live settings; restart Windows Terminal
  • Confirm Ctrl+V still pastes text in WT (no keybinding changes required)
  • chezmoi apply on WSL host
  • Neovim markdown ![](image.png) shows inline at cursor on revisit (WSL + tmux + WT)
  • Snipping Tool screenshot → prefix + p in agent tmux pane injects @/tmp/cursor-agent-clipboard-….png
  • macOS: prefix + p in agent pane after brew install pngpaste

@aguil aguil force-pushed the feat/wsl-sixel-graphics branch from e2b0591 to 711f6eb Compare July 11, 2026 16:23
@aguil aguil force-pushed the feat/wsl-sixel-graphics branch from 711f6eb to 2c54300 Compare July 11, 2026 18:23
@aguil aguil changed the title feat(wsl): Sixel graphics support for Windows Terminal and tmux feat(wsl): Sixel Neovim images and Cursor agent clipboard paste Jul 11, 2026
aguil added 6 commits July 11, 2026 12:38
Opt in to experimental.sixelSupport for all profiles so WSL panes can
render inline raster graphics (image.nvim).
Dependencies for Sixel encoding and inline image display in Neovim on WSL.
Forward Sixel graphics through tmux for image.nvim and bind prefix+p to
inject a clipboard image path into the agent CLI prompt.
Select the sixel backend when WT_SESSION is set, render at cursor inline
to avoid popup WinNew flush races, and disable tmux focus toggles that
fight Sixel repaint.
Add paste-image-agent.sh, shared clipboard-image helpers, a WSL wl-paste
shim for Windows clipboard images, pngpaste in Brewfile, and chezmoiignore
for the WSL-only shim.
Include paste-image-agent, wl-paste, and clipboard-image in shfmt/shellcheck.
@aguil aguil force-pushed the feat/wsl-sixel-graphics branch from 2c54300 to 28de1eb Compare July 11, 2026 18:38
aguil added 3 commits July 11, 2026 12:40
Document that tracked Windows Terminal settings only enable Sixel, keep
Ctrl+V for text paste, and route agent clipboard images through tmux.
Document isolated-socket probes and trap-based teardown so agent tmux
diagnostics do not orphan sessions on the operator's default server.
Add shellcheck shell directive to the sourced library and forward argv
through wl-paste delegation so qa lint-shell passes.
@aguil aguil marked this pull request as ready for review July 11, 2026 18:57
Rename cursor-agent-clipboard to agent-clipboard so @path paste works
for Claude Code and other agent CLIs, not only Cursor.
@aguil aguil merged commit 6fb55b8 into master Jul 11, 2026
1 check passed
@aguil aguil deleted the feat/wsl-sixel-graphics branch July 11, 2026 19:16
aguil added a commit that referenced this pull request Jul 11, 2026
fix: address agents code-review findings from PR #112
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant