はじめに

この資料は Rust 製のコマンドラインツール copiepate について紹介するものです。

Rustの環境構築やツールのインストール方法については以下を参照してください

Rust開発環境を整える

copiepate について

Copiepate はクリップボードの内容をリモートで設定するための小さなユーティリティです。

GitHub - dimtion/copiepate: Send copy-pasting events over the network

私は頻繁にリモートのtmux+vimのセットアップを使用し、しばしばvimのレジスタをローカルのデスクトップにコピーする必要があるため、このツールを作成しました。

デモ

https://github.com/dimtion/copiepate/raw/main/.github/img/copiepate-animation.gif

使用方法

ローカルデスクトップでデーモンをサーバーモードで起動し、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

設定ファイル