Windows開発機でVMのLinuxとクリップボードを共有するの法
このエントリーはPerl Advent Calendar 2013の17日目です。
WindowsマシンのVM上で開発していると慣れてくるとそんなに困ることはなくなりますが、たまにクリップボードをホストマシンと共有したくなることがあります。そんな時はホストマシンのWindows側にクリップボード共有サーバーを立ててしまえばよいでしょう。
最近は、ActivePerlでもStrawberryPerlでも簡単にPlack
がインストールできて、コマンドプロンプトからカジュアルにplackup
できる便利な時代となっておりますのでPlackアプリでサクッと作ってしまいましょう。
それがこちらのWinPBです。
使い方は簡単です。POSTでクリップボード上書き、GETでクリップボード取得。わかりやすい。
eg以下にpsgiとbatファイルのサンプルが置いてあります。認証が気になるなら適当にPlack::Middleware::Auth::*
とかをくっつければ良いと思います。
あとはVM側からcurl
だけでWindowsのクリップボードが取得・更新が可能になります。
僕はWindows起動時にWinPBを自動起動して、Linux側ではcurl
をラップしたpbpaste
、pbcopy
というコマンドを作ってWindowsと通信するようにしていますw
ちなみに、Win32::ClipboardのUnicode対応がイマイチなので、POSTする場合には残念ながら日本語ロケールの場合しか対応しておらず、cp932領域の文字列しかWindows側に送ることができません。逆にWindows側でコピーしたUnicodeテキストはちゃんとutf8で取得できるようになっています。
こういうクイックハックができるのでplackマジ便利ですね。
ところで今年は仕事ではMacしか使いませんでした。