おそらくはそれさえも平凡な日々

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をラップしたpbpastepbcopyというコマンドを作ってWindowsと通信するようにしていますw

ちなみに、Win32::ClipboardのUnicode対応がイマイチなので、POSTする場合には残念ながら日本語ロケールの場合しか対応しておらず、cp932領域の文字列しかWindows側に送ることができません。逆にWindows側でコピーしたUnicodeテキストはちゃんとutf8で取得できるようになっています。

こういうクイックハックができるのでplackマジ便利ですね。

ところで今年は仕事ではMacしか使いませんでした。

created at
last modified at

2013-12-17T21:42:31+0900

comments powered by Disqus