3 ポイント 投稿者 GN⁺ 2024-02-12 | 1件のコメント | WhatsAppで共有
  • SimpleKVMは、1組のキーボード、マウス、モニターで複数のコンピューターを制御できるWindows向けプログラムで、高解像度・高リフレッシュレート対応KVMのコストを抑える代替手段です
  • ユーザーは各コンピューターをモニターに接続し、キーボードとマウスをUSB Switchに接続したうえで、いずれか1台のコンピューターでSimpleKVMを実行すればよいです
  • 切り替えはUSB Switchのボタンまたはホットキーで可能で、プログラムはUSBデバイスの接続・切断、またはホットキー入力を検知します
  • モニター入力の切り替えは、多くのモニターが対応するDDC/CIコマンドで処理され、マルチモニター構成にも対応します
  • ダウンロードはGitHubのreleasesセクションで提供されており、現在はWindows向けのみ提供されています

SimpleKVMが解決する課題

  • SimpleKVMは、1組のキーボード、マウス、モニターで複数のコンピューターを制御するためのプログラムです
  • 一般的なKVMは、特に高解像度高リフレッシュレートに対応する製品ほど高価になりがちです
  • SimpleKVMは、安価なUSB Switchと組み合わせて使うことで、数百ドルを費やさずに同様の構成を実現できるようにします

必要な構成

  • ユーザーは次の手順で構成します
    • コンピューターをモニターに接続します
    • マウスとキーボードをUSB Switchに接続します
    • コンピューターのうち1台でSimpleKVMを実行します
  • その後、USB Switchまたはホットキーでコンピューター間の切り替えが可能になります

仕組み

  • プログラムはUSBデバイスが接続または切断されるタイミングを検知します
  • ホットキー入力も切り替えトリガーとして使用できます
  • 切り替え時にモニターへDDC/CIコマンドを送り、入力ソースを変更します
  • DDC/CIは多くのモニターが対応している方式です

マルチモニターと実行環境

  • SimpleKVMはマルチモニターに対応しています
  • リリースはreleasesセクションから入手できます
  • 現在提供されているビルドはWindows向けです

USB Switchの例

スタートアップ設定と出典

  • 起動時に自動実行するには、設定ボタンをクリックしてRun at Startupにチェックを入れます
  • SimpleKVMはhaimgelのdisplay-switchプログラムに着想を得ています

1件のコメント

 
GN⁺ 2024-02-12
Hacker News の意見
  • 「自分も同じ結論に達した」という程度だが、自分の構成は少し複雑な代わりに、より良く安いと思う
    上記の方式はすべてのコンピューターにインストールする必要があるので自分には難しく、USB の切り替えに依存するため完全なリモートトリガーができない
    代わりに、モニター入力の切り替えは DDC コマンド、USB はボタン 1 つの 25 ドルの USB KVM、ボタン入力は 5〜15 ドルの AliExpress のマクロパッドで処理している
    Stream Deck のような完成品はボタン数個にしては 80 ドル以上と高く、安価なマクロパッドは同梱ソフトウェアの代わりに https://github.com/rOzzy1987/MacroPad のような GitHub プロジェクトでプログラムできる
    USB KVM のボタンは 16 ドルの FingerBot や 28 ドルの Switchbot に押させ、AHK がショートカットキーを監視して DDC コマンドと USB スイッチのボタンを一緒にトリガーする
    数秒の遅延はあるが、1 か所からだけ制御でき、完全なリモート実行も可能

    • みんな似た結論に達しているようだ。Windows と macOS で USB スイッチだけで自動化しようとして、誤った DDC 値やデバイスイベント検出などの問題にかなり遭遇した: https://nokappa.notion.site/Making-a-software-KVM-using-only...
      結局かなり不安定で、ほかのことがもっとぐちゃぐちゃだったのでほとんど諦めた
      マクロパッドはいいアイデアで、USB スイッチの置き場所を決めるのはいつも面倒だった
    • この構成には一般的な KVM スイッチより利点があり、面白いハックプロジェクトではあったのだろうが、価格だけ見れば AliExpress で 4 ポート 4K HDMI KVM と制御パッドを 29.25 ドルで買える
      米国への送料は知らないが、欧州への送料は 15 ドルだった
    • こういう構成が欲しいが、自分のモニターは十分な DDC コマンドをサポートしていない。おすすめできるモニターはあるだろうか?
    • 「上記の方式はすべてのコンピューターにインストールする必要がある」のが嫌だと言っていたが、この解決策も結局すべてのコンピューターに AHK スクリプトをインストールする必要があるのでは?
  • KVM を調べていて、結局 DDC が解法だという同じ結論に達した
    自分の場合は Windows 2 台とデュアルモニター構成で、CLI のある NirSoft ControlMyMonitor と Elgato Stream Deck を使っている
    一般的な KVM では 2 台のモニターが 1 台のコンピューターだけを表示するが、自分は A モニターには一方のコンピューター、B モニターには別のコンピューターを表示し、必要なら入れ替えたい
    縦置き/横置きモニターを併用し、マウスとキーボードはモニター構成とは独立して切り替えたい
    各コンピューターで Stream Deck ソフトウェアを実行し、Stream Deck は USB スイッチに接続している

    • Stream Deck と紐づいたバインディングまで全部うまく動くのか気になる
    • DDC は何の略?
  • 単純な USB スイッチャーもかなり高く、時々 Linux では動かないドライバーを要求することもあった
    そこで USB ハブとスイッチを備えた簡単な回路基板をさっと描いて、JLCPCB や PCBWay のような DIY 製造所に組み立てまで任せた
    2 対 1 スイッチ 1 個のものが 5 個で 25 ユーロで、回路設計の経験もなく、はんだ付けもしなかったが、完璧に動作する
    このソフトウェアとも相性がよさそうなので、一度試してみるかもしれない

    • そういうスイッチはすべてが物理的に行われるのでソフトウェアは不要で、Amazon で 20 ユーロくらいで買える
      カスタム製作より安いと思う
    • 設計をアクセスできる場所に上げてくれるとうれしい。KVM は安いと変な形で動かず、高いと動きはするが quirks があることが多かった
      接地と、異なる電位の グラウンドループ回避がかなり大きな部分になりそうだ
    • ここ数年で価格が少し上がったのは確かのようだ。自作製品にも市場があるかもしれない
      一部の USB スイッチャーが Linux でうまく動かないというのは興味深い
      単純な USB ハブなので別途ドライバーは不要だと思っていたが、https://www.aliexpress.com/item/1005006202631772.html のように PC 間ファイル転送やマウス共有などの高度な機能がある製品は、専用ソフトウェアとドライバーが必要な場合が多い
    • 2019 年に 13 ドルで https://www.amazon.com/gp/product/B01HV1N674 を買い、今でも OP が言及した display-switch と一緒に使っている
      可能な限り「賢くない」デバイスなので、レビューの 1 つによると抜き差ししすぎるとポートが少し不安定になることがあるらしいが、自分の 2 台の Dell P2419H モニターではまだ完璧に動作している
      すべてのケーブルが背面にあるのでこの製品を選んだし、OP の GitHub ページにあるリモコン付きモデルも良さそうだ
    • TA がリンクしたいくつかの製品は価格がかなり妥当だった
      似た構成を探しながらいくつか使って調べもしたが、ドライバーが必要な製品は 1 つもなかった
  • この用途には udev を使っている。USB スイッチが現れたら DDC コマンドを送る
    ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="1a40", ENV{ID_MODEL_ID}=="0101", RUN+="/usr/bin/ddcutil --sn ABCDEFGHI setvcp 60 0x0f"

  • 優れたKVM、特にLevel1Tech製品は、すべてのモニターを仮想的に常時接続された状態に保つため、マシンを行き来してもウィンドウ位置がそのまま残る
    クライアントPC側から見るとUSB/DisplayPortデバイスが消えたことがないので、デバイスを再接続する遅延もない
    周辺機器をドックに大量につないで、アップストリームのThunderboltだけを切り替えることもできるが、その方式はうまく動作しない
    粗悪なKVMは簡単で、優れたKVMは難しい
    https://www.store.level1techs.com/products/hardwareとは無関係

    • Level1TechのKVMを買ったが、EDIDエミュレーションには対応していなかった
      MacとLinuxボックス(Gnome)を行き来すると、Macはスリープし、Gnomeはデフォルトのモニター構成に戻ってウィンドウ位置を移動してしまう
      EDIDエミュレーション付きのDP 1.2 KVMはあるが、DP 1.4の利点を失うことになる
      FAQフォーラムにも載っている: https://forum.level1techs.com/t/official-l1techs-kvm-faq-ult...
    • 最近のDellモニターの多くには内蔵KVMとハブがある
      USBレシーバーを使うワイヤレス周辺機器と組み合わせるとケーブルレス構成になって便利で、ノートPCはケーブル1本を挿すだけですべて接続される
    • 昨年Level1Tech製品を買い、非常に高価だったが、個人的には価格に見合う価値があった
      仕事用PCと個人PCを1日に何度も行き来して使っており、Linux 2台で4K 60Hzと2K 144Hzのデュアルモニター構成として、これまで完璧に動作している
      USBオーディオ、マイク、4Kカメラ、プリンター、キーボードとマウスまでつないでいる
    • ウィンドウ位置が維持されないバグは、粗悪なウィンドウマネージャーでだけ発生する
      まともなウィンドウマネージャーなら、モニターが戻ってきたときにウィンドウを元の位置へ戻せるくらい賢い
    • Amazonで見つけた一般的なKVM https://www.amazon.com/gp/product/B088WGKFZHをとても快適に使っていたが、今は品切れのようで残念
      ソース切り替えの失敗は一度もなく、他の人が言っていた遅延はモニター自体のHDMIハンドシェイク過程だけだった
      もっと高価なTESmart https://www.amazon.com/gp/product/B08N494N7Xもあったが、Thunderboltドック https://www.amazon.com/gp/product/B08HR3T837とMBPの組み合わせで妙な互換性問題があり、使えなかった
      サポートにも問い合わせたが、原因は最後まで分からなかった
  • こうしたツールで注意すべき点は、DisplayPortでは通常、アクティブな入力に対してしかコマンドを許可しないこと
    一度別の入力に切り替えると、別のコンピューター側で実行しない限り戻ってこられず面倒
    一方HDMIは、アクティブ入力ではないポートにも通常DDCコマンドを許可する
    必ずそうでなければならないのかは分からないが、自分が使ったすべてのディスプレイではそうだった

  • ちょうど必要としていたプロジェクト。Thunderboltドックだけを切り替えることも可能なのか気になる
    例えばThunderbolt対応のコンピューターが4台あり、その間でUSB-Cを1本だけ切り替えるような形
    ハードウェアに影響が出るのが怖くて試してはいないが、この記事に触発されてThunderbolt KVMを探してみると、https://sabrent.com/products/sb-tb4khttps://www.reddit.com/r/Thunderbolt/comments/11gos6n/kvm_sw... のようなものがあった

    • それは期待しないほうがよさそう。Thunderboltは見た目だけUSB-Cで、たまたまUSBコネクター形状をしているPCIeと考えたほうがいい
    • 問題が起きる可能性が高そう。自分のThunderboltドックは、電源を入れたり切り替えたりするたびに起動時間のようなものがある
      遅延を受け入れられるなら、動作はするかもしれない
    • Thunderboltは要件がかなり具体的になりそうで、そのためスイッチも高価になる可能性が高い
  • 要するに、各コンピューターはモニターの各入力に自分のHDMIケーブルを挿す必要がある
    多くの人が考える本物のKVMではなく、モニターの入力選択ボタンを押さなくて済むようにする方式
    少なくとも1台は電源が入っていてWindowsを実行している必要があるが、おそらく1台だけでよさそう

    • Windowsを実行してプログラムを動かすコンピューターは1台でよい
      USBデバイスが挿入されたことを検知するとモニター入力をWindowsコンピューターに切り替え、USBデバイスが取り外されたことを検知するとLinuxコンピューターに切り替える
    • Linuxではddcutilで入力切り替えが可能なので、似たようなものを作るのは簡単
      すでにショートカットキーを押すとスクリプトを実行し、xrandrでモニターの回転を変えるような形で似た使い方をしている
  • ふたたびコンピューター1台の構成に戻るまでは、ケーブルを直接抜き差ししたり、READMEに出ている Ugreen USB スイッチを使ったりして、最終的には内蔵KVMモニターに落ち着いたけれど、それが一番よかった
    問題は、仕事とゲームで同じモニターを使いたい場合
    4Kや高リフレッシュレート対応のKVMスイッチは非常に高価で信頼性も低めなので、たいていはUSBスイッチを使い、モニター入力は手動で切り替えることになる
    ここのソフトウェアは「入力ソース切り替え」ボタンを押す手間を減らしてくれるが、Windows専用に見えるので、両方のマシンがどちらもWindowsでない限り、一方向の切り替えしかできず、戻るときは手動切り替えが必要になる
    ゲーム用途に適していて、高DPI・高リフレッシュレート・内蔵KVMを備えたモニターとしては Gigabyte M28U がある
    ボタン1つで入力ソースとUSB周辺機器が一緒に切り替わり、かなりうまく動作する
    M32Uもあるが、DPIはより低い

    • コンピューターが2台だけなら、SimpleKVMを片方でだけ実行してもよい
      USBデバイスが取り外されたこと、つまり別のコンピューターへ移ったことと、挿入されたこと、つまりこのコンピューターへ戻ってきたことを検知できるため
    • モニター側で切り替えられたほかのコンピューターが、ディスプレイがなくなったものとして検知するのか気になる
    • Gigabyte M27Uはパネルがより良く、高いDPIのおかげでmacOSでもずっと見やすい
  • 自分も似たようなものを自作し、USBスイッチやほかのハードウェアなしで動くようにした
    HDMI/USB-Cモニターには DDC コマンドを送り、Logi MXキーボードとマウスには HID++ バイトコードを送っている
    コードは共有するにはあまりに汚いが、自作したい人は、Logi Bolt Receiver、Logitech Unified Receiver、MX Keys Mini Bluetooth、MX Anywhere 3 Bluetoothに対して、各ホストへ切り替えるバイトシーケンスを送る形で構成すればよい

    • これについてさらに調べるには、どこを見るのがよいだろう? こうしたシーケンスがデバイスごとに違うのかも気になる
      現在の構成は Dell U2415 モニター2台と Linux x86_64 デスクトップで、Bluetoothとドングルの両方に対応するLogiの縦型マウスとATK(A.JAZZ)キーボードを使っている
      Raspberry Pi 5のBluetoothと2つのmicro-HDMIポートで、キーボード/モニター/マウスを純粋にソフトウェア方式で共有したく、ハードウェアKVMに大金を払いたくない