Skip to content

Instantly share code, notes, and snippets.

@nebriv
Last active June 22, 2024 16:00
Show Gist options
  • Save nebriv/cb934a3b702346c5988f2aba5ee39f0d to your computer and use it in GitHub Desktop.
Save nebriv/cb934a3b702346c5988f2aba5ee39f0d to your computer and use it in GitHub Desktop.
Dell Display Manager 2.0 command line documentation

Dell Display Manager 2.0 Command Line

Decompiled DLL with ILSpy to identify various commands.

Most commands can be found in DDM2._0_UX.CmdBackground.cmdService_DoWork

Write commands can be prefixed with int:command to specify which monitor to send the command to.

.\DDM.exe /0:writebrightnesslevel 50

Read command output is only shown in the debug console.

Debugging Console

Used to show the output of various read commands

.\DDM.exe /console start

Commands

.\DDM.exe /console start Opens DDM Console

.\DDM.exe /readbrightnesslevel Reads the monitor brightness level

.\DDM.exe /writebrightnesslevel Sets the monitor brightness level

.\DDM.exe /readcontrastlevel Reads the monitor contrast level

.\DDM.exe /writecontrastlevel Sets the monitor contrast level

.\DDM.exe /readcapabilities Read monitor capabilities (in hex)

.\DDM.exe /readsupportedcontrols Read monitor supported controls (in hex)

.\DDM.exe /writecolorpreset Write color presets

.\DDM.exe /readcolorpreset Read color presets

.\DDM.exe /readorientation Read monitor orientation

.\DDM.exe /writeorientation Sets monitor orientation

.\DDM.exe /readmonitoractivehours Read monitor active hours

.\DDM.exe /writeactiveinput

.\DDM.exe /readactiveinput

.\DDM.exe /writepower

.\DDM.exe /writeosdlanguage

.\DDM.exe /osd

.\DDM.exe /readedid

.\DDM.exe /writeuc

.\DDM.exe /readmax

.\DDM.exe /readprivacy

.\DDM.exe /writeprivacy

.\DDM.exe /readfirmwareversion

.\DDM.exe /writevolume

.\DDM.exe /readvolume

.\DDM.exe /autocolorpreset

.\DDM.exe /swapvideo

.\DDM.exe /swapusb

.\DDM.exe /writesubinput

.\DDM.exe /writepxpmode

.\DDM.exe /writepxp

.\DDM.exe /readcontrol

.\DDM.exe /increasecontrol

.\DDM.exe /decreasecontrol

.\DDM.exe /writecontrol

.\DDM.exe /readpossible

.\DDM.exe /autosetup

.\DDM.exe /readmanufactureddate

.\DDM.exe /writemonitorpower

.\DDM.exe /readdisplaymode

.\DDM.exe /writeoptimalresolution

.\DDM.exe /readtiming

.\DDM.exe /readassetattributes

.\DDM.exe /log

.\DDM.exe /savediagnosticreport

.\DDM.exe /assetreport

.\DDM.exe /inventory

.\DDM.exe /surveyonly

.\DDM.exe /readdecodededid

.\DDM.exe /countmonitorsci

.\DDM.exe /monitornumber OR countmonitors

.\DDM.exe /usbpassthrough

.\DDM.exe /lockupdate

.\DDM.exe /noupdate

.\DDM.exe /screennotification

.\DDM.exe /lockrorate

.\DDM.exe /autostartup

.\DDM.exe /powernap

.\DDM.exe /colormanagement

.\DDM.exe /writeapplanguage

.\DDM.exe /telemetry

.\DDM.exe /writeealayout

.\DDM.exe /writeimportpermission

.\DDM.exe /displaymodel

.\DDM.exe /writeloglevel

.\DDM.exe /liveupdate") && ApplicationStartUp.Ota != null)

.\DDM.exe /rescan to refresh the connected devices -Thanks @rtxbae!

Some examples of using the utility on MacOS to enable picture by picture, thanks @sepl2604!

/Applications/DDPM/DDPM.app/Contents/MacOS/DDPM /writepxp pbp-2h-fill USB-C HDMI1 Activate 50-50 PBP

/Applications/DDPM/DDPM.app/Contents/MacOS/DDPM /writepxp off Turn off PBP

@sepl2604
Copy link

This is awesome! Thank you very much. Got a U3824DW today and currently switch between PBP and off is working, but each command takes 12 sec to complete on my Mac M1 Pro.

Activate 50-50 PBP
/Applications/DDPM/DDPM.app/Contents/MacOS/DDPM /writepxp pbp-2h-fill USB-C HDMI1

Turn off PBP
/Applications/DDPM/DDPM.app/Contents/MacOS/DDPM /writepxp off

@vrij
Copy link

vrij commented Dec 14, 2023

EDIT: Got it! /Applications/DDPM/DDPM /WritePxP pbp-2h-fill. The documentation 👎

Hi @potatowave , did you figure out a way to use this command to auto-flip the two inputs when enabling PBP?

The only way I found to do this would be to use one of the pxp commands, and then \SwapVideo.
Though there needs to be a delay between the two, making this solution rather slow.

@potatowave
Copy link

potatowave commented Dec 14, 2023

I got fed up with the slowness of DDPM and switched to using DDC directly which is much, much faster.

I took this repo: https://github.com/waydabber/m1ddc and made some modifications. This will be useful if you're using an M1 mac. It looks like it's been updated to support some of the functions I wanted but these addresses will be helpful if you wish to make your own fork:

#define LUMINANCE 0x10
#define CONTRAST 0x12
#define VOLUME 0x62
#define MUTE 0x8D
#define PBP 0xE9
#define SWAP_USB 0xE7
#define SWAP_INPUT 0xE5
#define INPUT 0x60
#define SUB_INPUT 0xE8
#define INPUT_ALT 0xF4 // alternate address, used for LG exclusively?
#define STANDBY 0xD6

@pasqualesimonetti
Copy link

Is it possible to change the display's number?

The display number is "wrong" in DDPM
Screenshot 2024-03-25 alle 15 52 37

In Mac OS (and also on Windows DPPM) is "correct"
Screenshot 2024-03-25 alle 15 53 02

@elgrunt0
Copy link

For those who come across this gist looking for a way to disable automatic updates, the commands needed are:

.\ddm.exe /noupdate on to disable updates
.\ddm.exe /noupdate off to enable updates

@GitHubTW
Copy link

Ben, thank you for this information.

Does anyone know / understand, why the command using vbs (see left in screenshot) does not work?
The same command using bat (see right in screenshot) works.

Thx!
Thomas

grafik

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment