skip to content
Posts · November 2026

Setup


The Everything Setup

My desktop setup is built around a simple idea: two computers, one workspace, shared peripherals.

It combines a desktop PC running Linux and Windows with a Windows work laptop. A KVM switch connects both machines to the same monitors and peripherals, allowing me to switch between environments without rearranging cables or duplicating equipment.

The setup also integrates dedicated networking, an external audio interface and an electric guitar rig.

1. Compute and networking

The desktop PC and work laptop are the two primary hosts.

The desktop connects directly to an Ethernet switch, while the KVM also has a network connection. The switch uplinks to the router, providing network connectivity to the workspace.

flowchart TB
ISP["Network Provider"] <--> ROUTER["Router"]
ROUTER <--> SWITCH["8-Port Ethernet Switch"]
subgraph HOSTS["COMPUTE HOSTS"]
direction LR
PC["Desktop PC<br/>Linux / Windows"]
LAPTOP["Work Laptop<br/>Windows"]
end
SWITCH <--> PC
SWITCH <--> KVM["KVM Switch"]
LAPTOP <--> KVM
classDef host fill:#dce9ff,stroke:#3465a4,color:#172b4d
classDef network fill:#e4fcd6,stroke:#7a7a43,color:#163316
classDef switch fill:#fff0c2,stroke:#b58a20,color:#493600
class PC,LAPTOP host
class ROUTER,ISP network
class SWITCH,KVM switch

2. KVM, video and shared peripherals

The KVM is the central component of the workspace.

It handles USB and video switching between the desktop and laptop. Both computers share two monitors and the same set of peripherals:

  • Keyboard and mouse
  • Webcam and headset
  • Stream Deck
  • Behringer UMC204HD audio interface

The desktop uses dedicated DisplayPort and HDMI connections. The laptop connects through USB-C with DisplayPort Alt Mode.

flowchart TB
subgraph HOSTS["COMPUTERS"]
direction LR
PC["Desktop PC"]
LAPTOP["Work Laptop"]
end
subgraph KVM["KVM SWITCH"]
direction TB
VIDEO["Video Switch"]
USB["USB Switch"]
PC -->|"DisplayPort + HDMI"| VIDEO
LAPTOP -->|"USB-C / DP Alt Mode"| VIDEO
PC <-->|"USB"| USB
LAPTOP <-->|"USB-C"| USB
end
VIDEO --> MON1["Monitor 1"]
VIDEO --> MON2["Monitor 2"]
USB <--> PERIPHERALS["Shared USB Peripherals"]
classDef host fill:#dce9ff,stroke:#3465a4,color:#172b4d
classDef switch fill:#fff0c2,stroke:#b58a20,color:#493600
classDef display fill:#e2f0f5,stroke:#45869e,color:#163c4b
classDef peripheral fill:#dff3e4,stroke:#418653,color:#173e24
class PC,LAPTOP host
class VIDEO,USB switch
class MON1,MON2 display
class PERIPHERALS peripheral

3. Audio and guitar signal chain

Audio is handled by a Behringer UMC204HD USB audio interface.

The electric guitar connects to an effects pedal chain. The processed instrument signal is then routed to both the guitar amplifier and the audio interface.

The interface handles analog-to-digital conversion and connects to the active computer over USB. This allows the guitar signal to be used in computer-based audio workflows while retaining the traditional amplifier setup.

flowchart LR
GUITAR["Electric Guitar"]
PEDALS["Effects Pedals"]
AMP["Guitar Amplifier"]
subgraph UMC["BEHRINGER UMC204HD"]
direction TB
INPUT["Analog Inputs"]
ADC["USB Audio Conversion"]
OUTPUT["Analog Outputs"]
USB["USB-B Connection"]
INPUT --> ADC
ADC --> OUTPUT
ADC <--> USB
end
PC["Active Computer"]
GUITAR -->|"1/4 inch TS"| PEDALS
PEDALS -->|"Processed signal"| AMP
PEDALS -->|"Direct instrument signal"| INPUT
USB <-->|"USB"| PC
classDef audio fill:#f2e1ff,stroke:#8753aa,color:#43235c
classDef host fill:#dce9ff,stroke:#3465a4,color:#172b4d
class GUITAR,PEDALS,AMP,INPUT,ADC,OUTPUT,USB audio
class PC host

4. Complete architecture

The focused diagrams provide a closer look at individual subsystems. The following diagram brings everything together, documenting the complete physical connectivity of the workspace.

flowchart TB
%% =====================================================
%% COMPUTE HOSTS
%% =====================================================
subgraph HOSTS["COMPUTE HOSTS"]
direction LR
subgraph PC["DESKTOP PC"]
direction TB
PC_USB["USB Ports"]
PC_RJ45["ETH"]
subgraph GPU["Desktop GPU"]
direction LR
PC_HDMI["GPU HDMI"]
PC_DP1["GPU DisplayPort 1"]
PC_DP2["GPU DisplayPort 2"]
PC_DP3["GPU DisplayPort 3"]
end
subgraph OS["Operating Systems"]
direction LR
LINUX["Linux"]
WINDOWS["Windows"]
end
PC_MB["Motherboard"]
PC_PCIE["PCIe"]
PC_PCIE <--> PC_HDMI & PC_DP1 & PC_DP2 & PC_DP3
PC_USB & PC_RJ45 & PC_PCIE <--> PC_MB
PC_MB <--> LINUX & WINDOWS
end
subgraph LAPTOP["WORK LAPTOP"]
direction TB
LAP_USB["USB-C Port<br>DP Alt Mode"]
LAP_USB_A["USB-A Ports"]
LAP_AUDIO["Onboard Audio"]
LAP_MB["Motherboard"]
LAP_WINDOWS["Windows"]
LAP_USB & LAP_USB_A & LAP_AUDIO <--> LAP_MB
LAP_MB <--> LAP_WINDOWS
end
end
%% =====================================================
%% NETWORKING
%% =====================================================
subgraph NETWORK_SWITCH["SWITCH"]
direction LR
SW_RJ45_1["ETH1"]
SW_RJ45_2["ETH2"]
SW_RJ45_3["ETH3"]
SW_RJ45_4["ETH4"]
SW_RJ45_5["ETH5"]
SW_RJ45_6["ETH6"]
SW_RJ45_7["ETH7"]
SW_RJ45_8["ETH8"]
SW_SWBOARD["Switch"]
SW_RJ45_1 & SW_RJ45_2 & SW_RJ45_3 & SW_RJ45_4 & SW_RJ45_5 & SW_RJ45_6 & SW_RJ45_7 & SW_RJ45_8 <--> SW_SWBOARD
end
subgraph NETWORK_ROUTER["ROUTER"]
direction LR
RT_RJ45_1["ETH1"]
RT_RJ45_2["ETH2"]
RT_RJ45_3["ETH3"]
RT_RJ45_4["ETH4"]
RT_SWBOARD["Switch"]
RT_RJ45_1 & RT_RJ45_2 & RT_RJ45_3 & RT_RJ45_4 <--> RT_SWBOARD
end
RT_RJ45_1 <--> NETWORK_PROVIDER["Network Provider"]
RT_RJ45_2 <--> SW_RJ45_8
SW_RJ45_1 <--> PC_RJ45
SW_RJ45_2 <--> KVM_RJ45
%% =====================================================
%% KVM
%% =====================================================
subgraph KVM["KVM SWITCH"]
direction TB
KVM_RJ45["ETH"]
subgraph KVM_HOSTS["HOST CONNECTIONS"]
direction LR
KVM_PC_USB["PC USB Upstream"]
KVM_LAP_USB["Laptop USB Upstream"]
end
subgraph KVM_VIDEO["VIDEO CONNECTIONS"]
direction LR
KVM_DP1["DP Input 1"]
KVM_HDMI1["HDMI Input 1"]
KVM_MON1["Monitor Output 1"]
KVM_MON2["Monitor Output 2"]
KVM_VIDEO_SWBOARD["Video Switch"]
KVM_DP1 & KVM_HDMI1 --> KVM_VIDEO_SWBOARD
KVM_VIDEO_SWBOARD --> KVM_MON1 & KVM_MON2
end
subgraph KVM_USB["USB PERIPHERAL CONNECTIONS"]
direction LR
KVM_USB1["USB Port 1"]
KVM_USB2["USB Port 2"]
KVM_USB3["USB Port 3"]
KVM_USB4["USB Port 4"]
KVM_USB5["USB Port 5"]
KVM_USB6["USB Port 6"]
KVM_USB_SWBOARD["USB Switch"]
KVM_USB1 & KVM_USB2 & KVM_USB3 & KVM_USB4 & KVM_USB5 & KVM_USB6 --> KVM_USB_SWBOARD
end
KVM_SWBOARD["Main Switch"]
KVM_SWBOARD --> KVM_PC_USB
KVM_SWBOARD --> KVM_LAP_USB
KVM_VIDEO_SWBOARD & KVM_USB_SWBOARD & KVM_RJ45 --> KVM_SWBOARD
end
%% =====================================================
%% VIDEO CONNECTIONS
%% =====================================================
PC_DP1 -->|"DisplayPort"| KVM_DP1
PC_HDMI -->|"HDMI"| KVM_HDMI1
KVM_MON1 -->|"HDMI"| MON1
KVM_MON2 -->|"HDMI"| MON2
subgraph DISPLAYS["DISPLAYS"]
direction LR
MON1["Monitor 1<br/>HDMI Input"]
MON2["Monitor 2<br/>HDMI Input"]
end
%% =====================================================
%% HOST USB CONNECTIONS
%% =====================================================
PC_USB <-->|"USB"| KVM_PC_USB
LAP_USB <-->|"USB-C<br/>DP Alt Mode"| KVM_LAP_USB
%% =====================================================
%% SHARED PERIPHERALS
%% =====================================================
subgraph PERIPHERALS["SHARED PERIPHERALS"]
direction TB
subgraph KEYBOARD["KEYBOARD"]
direction LR
PS2["PS/2 Keyboard Connector"]
PS2_ADAPTER["PS/2 to USB Adapter"]
PS2 --> PS2_ADAPTER
end
MOUSE["USB Mouse<br/>USB Connector"]
WEBCAM["USB Webcam<br/>USB Connector"]
HEADSET["USB Headset<br/>USB Connector"]
STREAM_DECK["STREAM DECK"]
end
PS2_ADAPTER --> KVM_USB1
MOUSE --> KVM_USB2
WEBCAM --> KVM_USB3
HEADSET --> KVM_USB4
STREAM_DECK --> KVM_USB5
UMC_USB --> KVM_USB6
%% =====================================================
%% GUITAR AND AUDIO
%% =====================================================
subgraph GUITAR_RIG["GUITAR RIG"]
direction LR
GUITAR["Electric Guitar<br/>1/4 inch TS Output"]
PEDALS["Effects Pedals<br/>Input / Output"]
AMP["Guitar Amplifier"]
GUITAR -->|"1/4 inch TS"| PEDALS
PEDALS -->|"1/4 inch TS"| AMP
end
subgraph AUDIO_INTERFACE["BEHRINGER UMC204HD"]
direction TB
subgraph AUDIO_INPUTS["ANALOG INPUTS"]
direction LR
UMC_IN1["Input 1<br/>Combo XLR / 1/4 inch"]
UMC_IN2["Input 2<br/>Combo XLR / 1/4 inch"]
end
subgraph AUDIO_USB["DIGITAL CONNECTION"]
direction TB
UMC_USB["USB-B Port"]
UMC_ADC["USB Audio Conversion"]
end
subgraph AUDIO_OUTPUTS["ANALOG OUTPUTS"]
direction LR
UMC_OUT1["Main Output 1<br/>1/4 inch TRS"]
UMC_OUT2["Main Output 2<br/>1/4 inch TRS"]
UMC_HP["Headphone Output<br/>1/4 inch TRS"]
end
UMC_IN1 --> UMC_ADC
UMC_IN2 --> UMC_ADC
UMC_ADC --> UMC_USB
UMC_ADC --> UMC_OUT1
UMC_ADC --> UMC_OUT2
UMC_ADC --> UMC_HP
end
PEDALS -->|"1/4 inch TS<br/>Direct instrument signal"| UMC_IN1
%% =====================================================
%% STYLING
%% =====================================================
classDef host fill:#dce9ff,stroke:#3465a4,color:#172b4d
classDef switch fill:#fff0c2,stroke:#b58a20,color:#493600
classDef peripheral fill:#dff3e4,stroke:#418653,color:#173e24
classDef audio fill:#f2e1ff,stroke:#8753aa,color:#43235c
classDef display fill:#e2f0f5,stroke:#45869e,color:#163c4b
classDef software fill:#fce4d6,stroke:#c47a43,color:#603316
classDef network_switch fill:#e4fcd6,stroke:#c47a7a,color:#606016
classDef network_router fill:#d6fcd6,stroke:#7a7a43,color:#163316
class PC_PCIE,LAP_WINDOWS,LAP_MB,PC_MB,PC_USB,PC_DP1,PC_DP2,PC_DP3,PC_HDMI,PC_AUDIO,LINUX,WINDOWS,NVME,LAP_USB,LAP_DP,LAP_USB_A,LAP_AUDIO,PC_RJ45 host
class KVM_USB_UPSTREAM,KVM_SWBOARD,KVM_USB_SWBOARD,KVM_VIDEO_SWBOARD,KVM_PC_USB,KVM_LAP_USB,KVM_DP1,KVM_DP2,KVM_HDMI1,KVM_HDMI2,KVM_MON1,KVM_MON2,KVM_USB1,KVM_USB2,KVM_USB3,KVM_USB4,KVM_USB5,KVM_USB6,AUDIO_USB_SWITCH,AUDIO_PC,AUDIO_LAP,KVM_RJ45 switch
class PS2,PS2_ADAPTER,KB_USB,MOUSE,WEBCAM,HEADSET,STREAM_DECK peripheral
class UMC_IN1,UMC_IN2,UMC_USB,UMC_ADC,UMC_OUT1,UMC_OUT2,UMC_HP,GUITAR,PEDALS,AMP,SPEAKERS,HEADPHONES audio
class MON1,MON2 display
class SD_BUTTONS,BASH,TASKS software
class SW_SWBOARD,SW_RJ45_1,SW_RJ45_2,SW_RJ45_3,SW_RJ45_4,SW_RJ45_5,SW_RJ45_6,SW_RJ45_7,SW_RJ45_8 network_switch
class RT_SWBOARD,RT_RJ45_1,RT_RJ45_2,RT_RJ45_3,RT_RJ45_4,NETWORK_PROVIDER network_router