📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の17版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
Synergy / | Synergy 1 / 3 または InputLeapは、ネットワークを介して複数のコンピュータ間でマウスとキーボードを共有するためのソフトウェア (Input Device Sharing Software) である。<br> | ||
<br> | <br> | ||
これは、以下に示すような特徴がある。<br> | これは、以下に示すような特徴がある。<br> | ||
| 18行目: | 18行目: | ||
<br><br> | <br><br> | ||
== Synergy == | == Deskflow (旧 Synergy Core) == | ||
Deskflowは、Synergy3の無償の公式アップストリームプロジェクトある。<br> | |||
Deskflowプロジェクトは、誰もが協力できるコミュニティ主導の開発を育成するために設立されている。<br> | |||
<br> | <br> | ||
==== パッケージ管理システムからインストール | Deskflowを使用することにより、Windows、MacOS、Linux上の複数のPC間で1つのマウスとキーボードを共有することが可能である。(映像出力なしのソフトウェアKVM)<br> | ||
<br> | |||
==== パッケージ管理システムからインストール ==== | |||
# RHEL | |||
- | |||
# SUSE | |||
- | |||
# Raspberry Pi OS / Mobian | |||
- | |||
<br> | <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 | sudo dnf install epel-release | ||
sudo dnf install | sudo dnf config-manager --set-enabled crb | ||
sudo dnf install cmake make ninja-build gcc-c++ gtk3-devel \ | |||
glib2-devel gdk-pixbuf2-devel libcurl-devel libnotify-devel libei-devel \ | |||
libportal-devel openssl-devel libXtst-devel libxkbfile-devel pugixml-devel \ | |||
qt6-qtbase-devel qt6-qttools-devel \ | |||
gtest-devel gmock-devel \ | |||
qt6-qtbase-devel qt6- | 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 \ | ||
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 | |||
# 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/ | *: [https://github.com/deskflow/deskflow/releases DeskflowのGithub]からソースコードをダウンロードする。 | ||
*: ダウンロードしたファイルを解凍する。 | *: ダウンロードしたファイルを解凍する。 | ||
*: < | *: <syntaxhighlight lang="text"> | ||
tar xf deskflow-<バージョン>.tar.gz | |||
cd deskflow-<バージョン> | |||
</syntaxhighlight> | |||
*: <br> | *: <br> | ||
*: | *: Deskflowをビルドおよびインストールする。 | ||
*: < | *: <syntaxhighlight lang="text"> | ||
mkdir build && cd build | |||
cmake -DCMAKE_BUILD_TYPE=Release | |||
-DCMAKE_INSTALL_PREFIX=<Deskflowのインストールディレクトリ> | |||
.. | |||
make -j $(nproc) または cmake --build . -j $(nproc) | |||
make install または cmake --install . | |||
</syntaxhighlight> | |||
*: <br> | *: <br> | ||
* <code>git clone</code>コマンドを使用する場合 | * <code>git clone</code>コマンドを使用する場合 | ||
*: < | *: <syntaxhighlight lang="text"> | ||
git clone https://github.com/deskflow/deskflow.git | |||
cd deskflow | |||
</syntaxhighlight> | |||
*: <br> | *: <br> | ||
*: | *: Deskflowをビルドおよびインストールする。 | ||
*: < | *: <syntaxhighlight lang="text"> | ||
mkdir build && cd build | |||
cmake -DCMAKE_BUILD_TYPE=Release | |||
-DCMAKE_INSTALL_PREFIX=<Synergyのインストールディレクトリ> | |||
.. | |||
make -j $(nproc) または cmake --build . -j $(nproc) | |||
make install または cmake --install . | |||
</syntaxhighlight> | |||
<br> | <br> | ||
任意のディレクトリにインストールした場合、Deskflowの実行ファイルが存在するディレクトリに、以下に示すようなシェルスクリプトを作成する。<br> | |||
vi /< | vi /<Deskflowの実行ファイルがあるディレクトリ>/bin/deskflow.sh | ||
<br> | <br> | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
# /< | # /<Deskflowの実行ファイルがあるディレクトリ>/bin/deskflow.shファイル | ||
#!/usr/bin/env sh | #!/usr/bin/env sh | ||
appname=" | 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 | # Run Deskflow binary | ||
"${dirname}/${appname}" "$@" | "${dirname}/${appname}" "$@" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
Windowsの場合は、Githubにあるインストーラをダウンロードしてインストールする。<br> | Windowsの場合は、Githubにあるインストーラをダウンロードしてインストールする。<br> | ||
インストールした後、Deskflowの設定を行う。<br> | |||
<br> | <br> | ||
==== | |||
==== Deskflowのアンインストール ==== | |||
* Windowsの場合 | * Windowsの場合 | ||
*# [プログラムの追加と削除](または[アプリと機能]) | *# [プログラムの追加と削除](または[アプリと機能])で、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行目: | ||
== ファイヤーウォールの設定 == | == ファイヤーウォールの設定 == | ||
マウス・キーボード共有ソフトウェアにおいて、<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/ | まず、/usr/lib/firewalld/services/<任意のファイル名>.xmlファイルを作成する。<br> | ||
(このファイルは不要の可能性があることに注意すること)<br> | (このファイルは不要の可能性があることに注意すること)<br> | ||
sudo vi /usr/lib/firewalld/services/ | 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 | ||