この資料は Rust 製のコマンドラインツール copiepate について紹介するものです。
Rustの環境構築やツールのインストール方法については以下を参照してください
Copiepate はクリップボードの内容をリモートで設定するための小さなユーティリティです。
GitHub - dimtion/copiepate: Send copy-pasting events over the network
私は頻繁にリモートのtmux+vimのセットアップを使用し、しばしばvimのレジスタをローカルのデスクトップにコピーする必要があるため、このツールを作成しました。
ローカルデスクトップでデーモンをサーバーモードで起動し、sshでポート2323を転送します。
# copiepateサーバーを起動し、127.0.0.1:2323をリッスン
copiepate --server
# 別のシェルで、サーバーポートをリモートマシンに転送
ssh remote-machine -N -R 2323:localhost:2323
リモートマシン上で、copiepateは標準入力の内容をローカルマシンのクリップボードに送ります。
# ローカルマシンのクリップボードの内容を設定
echo -n "New clipboard content" | copiepate
一意の秘密鍵を生成しておき、クライアントとサーバの間で共有される必要があります。
% SECRET=$( openssl rand -base64 32 )
% mkdir -p ~/.config/copiepate
% echo "secret = \\"$SECRET\\"" > ~/.config/copiepate/config.toml