From 6f30d59b80afde74a161ab3d792f0378efc3a3a2 Mon Sep 17 00:00:00 2001 From: M6 <56744133+emmsixx@users.noreply.github.com> Date: Mon, 22 Sep 2025 19:54:45 -0400 Subject: [PATCH 1/2] Fix typos :P Corrected typos and improved clarity in README. --- README.md | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 92c0b63..d29732f 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ A Rust-based KVM switch utility for BetterDisplay that utilizes the [`betterdisp ## How it works -This works by using the BetterDisplay app and CLI to issues commands to your monitor when a configured USB devices is connected/disconnected via the `betterdisplay-kvm` rust program. This uses the [DDC/CI](https://en.wikipedia.org/wiki/Display_Data_Channel) protocols to send commands directly to your monitor. +This works by using the BetterDisplay app and CLI to issue commands to your monitor when a configured USB device is connected or disconnected via the `betterdisplay-kvm` Rust program. It uses the [DDC/CI](https://en.wikipedia.org/wiki/Display_Data_Channel) protocol to send commands directly to your monitor. -With the single press of a button you can switch over to you gaming PC or macBook seamlessly. +With a single press of a button, you can switch to your gaming PC or MacBook seamlessly. -Diagram +## Diagram ![diagram](./betterdisplay-kvm-diagram.png) @@ -19,36 +19,35 @@ Because they don’t support high refresh rates without spending an ungodly amou ## Config ```toml -# the USB device you'd like watch for +# the USB device you'd like to watch for usb_device_id = "046d:c547" -# id that betterdisplaycli uses to configure input +# ID that betterdisplaycli uses to configure input system_one_input = 15 -# id that betterdisplaycli uses to configure input +# ID that betterdisplaycli uses to configure input system_two_input = 18 # log level log_level = "debug" -# if you use an lg monitor that doesnt follow the spec this might work if you enable it +# if you use an LG monitor that doesn't follow the spec, this might work if you enable it ddc_alt = false - ``` ## Development -``` +```bash RUST_LOG=debug cargo watch -x run ``` ## Install -Run the `./install.sh` and it will install a LaunchAgent and start the program. +Run `./install.sh`, and it will install a LaunchAgent and start the program. ## Uninstall -Run the `./uninstall.sh` and it remove the program and clean everything up. +Run `./uninstall.sh`, and it will remove the program and clean everything up. ### Roadmap -- [x] add a config system so others can use it -- [x] add some setup guide for adding a launch agent -- [x] fix the hardcoded bin to betterdisplaycli from homebrew -- [x] publish it to crates.io so you can just install from there -- [ ] codesign the bin for people wanting to use outside of homebrew +- [x] Add a config system so others can use it +- [x] Add a setup guide for adding a launch agent +- [x] Fix the hardcoded bin path to `betterdisplaycli` from Homebrew +- [x] Publish it to crates.io so you can install it from there +- [ ] Codesign the binary for people who want to use it outside of Homebrew From b00644f721d9eede4edf475d3c52803073abdce2 Mon Sep 17 00:00:00 2001 From: M6 <56744133+emmsixx@users.noreply.github.com> Date: Mon, 22 Sep 2025 19:55:51 -0400 Subject: [PATCH 2/2] Add Bill of Materials section to README Added a Bill of Materials section with a USB switch link. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index d29732f..e792684 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ A Rust-based KVM switch utility for BetterDisplay that utilizes the [`betterdisplaycli`](https://github.com/waydabber/betterdisplaycli). +## Bill of Materials (BOM) + +- USB peripheral switch (USB-only): https://a.co/d/dRZjOcX + ## How it works This works by using the BetterDisplay app and CLI to issue commands to your monitor when a configured USB device is connected or disconnected via the `betterdisplay-kvm` Rust program. It uses the [DDC/CI](https://en.wikipedia.org/wiki/Display_Data_Channel) protocol to send commands directly to your monitor.