DEV Community

Horus Lugo
Horus Lugo

Posted on • Updated on • Originally published at

Step Up Your Multi-Computer Setup By Sharing Mouse and Keyboard Between Systems

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.

GitHub logo debauchee / barrier

Open-source KVM software


Eliminate the barrier between your machines Find releases for windows and macOS here Your distro probably already has barrier packaged for it, see distro specific packages below for a list. Alternatively, we also provide a flatpak and a snap.

Contact info:

  • #barrier on LiberaChat IRC network

CI Build Status

Master branch overall build status: Build Status

Platform Build Status
Linux Build Status
Mac Build Status
Windows Debug Build Status
Windows Release Build Status
Snap Snap Status

Our CI Builds are provided by Microsoft Azure Pipelines, Flathub, and Canonical.

What is it?

Barrier is software that mimics the functionality of a KVM switch, which historically would allow you to use a single keyboard and mouse to control multiple computers by physically turning a dial on the box to switch the machine you're controlling at any given moment. Barrier does this in software, allowing you to tell it which machine to control by moving your mouse to the edge of the…

Barrier Configuration

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

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

  1. Save all this configuration and start the server.

  2. 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

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

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 if you want to know about my future articles, projects or whatever I come up with!

Top comments (1)

mrluissan profile image
Luis Adame Rodríguez

Works like a charm my man! Thank you 😁