22 ポイント 投稿者 xguru 14 시간 전 | 8件のコメント | WhatsAppで共有
  • DDC/CI プロトコルでモニターの入力ソース(DisplayPort、HDMI、USB-C など)をコマンドラインから切り替えるツールで、Windows/macOS/Linux のすべてをサポート
  • 名前/インデックスの後ろに =入力ソース を付けて入力ソースを直接指定可能
    • monitor-input Dell=dp1 → "Dell" を含むモニターをすべて DisplayPort1 に設定
    • monitor-input 0=usbc1 → 最初のモニターを USB-C1 に設定
  • 引数なしで実行すると、接続されたすべてのモニター一覧を出力し、各項目に名前/現在の Input Source/Backend フィールドを表示
  • 名前の一部または インデックス(数字) で特定のモニターを検索/照会可能
    • monitor-input Dell は名前に "Dell" を含むモニターをすべて列挙し、monitor-input 2 はインデックス 2 のモニターを照会
  • 入力ソースに数字を入れることで、非標準の ベンダー固有(vendor-specific) 入力ソースにも対応
    • monitor-input U2723=15 P3223=17
  • カンマ(,)で 2 つ以上のソースを登録し、現在の状態に応じて順番に切り替える トグル/サイクル機能 をサポート
    • P3223=hdmi1,usbc2 → HDMI1 と USBC2 の間でトグルし、hdmi1,usbc2,dp1 のように 3 つ以上の循環も可能
  • マルチモニターのトグル機能: 複数のモニターを同時に切り替える際、最初のモニターの現在の入力ソース を基準に残りを合わせ、入力ソースの一貫性を維持
    • monitor-input U2723=dp1,usbc2 P3223=hdmi1,usbc2 で、最初のモニター U2723 の入力ソースが DisplayPort1 なら UsbC2 に変更
    • 最初のモニターがリストの 2 番目のソースに変わると、以降のモニターもそれぞれのリストの 2 番目のソース に変更される(例: P3223UsbC2
  • Windows では -F winapp オプションにより、コンソールウィンドウが表示されない サブシステム版(monitor-inputw.exe) を提供し、エラーはトースト通知で表示
  • コマンドライン実行だけでなく、ライブラリ(as library) 形式でも公開されており、他の Rust コードから直接呼び出し可能

8件のコメント

 
yshrust 14 시간 전

私はDELLモニター2台でMac MiniとWindowsノートPCを一緒に使っています。

Dell 1はMac Miniのみに接続してあり、

Dell 2にはMac MiniとWindowsノートPCの両方を接続してあります。

WindowsにDell Display and Peripheral Managerをインストールし、ホットキー(Ctrl + Space)を登録して、必要なときにDell 2の画面をMacとWindowsで切り替えながら使っています。

ご紹介いただいたツールも便利そうなので、近いうちに一度試してみようと思います!

 

私はモニター1台で Windows と Mac を行き来して使っているのですが、

DELL U4025QW モニターは入力ソースを切り替えるワンショットキーがなく、メニューから探して押さないといけないので、これを使ってスクリプト化して使っています。

私は Windows は dp1 に挿していて、Mac は usbc1 に挿して使っているので、

Mac では .zshrcalias mon='monitor-input 0=dp1'

Windows では notepad $PROFILE を開いて、次の function mon { monitor-input 0=usbc1 } を追加

こうしておくと、Windows/Mac のシェルで mon と打つだけで画面が切り替わります。

とても満足して使っているので、紹介してみます。

 
newdps 12 시간 전

あ、こんなことができるとは知りませんでした。良いTipsありがとうございます。

 
freedomzero 14 시간 전

わあ、私とまったく同じセットアップですね。毎回物理キーを押すのが面倒だったので、ありがたく使わせていただきます…

 
daydreamblend 10 시간 전

私はモニター・キーボード・マウスが1組ずつある一方で接続したい機器が3台あるので、Raspberry Piにドングルを挿しておき、ほかの機器にはESP32を付けてWiFiで迂回する方式で使っています。このときキーボードとマウスの入力を切り替えるのに合わせてモニターも一緒に切り替えられるようにしようと苦労したのですが、これを前もって知っていればもっと楽だったかもしれませんね。良い記事をありがとうございます。

 
loblue 13 시간 전

私のUbuntu 24.04では動かないですね……しょんぼり……

 

libudev をインストールする必要があるとは書いてありましたが、それをやってもだめなんですか?

 
loblue 10 시간 전

$ sudo apt install libudev-dev
パッケージ libudev-dev はすでに最新バージョンです (255.4-1ubuntu8.16)。
$ sudo apt install librust-udev-dev
パッケージ librust-udev-dev はすでに最新バージョンです (0.8.0-1)。
$ monitor-input
Error: No display monitors found for "".
はい、DisplayPort と HDMI の2つを接続しているのですが、認識できないようです。
深掘りするのは面倒だったので、ダメだなと思って終わりにしました。