Synergyを使った似非デュアルディスプレイ
明けましておめでとうございます。年末年始ということで家で大掃除及び諸々の作業をしていました。家の環境ですが、デスクトップのArch Linuxにディスプレイを二枚繋いでデュアルディスプレイの環境でした。が、大掃除をしたところ片側のディスプレイ (ちなみにNexDockです)の電源周りが死んでしまい新年早々仕事をする気が失せたのでその辺の話を書きます。
速い話Synergyを使ってデュアルディスプレイの様なことをやりました。普通に新しいディスプレイを買えば良い話ではあるのですが、それまでの繋ぎという感じです。今回は丁度手元にあったMacBook Proを使います。MacBook Proを手元のディスプレイに指せば良いと思うかもしれませんが、変換コネクタが手元にないので今はできません。
Synergy
さて、こういう話は例によってArch Wikiに書いてあります。(Extreme Multihead) どうも選択肢はXdmxとSynergyがあるようです。
Xdmx a proxy server for X allows the X server on remote systems to contribute its monitor to the desktop of a master system. In this case the destop is genuinely extending onto remote systems; windows can be dragged across system boundaries and applications launched from a remote monitor run on the local, master system. In this environment, the remote systems need only provide sufficient resources to run an X session.
Xdmxを使うとXの転送機能を使って結構ちゃんとデュアルディスプレイのようなことができる様です。一方でMacのXでちゃんと動かないのか巷の情報が古いせいなのか動きませんでした。もうちょっと粘ると動くのかもしれません。
synergy this tool allows your keyboard and mouse to access remote systems by making your desktop seem to extend onto the remote desktop. Simply by moving your mouse off the edge of your desktop it will appear on a remote system where both mouse and keyboard can interact with the remote systems GUI (i.e. synergy can connect Macs and Windows systems too). Windows cannot be dragged across system boundaries and indeed applications launched through a remote systems GUI, run on the remote system. For an integrated Linux desktop, disk shares also need to be set-up
Synergyを使うとリモートにキーボードとマウスを送れます。これだけ見るとデュアルディスプレイというよりKVM感がありますが、操作するマシンを切り替える方法が、マウスポインタをディスプレイの外に動かすだけなのでデュアルディスプレイの様な操作ができます。
Installation
Arch Wikiに色々書いてあるのですがやったことはこういう感じです。
Arch Linux (Host) 側
SynergyはArch Linuxではpacmanでインストールできます。GUIを起動すると課金しないと動かない機能があると言われますが、欲しい機能は課金しなくても動きます。
pacman -S synergy
sudo cp /etc/synergy.conf.example /etc/synergy.conf
vim /etc/synergy.conf # 適当に設定を書く
synergys
MacOSX (Guest) 側
SynergyはMacではhomebrewのcaskでインストールできます。GUIで起動すると課金しろと言われますが、必要なのはsynergy-coreだけなのでこれで動きます。
brew cask install synergy
/Applications/Synergy.app/Contents/MacOS/synergyc --client <Hostのアドレス>
2018/09/15更新
Macでのpathが変わっていたので修正しました。
2020/03/11更新
Macでのpathが再度変わっていたので修正しました。また、もしかするとaccessibility周りの権限を適切に与える必要があるかもしれません。
各アプリケーションの使用感
Emacsで諸々を書く
Emacsの場合trampを使うとsshなど経由で外部のファイルを編集できます。例えばLaTeXを書くときに片側でファイルを編集して、コンパイルとプレビューを反対側でやるようなことができます。
Google Chrome
Chromeだと履歴が共有されるのでその辺を上手いことやると動きます。
Xを使うアプリケーション全般
そもそもsshのX転送を使うことでリモートからGUIのプログラムも起動できます。