これは私の現在の設定です。
- ホスト: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
DISPLAY
Xプログラムがどのように機能するかは、接続する必要があるXサーバーのIDを含む変数を見つけて、そのXサーバーに接続することです。
VMで実行されているXサーバーはありません。ただし、MacOSはXサーバー(XQuartzと呼ばれる)を実行でき、ssh
そのサーバーへの順方向X接続を作成できます(ssh -X
構成ファイルを使用または使用している場合はマンページを参照)。これはDISPLAY
スキャンによって自動的に設定され、背中でecho $DISPLAY
使用できる仮想マシンに「偽のXサーバーエンドポイント」を設定します。xclip
MacOSでは、XQuartzを手動で起動する必要があるかもしれません。私はそこからXを渡そうとしていません。