VirtualBox の Windows と Linux (CUI) でクリップボードでテキスト共有
VirtualBox の Windows と Linux (CUI) でクリップボードでテキスト共有
わーい昔からやりたかった、ホストOS(Win) とゲスト Linux OS の CUI 上で文字列のクリップボード共有ができたよ!! VirtualBox 入れ直した記念に久しぶりに再チャレンジしたらできた。環境は VirtualBox 3.2.0 でホストOSは Windows 7 でゲストOS は Debian (sid)。
VirtualBox の設定で双方向のクリップボード共有にチェックを入れる
これデフォで入ってる気がします
ゲストOSに Guest Additions を入れる
入れます。カーネルモジュールとか作られるのでモジュールロードか再起動を適当に。すると VBoxService が自動で立ち上がるはず。
ゲストOSに Xvfb を入れる
仮想フレームバッファの Xvfb を入れます。適当に apt で入る。
Xvfb を立ち上げ
ユーザ権限で立ち上げます。X のクリップボード使いたいだけなのでディスプレイサイズは小さくてよいです。もっとちいさくてもいいかも。
$ Xvfb -screen 0 320x240x8 &
VBoxClient の立ち上げ
クリップボード共有のため立ち上げます。僕は export DISPLAY=:0 とか設定してる人は特に DISPLAY 系の指定は今後いりません。
$ DISPLAY=:0 VBoxClient --clipboard &
xsel のインストール
X の Clipboard を扱うために入れます。apt で適当に。
xsel のエイリアス
mac osx の pbpaste / pbcopy がうらやましいのでその名前で alias を張ってやります。適当に .zshrc とかに書くといいと思います。
if [ -x /usr/bin/xsel ]; then
alias pbcopy='xsel --display :0 --input --clipboard'
alias pbpaste='xsel --display :0 --output --clipboard'
fi
これで
$ pbpaste
$ echo 'foo'|pbcopy
でホストOS(win)とゲストOS(Linux)のCUIでちゃんと共有できるように。これで OSX とかうらやましくないんだからねっ!!
おまけ・めんどくさいので .zshrc で Xvfb と VBoxClient を立ち上げる
# Xvfb と VBoxClient があって .X0-lock がなければ立ち上げる
if [ -x /usr/bin/Xvfb ] && [ -x /usr/bin/VBoxClient ] && [ ! -f /tmp/.X0-lock ]; then
Xvfb -screen 0 320x240x8 > /dev/null 2>&1 &
sleep 0.5
DISPLAY=:0 VBoxClient --clipboard
fi
sleep 入れないと X が立ち上がってなくて VBoxClient が立ち上がらないので適当に…。