Home

2025-03-29 Computer Setup

I wanted to document what my computer setup is. It'll probably change over the years and I might be interested in looking back.
      graph TB
        %% Style definitions
        classDef monitors fill:#66c2a5,stroke:#333,stroke-width:1px;
        classDef computers fill:#fc8d62,stroke:#333,stroke-width:1px;
        classDef hubs fill:#8da0cb,stroke:#333,stroke-width:1px;
        classDef peripherals fill:#e78ac3,stroke:#333,stroke-width:1px;

        %% Group definitions
        subgraph Monitors
            Monitor1[Monitor 1]
            Monitor2[Monitor 2]
        end

        subgraph Computers
            Laptop[Laptop]
            Desktop[Desktop]
        end

        USBHubToggle[USB Hub\nwith output toggle]
        USBHub[USB Hub]

        subgraph HubPeripherals[Shared Peripherals]
            Mouse[Mouse]
            Keyboard[Keyboard]
            Webcam[Webcam]
            Mic[Desk Mic]
        end

        subgraph DesktopPeripherals[Desktop Peripherals]
            Headset[Headset]
            XBoxController[Xbox Controller]
            FootPedal[Foot Pedal]
            WifiAntenna[Wifi Antenna]
        end

        %% Connections
        Desktop -- DisplayPort --> Monitor1
        Desktop -- HDMI --> Monitor2
        Laptop -- USB --> Monitor2
        Laptop -- HDMI --> Monitor1

        USBHubToggle --> Laptop
        USBHubToggle --> Desktop
        USBHub --> USBHubToggle

        Mouse --> USBHub
        Keyboard --> USBHub
        Webcam --> USBHub
        Mic --> USBHub

        Headset --> Desktop
        XBoxController --> Desktop
        FootPedal --> Desktop
        WifiAntenna --> Desktop

        %% Apply styles
        class Monitor1,Monitor2 monitors;
        class Laptop,Desktop computers;
        class USBHubToggle,USBHub hubs;
        class Mouse,Keyboard,Webcam,Headset,XBoxController,FootPedal,WifiAntenna,Mic peripherals;
    
I have both my work laptop and personal desktop computer at the same desk, using the same monitors. The standard hardware to do this is a "KVM switch". These let you plug in a monitor to two computers and toggle the input. Back when I was looking into KVM switches, they seemed very expensive (a couple hundred dollars each) and had major performance penalties (often limiting monitors to 60Hz). They seem to have improved significantly, or maybe I'm mis-remembering. Now I see ones that support 4k@144Hz for two monitors for only $70. Perhaps I should get one of those!
When I set this up, I went a slightly different route. I bought a cheap USB hub that allows toggling between outputs. It has 2 outputs and 3 inputs. I have more than 3 input devices so I connected a larger USB hub. I leave the two slots open for miscellaneous use, like plugging in my phone for USB debugging or using a thumb drive. I also have some peripherals that are only for my personal computer, so I plug those into it directly.

Another quirk of my setup is the headset. I leave it plugged into my personal desktop. While I'm working I use my headset and play music on Spotify. Spotify lets you control a remote session, so the playback is through my desktop and headset, but the controls are through my work laptop.

To switch between computers, I press the toggle button on the USB hub and then manually use the buttons on the back of each monitor. Often I won't even need to manually change the monitor because it automatically switches to the active input if there is only one computer turned on.

I switched from Windows to Debian in 2023. I had wanted to do it for a long time because it's a far better experience for programming, but the rumored poor support for video games kept me away from it. Steam makes it nearly seamless for most games. I'm very glad to have made the jump.

Here are the details of my computer builds. I keep track of this information using pcpartpicker.com.