tl;dr
この2つを組み合わせてパイプに書き込まれたらクリップボードにコピーする流れを無限ループで動かす。
具体的なスクリプトなどはここにまとめた。README見ればだいたいできるはず。
参考にしたところ
↑clip.exeが使えるで、という記事
↑パイプを作ってループでそこを監視してdockerのボリュームに指定して利用できるで、という部分を利用した。このStackOverflowの回答では内容をevalして任意のコマンドを実行できるようにしている。
今回はコピーしたいだけなので、 eval "$(cat /path/to/pipe/mypipe)"
部分は cat /path/to/pipe/mypipe | clip.exe
とコピーするだけにした。
その他
パイプ作る部分
[ -p /clip ] && echo already exists the pipe for copy || sudo mkfifo /clip
/clipにmkfifoでパイプを作ると、ここに書き込んだ内容は受け手が読み取るまであいてる。
パイプが存在するかどうかは [ -p /clip ]
でtestできる。
cat /clipすると、書き込まれるまで待機して、書き込み終わると出力して終わってくれる。おもしろい
以下READMEの転記
Usage
after setup, you can use the copy in container by volumes.
$ sudo docker run -it -v /clip:/clip alpine sh / # date > /clip
you can set alias for copy
/ # alias C='cat - > /clip' / # date | C
setup
- create pipe
- put script for copy loop with clip.exe
- setup crontab
create pipe
[ -p /clip ] && echo already exists the pipe for copy || sudo mkfifo /clip
put script
copy script in this repo into where you want and add exec permission.
script is like this.
#!/bin/bash while true do # clip.exe should in /mnt/c/windows/system32/clip.exe # you can check it by "which clip.exe" # this `cat' waits input and then exit after receiving content cat /clip | clip.exe done
setup crontab
edit crontab by crontab -e
and put below.
@reboot /path/to/copy.sh