Step Up Your Multi-Computer Setup By Sharing Mouse and Keyboard Between Systems
Tags: productivity, tutorial
Published: 2020-03-03 23:41:32

Last week, I finished setting up my main computer, which uses Ubuntu, and today I needed to work with my MacBook Pro to be able to work with the iOS simulator. I placed it in my desk and after using both computers for a few hours, I noticed that this could be better if both systems shared the same keyboard and mouse.

Well, seems like I wasn't the only one to think about that.

## KVM Switches

KVM Switches (KVM stands for keyboard, video and mouse), allow you to share these peripherals between multiple systems. In general, there are two types, **hardware** and **software** KVM switches.

Clearly, the first thing I did was to look for a software solution, and I decided to try with [Barrier](https://github.com/debauchee/barrier).

{% github debauchee/barrier %}

## Barrier Configuration

Installing Barrier was easy, they provide a snap package for Ubuntu and also pre-built binaries for OS X and Windows.

* [Snap](https://snapcraft.io/barrier)
* [Windows, OS X and other Linux build](https://github.com/debauchee/barrier/releases) 

Barrier uses a Client-Server architecture, and because of that, the first thing we're going to configure is the server. The server is the machine that will "own" the keyboard and the mouse, while the clients will receive information about what is going on and then act accordingly.

1. Open the Barrier app in the machine that you picked to be the server. Select the **Configure interactively** option and click in the button that says **Configure Server**.

2. That will open a new window where you can modify the layout of screens by using drag and drop. In my case, I added it to the left of my main computer.

3. Double click the new added screen and give it a name. The name is important because it has to match the name of the client you're going to configure next. To check the client name, open the Barrier app in the client and check the name there.

![Server configuration](https://dev-to-uploads.s3.amazonaws.com/i/gzitbmzi0mn1zmerbvrp.png)

4. Save all this configuration and start the server. 

5. Take a look to the IP addresses in the server, one of them should be bold, that's the IP of our server and we need to use it in order to configure our clients. Go to your client and configure them, you can first check if the auto config works for you, otherwise just fill the **Server IP** with the one you got earlier.

![Client configuration](https://dev-to-uploads.s3.amazonaws.com/i/87g8j6tt2ikgbnxncdoi.png)

And that's it, with this you just configured a KVM switch and it should be working now!

![Sharing mouse and keyboard between Ubuntu and OS X](https://dev-to-uploads.s3.amazonaws.com/i/uqajc7rsznbx3aimli0l.gif)

## What now?

This KVM switch uses your LAN network to establish the Client-Server communication, there are multiple things that can result in a degraded experience. 

Barrier is the program I chose, but there are others that may work better for your system, if this one doesn't do it, just keep looking, and remember, there are hardware KVM switches too!

---

_Follow me on [Twitter](https://twitter.com/HorusGoul) if you want to know about my future articles, projects or whatever I come up with!_