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:
-
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) -
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'
}