CLI経由でDellのディスプレイの入力ソースを切り替える方法
まず自分のモニタのDisplay Numberを探す
code:bash
$ sudo ddcutil detect
Display 1
I2C bus: /dev/i2c-7
EDID synopsis:
Mfg id: DEL
Model: DELL U4021QW
Product code: 16901
Serial number: 4KFVWN3
Binary serial number: 892941900 (0x3539364c)
Manufacture year: 2022, Week: 29
VCP version: 2.1
I2C busの/dev/i2c-7なので7番と覚えておく
code:bash
$ sudo ddcutil getvcp all
VCP code 0x02 (New control value ): One or more new control values have been saved (0x02)
VCP code 0x0b (Color temperature increment ): Invalid value: 0
VCP code 0x0c (Color temperature request ): 3000 + 2 * (feature 0B color temp increment) degree(s) Kelvin
VCP code 0x0e (Clock ): current value = 50, max value = 100
VCP code 0x10 (Brightness ): current value = 75, max value = 100
VCP code 0x12 (Contrast ): current value = 75, max value = 100
VCP code 0x14 (Select color preset ): 6500 K (sl=0x05)
VCP code 0x16 (Video gain: Red ): current value = 100, max value = 100
VCP code 0x18 (Video gain: Green ): current value = 100, max value = 100
VCP code 0x1a (Video gain: Blue ): current value = 100, max value = 100
VCP code 0x1e (Auto setup ): Auto setup not active (sl=0x00)
VCP code 0x20 (Horizontal Position (Phase) ): current value = 0, max value = 100
VCP code 0x30 (Vertical Position (Phase) ): current value = 0, max value = 100
VCP code 0x3e (Clock phase ): current value = 50, max value = 100
VCP code 0x52 (Active control ): Value: 0x12
VCP code 0x60 (Input Source ): Invalid value (sl=0x19)
VCP code 0x62 (Audio speaker volume ): current value = 0, max value = 100
VCP code 0x6c (Video black level: Red ): current value = 50, max value = 255
VCP code 0x6e (Video black level: Green ): current value = 50, max value = 255
VCP code 0x70 (Video black level: Blue ): current value = 50, max value = 255
VCP code 0xac (Horizontal frequency ): 2228 hz
VCP code 0xae (Vertical frequency ): 59.99 hz
VCP code 0xb2 (Flat panel sub-pixel layout ): Red/Green/Blue vertical stripe (sl=0x01)
VCP code 0xb4 (Source Timing Mode ): mh=0x00, ml=0x02, sh=0x00, sl=0x01
VCP code 0xb6 (Display technology type ): LCD (active matrix) (sl=0x03)
VCP code 0xc0 (Display usage time ): Usage time (hours) = 8443 (0x0020fb) mh=0xff, ml=0xff, sh=0x20, sl=0xfb
VCP code 0xc6 (Application enable key ): 0x45cc
VCP code 0xc8 (Display controller type ): Mfg: Mstar (sl=0x05), controller number: mh=0x00, ml=0x00, sh=0x56
VCP code 0xc9 (Display firmware level ): 65.5
VCP code 0xca (OSD ): OSD Enabled (sl=0x02)
VCP code 0xcc (OSD Language ): Japanese (sl=0x06)
VCP code 0xd6 (Power mode ): DPM: On, DPMS: Off (sl=0x01)
VCP code 0xdc (Display Mode ): Movie (sl=0x03)
VCP code 0xde (Scratch Pad ): SL: 0x00 , SH: 0x00
VCP code 0xdf (VCP Version ): 2.1
Input Source の 0x60 という値を覚えておく. これがInput Sourceを変更する際に設定するFeature Codeとなる
次に設定する値を探す
code:bash
$ sudo ddcutil capabilities | grep -A7 "Input Source"
Feature: 60 (Input Source)
Values:
19: Unrecognized value
0f: DisplayPort-1
11: HDMI-1
12: HDMI-2
Feature: 62 (Audio speaker volume)
Feature: AC (Horizontal frequency)
このValuesが実際に設定する値になる
DELL U4021QWはUSB-C/Thunderboltが19. DP1が0f, HDMI1が11, HDMI-2が12の模様
なのでこれをDP1に入力を切り替えたい場合は
code:bash
sudo ddcutil -b 7 setvcp 0x60 0x0f
となる