「インストール - マウス・キーボード共有ソフトウェア」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の17版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
Synergy / 3およびBarrierは、ネットワークを介して複数のコンピュータ間でマウスとキーボードを共有するためのソフトウェア (Input Device Sharing Software) である。<br>
Synergy 1 / 3 または InputLeapは、ネットワークを介して複数のコンピュータ間でマウスとキーボードを共有するためのソフトウェア (Input Device Sharing Software) である。<br>
<br>
<br>
これは、以下に示すような特徴がある。<br>
これは、以下に示すような特徴がある。<br>
18行目: 18行目:
<br><br>
<br><br>


== Synergy ==
== Deskflow (旧 Synergy Core) ==
Synergyは有償ソフトウェアであるが、一部の機能 (通信の暗号化機能) を除いて、無償でも使用することができる。<br>
Deskflowは、Synergy3の無償の公式アップストリームプロジェクトある。<br>
Deskflowプロジェクトは、誰もが協力できるコミュニティ主導の開発を育成するために設立されている。<br>
<br>
<br>
==== パッケージ管理システムからインストール (非推奨) ====
Deskflowを使用することにより、Windows、MacOS、Linux上の複数のPC間で1つのマウスとキーボードを共有することが可能である。(映像出力なしのソフトウェアKVM)<br>
Synergyのバージョンが古い場合があるため、非推奨である。<br>
<br>
  sudo zypper install libdns_sd qsynergy synergy
==== パッケージ管理システムからインストール ====
# RHEL
-
# SUSE
-
# Raspberry Pi OS / Mobian
  -
<br>
<br>
==== ソースコードからインストール ====
==== ソースコードからインストール ====
まず、Synergyのビルドに必要な依存関係のライブラリをインストールする。<br>
まず、Deskflowのビルドに必要な依存関係のライブラリをインストールする。<br>
<br>
<u>※注意</u><br>
<u>Qt 6.5以降、CMake 3.24以降、OpenSSL 3.0以降が必要となることに注意する。</u><br>
<br>
<syntaxhighlight lang="text">
  # RHEL
  # RHEL
  sudo dnf groupinstall "Development Tools"
  sudo dnf install epel-release
  sudo dnf install epel-release cmake3 boost-static libcurl-devel openssl-devel libXtst-devel \
sudo dnf config-manager --set-enabled crb
                    
  sudo dnf install cmake make ninja-build gcc-c++ gtk3-devel \
                  # Qt 5を使用する場合
                  glib2-devel gdk-pixbuf2-devel libcurl-devel libnotify-devel libei-devel   \
                  qt5-qtbase-devel qt5-qtdeclarative-devel
                   libportal-devel openssl-devel libXtst-devel libxkbfile-devel pugixml-devel \
                   qt6-qtbase-devel qt6-qttools-devel \
                  # Qt 6を使用する場合
                  gtest-devel gmock-devel           \
                   qt6-qtbase-devel qt6-core-devel qt6-widgets-devel qt6-network-devel qt6-dbus-devel qt6-qtdeclarative-devel
                  tomlplusplus-devel cli11-devel
   
   
  # SUSE
  # SUSE
  sudo zypper install glib2-devel gdk-pixbuf-devel avahi-compat-mDNSResponder-devel dbus-1-devel libcurl-devel libnotify-devel \
  sudo zypper install make cmake ninja gcc-c++ glib2-devel gtk3-devel                \
                    libopenssl-devel libopenssl-1_1-devel libavahi-devel fixesproto-devel libportal-devel pugixml-devel       \
                    gdk-pixbuf-devel avahi-compat-mDNSResponder-devel dbus-1-devel \
                     libXrandr-devel libXext-devel libXfixes-devel libXinerama-devel libXi-devel libXtst-devel xextproto-devel \
                    libcurl-devel libnotify-devel libopenssl-devel libavahi-devel fixesproto-devel libportal-devel pugixml-devel   \
                     libxkbcommon-devel libxkbfile-devel inputproto-devel recordproto-devel libSM-devel                       \
                     libXrandr-devel libXext-devel libXfixes-devel libXinerama-devel libXi-devel libXtst-devel xextproto-devel     \
                     libxkbcommon-devel libxkbfile-devel inputproto-devel recordproto-devel libSM-devel                             \
                    libei-devel cli11-devel tomlplusplus-devel                                                                    \
                    qt6-base-devel qt6-core-devel qt6-widgets-devel qt6-network-devel qt6-dbus-devel qt6-linguist-devel qt6-tools-devel
   
   
                    # Qt 5を使用する場合
# Raspberry Pi OS / Mobian
                    libqt5-qtbase-common-devel libQt5Core-devel libQt5Gui-devel libQt5Widgets-devel libQt5Network-devel      \
  apt install cmake build-essential ninja-build libglib2.0-dev libgtk-3-dev \
                    libQt5DBus-devel libqt5-linguist-devel
              libgdk-pixbuf-2.0-dev libnotify-dev libpugixml-dev libssl-dev \
              libei-dev libportal-dev libtomlplusplus-dev libcli11-dev      \
                    # Qt 6を使用する場合
              xorg-dev libx11-dev libxtst-dev libxkbfile-dev                \
                    qt6-base-devel qt6-core-devel qt6-widgets-devel qt6-network-devel qt6-dbus-devel qt6-linguist-devel
              qt6-base-dev qt6-tools-dev                                    \
              libgtest-dev libgmock-dev
</syntaxhighlight>
<br>
<br>
* 各バージョンのソースコードからインストールする場合
* 各バージョンのソースコードからインストールする場合
*: [https://github.com/symless/synergy-core/releases SynergyのGithub]からソースコードをダウンロードする。
*: [https://github.com/deskflow/deskflow/releases DeskflowのGithub]からソースコードをダウンロードする。
*: ダウンロードしたファイルを解凍する。
*: ダウンロードしたファイルを解凍する。
*: <code>tar xf synergy-core-<バージョン>.tar.gz</code>
*: <syntaxhighlight lang="text">
*: <code>cd synergy-core-<バージョン></code>
tar xf deskflow-<バージョン>.tar.gz
cd deskflow-<バージョン>
</syntaxhighlight>
*: <br>
*: <br>
*: Synergyのビルドに必要なサブモジュールをダウンロードする。
*: Deskflowをビルドおよびインストールする。
*: <code>git clone https://github.com/mohabouje/WinToast ext/WinToast</code>
*: <syntaxhighlight lang="text">
*: <code>git clone https://github.com/google/googletest.git ext/googletest</code>
mkdir build && cd build
*: <code>git clone https://github.com/zeux/pugixml ext/pugixml</code>
cmake -DCMAKE_BUILD_TYPE=Release
      -DCMAKE_INSTALL_PREFIX=<Deskflowのインストールディレクトリ>
      ..
make -j $(nproc) または cmake --build . -j $(nproc)
make install または cmake --install .
</syntaxhighlight>
*: <br>
*: <br>
*: Synergyをビルドおよびインストールする。
*: <code>mkdir build && cd build</code>
*: <code>cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<Synergyのインストールディレクトリ> ..</code>
*: <code>make -j $(nproc) または cmake --build . -j $(nproc)</code>
*: <code>make install または cmake --install .</code>
<br>
* <code>git clone</code>コマンドを使用する場合
* <code>git clone</code>コマンドを使用する場合
*: <code>git clone https://github.com/symless/synergy-core.git</code>
*: <syntaxhighlight lang="text">
*: <code>cd synergy-core</code>
git clone https://github.com/deskflow/deskflow.git
*: 最新安定版 : <code>git checkout master</code>
cd deskflow
*: 最新開発版 : <code>git checkout vX.Y.Z</code>
</syntaxhighlight>
*: <br>
*: <br>
*: Synergyをビルドおよびインストールする。
*: Deskflowをビルドおよびインストールする。
*: <code>cd synergy-core && mkdir build && cd build</code>
*: <syntaxhighlight lang="text">
*: <br>
mkdir build && cd build
*: <code>cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<Synergyのインストールディレクトリ> ..</code>
*: <code>make -j $(nproc) または cmake --build . -j $(nproc)</code>
cmake -DCMAKE_BUILD_TYPE=Release
*: <code>make install または cmake --install .</code>
      -DCMAKE_INSTALL_PREFIX=<Synergyのインストールディレクトリ>
      ..
make -j $(nproc) または cmake --build . -j $(nproc)
make install または cmake --install .
</syntaxhighlight>
<br>
<br>
Synergyの実行ファイルが存在するディレクトリに、以下のようなシェルスクリプトを作成する。<br>
任意のディレクトリにインストールした場合、Deskflowの実行ファイルが存在するディレクトリに、以下に示すようなシェルスクリプトを作成する。<br>
  vi /<Synergyの実行ファイルがあるディレクトリ>/bin/synergy.sh
  vi /<Deskflowの実行ファイルがあるディレクトリ>/bin/deskflow.sh
<br>
<br>
  <syntaxhighlight lang="sh">
  <syntaxhighlight lang="sh">
  # /<Synergyの実行ファイルがあるディレクトリ>/bin/synergy.shファイル
  # /<Deskflowの実行ファイルがあるディレクトリ>/bin/deskflow.shファイル
   
   
  #!/usr/bin/env sh
  #!/usr/bin/env sh
   
   
  appname="synergy"
  appname="deskflow"
   
   
  # use -f to make the readlink path absolute
  # use -f to make the readlink path absolute
103行目: 128行目:
  export LD_LIBRARY_PATH="$dirname/../lib64:${LD_LIBRARY_PATH}"
  export LD_LIBRARY_PATH="$dirname/../lib64:${LD_LIBRARY_PATH}"
   
   
  # Run Synergy binary
  # Run Deskflow binary
  "${dirname}/${appname}" "$@"
  "${dirname}/${appname}" "$@"
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
Windowsの場合は、Githubにあるインストーラをダウンロードしてインストールする。<br>
Windowsの場合は、Githubにあるインストーラをダウンロードしてインストールする。<br>
インストールした後、Synergyの設定を行う。<br>
インストールした後、Deskflowの設定を行う。<br>
<br>
<br>
==== Synergyのアンインストール ====
 
==== Deskflowのアンインストール ====
* Windowsの場合
* Windowsの場合
*# [プログラムの追加と削除](または[アプリと機能])で、Synergyをアンインストールする。<br>この時、"アプリとその関連情報がアンインストールされます"というメッセージが表示されるので、再度、[アンインストール]ボタンを押下する。
*# [プログラムの追加と削除](または[アプリと機能])で、Deskflowをアンインストールする。<br>この時、"アプリとその関連情報がアンインストールされます"というメッセージが表示されるので、再度、[アンインストール]ボタンを押下する。
*# [アプリを終了する必要があります]メッセージ、および、アプリを自動的に終了させるかどうかを尋ねられるので、これを選択する。
*# [アプリを終了する必要があります]メッセージ、および、アプリを自動的に終了させるかどうかを尋ねられるので、これを選択する。
*# 次に、regeditを実行して、以下に示すレジストリキーを削除する。(存在する場合)
*# 次に、regeditを実行して、以下に示すレジストリキーを削除する。(存在する場合)
*#* HKEY_CURRENT_USER\Software\Deskflow\Deskflow
*#* HKEY_CURRENT_USER\Software\Symless
*#* HKEY_CURRENT_USER\Software\Symless
*#* HKEY_CURRENT_USER\Software\Synergy
*#* HKEY_CURRENT_USER\Software\Synergy
134行目: 161行目:
*# パッケージ管理システムを使用して、Synergyを削除する。
*# パッケージ管理システムを使用して、Synergyを削除する。
*# 次に、以下のコマンドを実行して、Synergyの設定を削除する。
*# 次に、以下のコマンドを実行して、Synergyの設定を削除する。
*#* <code>rm -rf ~/.config/Deskflow/</code>
*#* <code>rm -rf ~/.config/Symless/</code>
*#* <code>rm -rf ~/.config/Symless/</code>
*#* <code>rm -rf ~/.config/Synergy/</code>
*#* <code>rm -rf ~/.config/Synergy/</code>
156行目: 184行目:
<br>
<br>
一方で、Synergy 3は有料版のみの提供となり、以前のバージョンにあったOSS版は提供されていない。<br>
一方で、Synergy 3は有料版のみの提供となり、以前のバージョンにあったOSS版は提供されていない。<br>
Synergy 3 (3台まで可能) は$29.00、Synergy 3 Ultimate (15台まで可能) は$49.00となっている。<br>
<br>
<u>※注意 1</u><br>
<u>Synergy 3では、GLIBC 2.34以降が必要となることに注意する。</u><br>
<br>
<br>
Synergy 3はWaylandもサポートしているが、libeiライブラリが必要となることに注意する。<br>
<u>※注意 2</u><br>
また、libeiライブラリをサポートしているDEについては、GNOME 46以降、あるいは、KDE Plasma 6.1以降が必要となることが多い。<br>
<u>Synergy 3はWaylandもサポートしているが、libeiライブラリが必要となることに注意する。</u><br>
<u>また、libeiライブラリをサポートしているDEについては、GNOME 46以降、あるいは、KDE Plasma 6.1以降が必要となることが多い。</u><br>
<br>
<br>
以下に示すようなlibeiライブラリをサポートしていないLinuxディストリビューションにおいて、Synergy 3を使用する場合はXorgに切り替える必要がある。<br>
以下に示すようなlibeiライブラリをサポートしていないLinuxディストリビューションにおいて、Synergy 3を使用する場合はXorgに切り替える必要がある。<br>
188行目: 221行目:
  # SUSE
  # SUSE
  sudo zypper remove synergy
  sudo zypper remove synergy
<br><br>
== InputLeap ==
InputLeapは、複数のコンピュータ間でマウスとキーボードを共有できるオープンソースのソフトウェアである。<br>
以前はBarrierとして知られていた。<br>
<br>
1つのマウスとキーボードで複数のコンピュータを操作できる点が挙げられる。<br>
例えば、デスクトップにノートPCを接続して作業する場合、物理的なKVMスイッチを使用せずに、画面の端からマウスを移動するだけで別のコンピュータに切り替えることができる。<br>
<br>
クライアントサーバモデルで動作し、キーボードとマウスを共有するメインのコンピュータがサーバとして機能して、制御される側のコンピュータがクライアントとして動作する。<br>
ネットワーク経由で接続するため、物理的な接続機器は不要である。<br>
<br>
セキュリティ面では、SSL暗号化をサポートしており、キーボード入力やマウスの動きを暗号化して送信できる。<br>
また、クリップボードの共有機能も備えており、異なるOSのマシン間でもテキストやファイルのコピー&ペーストが可能である。<br>
<br>
==== パッケージ管理システムからインストール ====
# RHEL
-
# SUSE
-
# Raspberry Pi / Banana Pi F3
<br>
==== ソースコードからインストール ====
まず、InputLeapをビルドするため、依存関係のライブラリをインストールする。<br>
# RHEL (EPELリポジトリの追加が必要)
sudo dnf groupinstall "Development Tools"
sudo dnf install 'dnf-command(config-manager)'
sudo dnf config-manager --set-enabled PowerTools
sudo dnf install cmake3 libcurl-devel avahi-compat-libdns_sd-devel libX11-devel libXtst-devel desktop-file-utils openssl-devel \
                  qt6-qtbase-devel
# SUSE
sudo zypper install --type pattern devel_basis
sudo zypper install make cmake gcc gcc-c++ glibc-devel libportal-devel libei-devel \
                    libcurl-devel avahi-compat-mDNSResponder-devel libX11-devel libxkbcommon-devel libXtst-devel libXext-devel \
                    libXinerama-devel libXrandr-devel libXi-devel Mesa-devel libICE-devel libSM-devel libdrm-devel libglvnd-devel \
                    qt6-core-devel qt6-widgets-devel qt6-network-devel qt6-linguist-devel
                    # OpenSSL 1.1を使用する場合
                    libopenssl-1_1-devel
                    # OpenSSL 3を使用する場合
                    libopenssl-devel libopenssl-3-devel
<br>
次に、[https://github.com/input-leap/input-leap/releases InputLeapのGiHub]にアクセスして、ソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍して、ビルド向けディレクトリを作成する。<br>
tar xf input-leap-<バージョン>.tar.gz
cd input-leap-<バージョン>
<br>
<u>※注意 1</u><br>
<u>Tarballを使用してビルドする場合、InputLeapディレクトリのext/gtestディレクトリが空の場合、以下のモジュールのソースコードをダウンロードする必要がある。</u><br>
<br>
# Tarballのモジュールをダウンロードする場合
wget https://github.com/google/googletest/archive/refs/tags/release-<バージョン>.tar.gz
tar xf googletest-release-<バージョン>.tar.gz
# Gitを使用してモジュールをダウンロードする場合
git clone https://github.com/google/googletest.git
<br>
<u>InputLeapのビルドに必要なソースコードを、InputLeapディレクトリのext/gtestディレクトリにコピーする。</u><br>
# Tarballのモジュールをダウンロードした場合
cp -r googletest-release-<バージョン>/googletest <InputLeapディレクトリ>/ext/gtest
cp -r googletest-release-<バージョン>/googlemock <InputLeapディレクトリ>/ext/gtest
# Gitを使用してモジュールをダウンロードした場合
cp -r googletest/googletest/* <InputLeapディレクトリ>/ext/gtest
cp -r googletest/googlemock/* <InputLeapディレクトリ>/ext/gtest
<br>
InputLeapをビルドおよびインストールする。<br>
mkdir build && cd build
cmake -DCMAKE_C_COMPILER=<GCC 8.5以降のコンパイラ>              \
      -DCMAKE_CXX_COMPILER=<G++ 8.5以降のコンパイラ>            \
      -DCMAKE_BUILD_TYPE=Release                              \
      -DCMAKE_INSTALL_PREFIX=<InputLeapのインストールディレクトリ> \
      ..
make -j $(nproc)
make install
<br>
InputLeapのデスクトップエントリファイルを、~/.local/share/applicationsディレクトリに作成する。<br>
<syntaxhighlight lang="ini">
# ~/.local/share/applications/InputLeap.desktop
[Desktop Entry]
Type=Application
Name=Input Leap
Comment=Keyboard and mouse sharing solution
Exec=/<InputLeapのインストールディレクトリ>/bin/input-leap
Icon=/<InputLeapのインストールディレクトリ>/share/icons/io.github.input_leap.InputLeap
Terminal=false
Categories=Network
Keywords=keyboard;mouse;sharing;network;share;
</syntaxhighlight>
<br><br>
<br><br>


392行目: 523行目:


== ファイヤーウォールの設定 ==
== ファイヤーウォールの設定 ==
ファイヤーウォールのポート開放を行う。<br>
マウス・キーボード共有ソフトウェアにおいて、<u>サーバとして使用するPCでは、ファイヤーウォールのポート開放を行う必要がある。</u><br>
# 一般的な設定
  sudo firewall-cmd --permanent --add-port=24800/tcp
  sudo firewall-cmd --permanent --add-port=24800/tcp
  または
   
# KVM (libvirtd) 内でマウス・キーボード共有ソフトウェアを使用する場合
  sudo firewall-cmd --permanent --zone=libvirt --add-port=24800/tcp
  sudo firewall-cmd --permanent --zone=libvirt --add-port=24800/tcp
   
   
# Friewalldの設定を反映
  sudo firewall-cmd --reload
  sudo firewall-cmd --reload
<br>
<br>
SUSEの場合および上記のコマンドで接続できない場合は、以下の設定を行う。<br>
SUSEの場合および上記のコマンドで接続できない場合は、以下の設定を行う。<br>
<br>
<br>
まず、/usr/lib/firewalld/services/barrier.xmlファイルを作成する。<br>
まず、/usr/lib/firewalld/services/<任意のファイル名>.xmlファイルを作成する。<br>
(このファイルは不要の可能性があることに注意すること)<br>
(このファイルは不要の可能性があることに注意すること)<br>
  sudo vi /usr/lib/firewalld/services/barrier.xml
  sudo vi /usr/lib/firewalld/services/<任意のファイル名>.xml
<br>
<br>
  <syntaxhighlight lang="xml">
  <syntaxhighlight lang="xml">
415行目: 549行目:
<br>
<br>
次に、/usr/lib/firewalld/zones/libvirt.xmlファイルにおいて、<br>
次に、/usr/lib/firewalld/zones/libvirt.xmlファイルにおいて、<br>
<code></zone></code>タグの上部に<code><port port="24800" protocol="tcp"/></code>を追記する。<br>
<code></zone></code> タグの上部に <code><port port="24800" protocol="tcp"/></code> を追記する。<br>
  sudo nano /usr/lib/firewalld/zones/libvirt.xml
  sudo nano /usr/lib/firewalld/zones/libvirt.xml
<br>
<br>
434行目: 568行目:
  または
  または
  sudo shutdown -r now
  sudo shutdown -r now
<br>
<br><br>
 
== コンソールの使用 ==
== コンソールの使用 ==
  # Barrier Client
  # Barrier Client