tmux-plugins/tmux-yank

WSL clip.exe doesn't support utf8 characters

melink14 opened this issue · 2 comments

Noticed this while working on some Japanese parsing but whenever I copied with tmux yank, the later paste would be garbled text.

Eventually, tracked it down to clip.exe not supporting it. For full support there are two reasonable options:

  1. powershell.exe -command "Set-Clipboard" -Value "text to copy" which most WSL environments probably already have but would require some work to accept the argument from STDIN. (bash function or script)

  2. utf8clip dotnet program which works just like clip.exe but handles utf8. I chose to use this one and there's no issue either though it was probably a bit more work than 1 in the end...

I used a if-shell conditional to only override the command if the better command existed to make it easier to share my dotfiles.

I add those in my .tmux.conf, it works

if-shell '[ -n "$WSL_DISTRO_NAME" ] && command -v powershell.exe >/dev/null 2>&1' {
  set -g @override_copy_command \
  'customclip(){ local STDIN=$(cat -); powershell.exe -command "Set-Clipboard" -Value "$STDIN"; }; customclip'
}