https://github.com/waydabber/applesiliconddc
DDC Library for Apple Silicon Macs
https://github.com/waydabber/applesiliconddc
apple arm arm64 control ddc display library mac macos mccs silicon vcp
Last synced: about 1 year ago
JSON representation
DDC Library for Apple Silicon Macs
- Host: GitHub
- URL: https://github.com/waydabber/applesiliconddc
- Owner: waydabber
- License: mit
- Created: 2021-11-06T18:46:39.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-02-19T20:34:31.000Z (over 1 year ago)
- Last Synced: 2025-04-14T08:05:10.674Z (about 1 year ago)
- Topics: apple, arm, arm64, control, ddc, display, library, mac, macos, mccs, silicon, vcp
- Language: Swift
- Homepage:
- Size: 43 KB
- Stars: 26
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AppleSiliconDDC
DDC Library for Apple Silicon Macs + ASDDC cli
## Usage - library
See example `ASDDC` code.
For sample implementation take a look at the source code of [MonitorControl](https://github.com/MonitorControl/MonitorControl) (as `Arm64DDC.swift` in the project)
Please mention this repo publicly if used. :)
## Usage - CLI
**Warning**: This CLI is for DDC/CI (protocol) and not for MCCS (command set) and some displays only partially adhere to MCCS (e.g. store unexpected data in MH/SH or invalid in ML). It's outside the scope of this program to interpret/correct it. Only `--verify-single` (or `--noverify`) can be used to bypass such issues.
### Building
```bash
swift build
./.build/arm64-apple-macosx/debug/ASDDC --help
```
### CLI syntax
`ASDDC --help`
```
OVERVIEW: AppleSiliconDDC
USAGE: asddc
OPTIONS:
-h, --help Show help information.
SUBCOMMANDS:
detect (default) Detect connected display.
getvcp Read value for given VCP.
setvcp Sets value for given VCP.
capabilities Qeuery all VCPs.
See 'asddc help ' for detailed help.
```
`ASDDC detect --help`
```
OVERVIEW: Detect connected display.
USAGE: asddc detect
OPTIONS:
-h, --help Show help information.
```
`ASDDC getvcp --help`
```
OVERVIEW: Read value for given VCP.
USAGE: asddc getvcp [--terse] [--sn ] [--display ] [--edid ]
ARGUMENTS:
Raw VCP code (decimal or hex prefixed with 0x or x)
OPTIONS:
--terse Terse output (similar to ddcutil --terse)
-n, --sn Alphanumeric serial number of target device. If omitted, first working display will be tried.
-d, --display, --dis
ioDisplayLocation of target device. If omitted, first working display will be tried.
-e, --edid EDID of target device. If omitted, first working display will be tried.
-h, --help Show help information.
```
`ASDDC setvcp --help`
```
OVERVIEW: Sets value for given VCP.
USAGE: asddc setvcp [--noverify] [--verify-single] [--terse] [--sn ] [--display ] [--edid ]
ARGUMENTS:
Raw VCP code (decimal or hex prefixed with 0x or x)
Raw VCP value (decimal or hex prefixed with 0x or x)
OPTIONS:
--noverify Do not read VCP value after setting it
--verify-single Read VCP value after setting it, but only check lower byte
--terse Terse output (similar to ddcutil --terse)
-n, --sn Alphanumeric serial number of target device. If omitted, first working display will be tried.
-d, --display, --dis
ioDisplayLocation of target device. If omitted, first working display will be tried.
-e, --edid EDID of target device. If omitted, first working display will be tried.
-h, --help Show help information.
```
`ASDDC capabilities --help`
```
OVERVIEW: Qeuery all VCPs.
USAGE: asddc capabilities [--terse] [--sn ] [--display ] [--edid ]
OPTIONS:
--terse Terse output (similar to ddcutil --terse)
-n, --sn Alphanumeric serial number of target device. If omitted, first working display will be tried.
-d, --display, --dis
ioDisplayLocation of target device. If omitted, first working display will be tried.
-e, --edid EDID of target device. If omitted, first working display will be tried.
-h, --help Show help information.
```