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

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

 
(同じ利用者による、間の12版が非表示)
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>


== Deskflow (旧 Synergy) ==
== Deskflow (旧 Synergy Core) ==
Deskflowは、Synergy3の無償の公式アップストリームプロジェクトある。<br>
Deskflowは、Synergy3の無償の公式アップストリームプロジェクトある。<br>
Deskflowプロジェクトは、誰もが協力できるコミュニティ主導の開発を育成するために設立されている。<br>
Deskflowプロジェクトは、誰もが協力できるコミュニティ主導の開発を育成するために設立されている。<br>
29行目: 29行目:
   
   
  # SUSE
  # SUSE
-
# Raspberry Pi OS / Mobian
  -
  -
<br>
<br>
37行目: 40行目:
<u>Qt 6.5以降、CMake 3.24以降、OpenSSL 3.0以降が必要となることに注意する。</u><br>
<u>Qt 6.5以降、CMake 3.24以降、OpenSSL 3.0以降が必要となることに注意する。</u><br>
<br>
<br>
<syntaxhighlight lang="text">
  # RHEL
  # RHEL
  sudo dnf install epel-release
  sudo dnf install epel-release
55行目: 59行目:
                     libei-devel cli11-devel tomlplusplus-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
                     qt6-base-devel qt6-core-devel qt6-widgets-devel qt6-network-devel qt6-dbus-devel qt6-linguist-devel qt6-tools-devel
# Raspberry Pi OS / Mobian
  apt install cmake build-essential ninja-build libglib2.0-dev libgtk-3-dev \
              libgdk-pixbuf-2.0-dev libnotify-dev libpugixml-dev libssl-dev \
              libei-dev libportal-dev libtomlplusplus-dev libcli11-dev      \
              xorg-dev libx11-dev libxtst-dev libxkbfile-dev                \
              qt6-base-dev qt6-tools-dev                                    \
              libgtest-dev libgmock-dev
</syntaxhighlight>
<br>
<br>
* 各バージョンのソースコードからインストールする場合
* 各バージョンのソースコードからインストールする場合
*: [https://github.com/deskflow/deskflow/releases DeskflowのGithub]からソースコードをダウンロードする。
*: [https://github.com/deskflow/deskflow/releases DeskflowのGithub]からソースコードをダウンロードする。
*: ダウンロードしたファイルを解凍する。
*: ダウンロードしたファイルを解凍する。
*: <code>tar xf deskflow-<バージョン>.tar.gz</code>
*: <syntaxhighlight lang="text">
*: <code>cd deskflow-<バージョン></code>
tar xf deskflow-<バージョン>.tar.gz
cd deskflow-<バージョン>
</syntaxhighlight>
*: <br>
*: <br>
*: Deskflowをビルドおよびインストールする。
*: Deskflowをビルドおよびインストールする。
*: <code>mkdir build && cd build</code>
*: <syntaxhighlight lang="text">
*: <code>cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<Deskflowのインストールディレクトリ> ..</code>
mkdir build && cd build
*: <code>make -j $(nproc) または cmake --build . -j $(nproc)</code>
*: <code>make install または cmake --install .</code>
cmake -DCMAKE_BUILD_TYPE=Release
<br>
      -DCMAKE_INSTALL_PREFIX=<Deskflowのインストールディレクトリ>
      ..
make -j $(nproc) または cmake --build . -j $(nproc)
make install または cmake --install .
</syntaxhighlight>
*: <br>
* <code>git clone</code>コマンドを使用する場合
* <code>git clone</code>コマンドを使用する場合
*: <code>git clone https://github.com/deskflow/deskflow.git</code>
*: <syntaxhighlight lang="text">
*: <code>cd deskflow</code>
git clone https://github.com/deskflow/deskflow.git
cd deskflow
</syntaxhighlight>
*: <br>
*: <br>
*: Deskflowをビルドおよびインストールする。
*: Deskflowをビルドおよびインストールする。
*: <code>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>
任意のディレクトリにインストールした場合、Deskflowの実行ファイルが存在するディレクトリに、以下に示すようなシェルスクリプトを作成する。<br>
任意のディレクトリにインストールした場合、Deskflowの実行ファイルが存在するディレクトリに、以下に示すようなシェルスクリプトを作成する。<br>
  vi /<Synergyの実行ファイルがあるディレクトリ>/bin/deskflow.sh
  vi /<Deskflowの実行ファイルがあるディレクトリ>/bin/deskflow.sh
<br>
<br>
  <syntaxhighlight lang="sh">
  <syntaxhighlight lang="sh">
109行目: 135行目:
インストールした後、Deskflowの設定を行う。<br>
インストールした後、Deskflowの設定を行う。<br>
<br>
<br>
==== Deskflowのアンインストール ====
==== Deskflowのアンインストール ====
* Windowsの場合
* Windowsの場合
114行目: 141行目:
*# [アプリを終了する必要があります]メッセージ、および、アプリを自動的に終了させるかどうかを尋ねられるので、これを選択する。
*# [アプリを終了する必要があります]メッセージ、および、アプリを自動的に終了させるかどうかを尋ねられるので、これを選択する。
*# 次に、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
133行目: 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>
192行目: 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>


396行目: 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">
419行目: 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>