Files
infrastructure/scripts/kvm/README.md
XTRM-Unraid 663542ff17
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Simplify KVM scripts - monitor only, manual peripheral switch
2026-02-01 16:42:04 +02:00

2.1 KiB

KVM Switch: Mac ↔ Nobara

Simple monitor switching via DDC/CI. Peripherals switched manually via Easy-Switch button.

Hardware

  • Monitor: Dell U3821DW (USB-C to Mac, HDMI 2 to Nobara)
  • Keyboard: Logitech MX Keys S
  • Mouse: Logitech MX Master 4
  • Bolt #1: Connected to Nobara (Channel 2)
  • Bolt #2: Connected to Mac via monitor USB hub (Channel 3)

Channel Setup

Channel Connection Computer
2 Bolt #1 Nobara
3 Bolt #2 Mac

Mac Setup

Install m1ddc

brew install m1ddc

Copy script

mkdir -p ~/scripts
cp to_nobara.sh ~/scripts/
chmod +x ~/scripts/to_nobara.sh

Usage

~/scripts/to_nobara.sh
# Then press Easy-Switch on keyboard/mouse to Channel 2

Nobara Setup

Install ddcutil

sudo dnf install ddcutil
sudo usermod -aG i2c $USER
# Reboot required

Copy script

mkdir -p ~/scripts
cp to_mac.sh ~/scripts/
chmod +x ~/scripts/to_mac.sh

Set keyboard shortcut (GNOME)

# Add custom shortcut for Ctrl+Shift+Up
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/kvm/']"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/kvm/ name 'KVM to Mac'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/kvm/ command '/home/$USER/scripts/to_mac.sh'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/kvm/ binding '<Shift><Control>Up'

Usage

~/scripts/to_mac.sh
# Then press Easy-Switch on keyboard/mouse to Channel 3

DDC Input Codes (Dell U3821DW)

Input Code
HDMI 2 18
USB-C 27

Troubleshooting

Monitor doesn't switch

  • Enable DDC/CI: Monitor Menu → Others → DDC/CI → On
  • Linux: Ensure user in i2c group, reboot after adding