I have two Linux computers at my desk. A (closed) laptop connected to a monitor and a home grown tower connected to two monitors. Three monitors in all. I frequently switch between these computers and control them with one keyboard and mouse.
For the past few years, I've been using a Logitech wireless keyboard (K780) and mouse (M585) that support multiple computers. One computer is connected to the keyboard and mouse via a wireless dongle, and the other is connected via Bluetooth. A set of keys switches the keyboard between computer, and a button switches the mouse. While the switching works most of the time, sometimes there is a delay. It's frustrating when keystrokes are delayed or missing.
I recently switched to a wired keyboard and mouse and control the switching with software KVM (Keyboard Video Mouse). After using this for a week, I wish I had made this change sooner. Barrier is an open-source solution that works on Linux, Mac and Windows.
This solution is for sharing a single keyboard and mouse with multiple computers. Each computer requires a monitor.
After installation, you set up one computer as the server, and others as clients. On the Barrier server, you add a screen for each client computer using it's machine name and position it relative to the server screen. For example, my computer called "pop-os" is to the left of "rebel-tower".
On the client machines, you identify the address of the Barrier server.
After Barrier is running on the clients and server, when working on rebel-tower and moving the mouse off the screen to the left, the mouse will begin moving on the pop-os screen. Wherever the mouse is active, the keyboard is active. You move the mouse to the computer you want to type on. This implementation is more natural to use than pushing keys and buttons, and it's fast and smooth.
I have not used any of Barrier's advanced settings, maybe someday. You can define keystrokes to switch computers and activate advanced functionality. Barrier's Linux version does not support drag and drop between computers, but Mac and Windows is supported. While this feature could be useful, it's not critical for me.
I'm always surprised by the quality and abundance of open source Linux applications.