# Internal KVM Switch FastAPI dashboard and polling service for Alienware-only KVM switching. ## Trigger Logic The app targets Alienware AW3423DWF for switching and uses Samsung as trigger-only. Monitor filtering: - Alienware target monitor: description contains `AW3423DWF` - Samsung trigger monitor: Samsung-only descriptions (`SAM...` / `SAMSUNG`) - Other non-Alienware DDC monitors are ignored for trigger selection Configure only one value per machine: - this device Alienware target port: `DP1`, `DP2`, or `HDMI` - optional auxiliary trigger monitor: selected in UI; if not set, auto-detection is used Samsung trigger input codes (for diagnostics only): - `DP1` -> `15` - `DP2` -> `19` (or `16` on some setups) - `HDMI` -> `17` - If the auxiliary external monitor is present, the app checks Alienware current input and enforces the configured `device_port` via `monitorcontrol`. Retry behavior: - Only attempts switching while the Samsung screen is connected - After each switch attempt, waits `5` seconds and rechecks - Tries at most `3` times per Samsung-connected session - After success, it will not try again until the Samsung screen disconnects and reconnects ## Run ```powershell uv run kvm-switch ``` The dashboard is served at `http://localhost:4000`. ## Test ```powershell uv run pytest -q ``` ## Diagnostic Script Use this to inspect connected DDC/CI monitors and current input values: ```powershell uv run monitorcontrol_main.py ``` ## Autostart ### Recommended: one-command installer From the project folder, run: ```powershell powershell -ExecutionPolicy Bypass -File .\install_autostart.ps1 ``` This creates or updates a Startup shortcut for the current Windows user and points it to this folder's `start_kvm_switch_background.vbs`. No hardcoded `C:\Users\...` path is required, so it works across tower/laptop deployments. ### Manual option: Startup folder 1. Press `Win + R` 2. Run `shell:startup` 3. Create a shortcut to this repo's `start_kvm_switch_background.vbs` The launcher resolves its own folder dynamically, so the project can live in different user directories. ### Cleaner option: Task Scheduler Use Task Scheduler if you want it to start automatically at logon with better control. Program/script: ```text wscript.exe ``` Arguments: ```text "\\start_kvm_switch_background.vbs" ``` Set the trigger to `At log on`. Optional: enable `Hidden` in task settings.