xclipを使用して仮想マシンからホストクリップボードにコピーする

xclipを使用して仮想マシンからホストクリップボードにコピーする

これは私の現在の設定です。

  • ホスト:macOS
  • 仮想マシン:Linux(Ubuntu 18.04)
  • ハイパーバイザー: Parallels 14
  • ホスト端末エミュレータ:iTerm2
  • シェル:バッシュ

私はすべての開発をLinux VMで行い(VMにSSHを介して接続し、端末を使用するだけで開発環境に非常に適しています)、tmuxを大量に使用します。ただし、tmuxは一般的なマウスドラッグテキストのコピー/貼り付け操作を実行するのには適していません。

以前は、xclip -sel cコンテンツをクリップボードにダンプするためにxclip()を使用していました。しかし、この場合、Linux VMのテキストをMacOSクリップボードにダンプしたいと思います。これにより$ echo hello world | xclip -sel cエラーが発生します。

エラー:ディスプレイを開けませんでした:(null)

その後、このような操作を試みると、$ echo hello world | DISPLAY=:0 xclip -sel c別のエラーが発生します。

プロトコルが指定されていません。

エラー:ディスプレイを開くことができません::0

これを達成する方法についてのアイデアはありますか?よろしくお願いします!

答え1

DISPLAYXプログラムがどのように機能するかは、接続する必要があるXサーバーのIDを含む変数を見つけて、そのXサーバーに接続することです。

VMで実行されているXサーバーはありません。ただし、MacOSはXサーバー(XQuartzと呼ばれる)を実行でき、sshそのサーバーへの順方向X接続を作成できます(ssh -X構成ファイルを使用または使用している場合はマンページを参照)。これはDISPLAYスキャンによって自動的に設定され、背中でecho $DISPLAY使用できる仮想マシンに「偽のXサーバーエンドポイント」を設定します。xclip

MacOSでは、XQuartzを手動で起動する必要があるかもしれません。私はそこからXを渡そうとしていません。

関連情報