Two Computers Connected Via Barrier

in Cross-platform, Utilities

Using Barrier to Control Multiple PCs with One Keyboard and Mouse


Along with my recent solution to the laborious ways of typing accents on Windows, I regularly encounter another problem. At my desk, I have three monitors, two computer towers, a ThinkPad and a MacBook Pro, all running different operating systems. After all of that is put together, I only have enough space for one keyboard and mouse set. Some of you might already be aware of the paid, partly open source software Synergy, but there are various features of the 2.0 version that I don’t care for. That’s where Barrier, an open-source fork of Synergy Core, comes in.

What is Synergy, and What is Barrier?

Synergy is a part-open source, part-proprietary application that allows multiple computers to share a single keyboard and mouse set. This allows you to have multiple computers attached to separate monitors, all of which can be worked on with only one set of peripherals. Synergy works by running a server on the computer that the keyboard and mouse are connected to. This server then talks to clients that are installed on the other computers via SSH.

Barrier running on my Windows computer.

Barrier running on my Windows computer.

Barrier is a fork of the open source component of Synergy 1.9 that aims to focus on the basic Synergy functionality prior to the release of 2.0. Setting aside my issues with the license they must use, it does exactly what I expect of Synergy; it lets me use one keyboard and one mouse with all of the computers I have at my desk.

Installing Barrier for the First Time

Barrier is incredibly easy to install, with pre-compiled binaries provided for Windows, macOS, FreeBSD, and GNU/Linux. There is also an Arch Linux package available via the AUR.

Note: Barrier currently has a bug relating to the SSL library it uses. You may need to use the 2.0.0 release for now. At the time of this post, the most recent release is 2.1.1, so if there is a version newer than that, the bug may have been resolved.

On Windows and macOS, we can install Barrier by downloading and running the binary installer provided at the link above. On FreeBSD, download the pre-packaged binaries and extract them to the appropriate directory; the developers are working on getting Barrier included in the ports tree. GNU/Linux users will have to consult their relevant distribution’s documentation for installation instructions.

Windows users may need to uninstall Microsoft’s Mouse without Borders to get Barrier to work. If any part of the process outlined below fails, check to see if it is installed and remove it.

Let’s start by installing it on your server – the system that has the keyboard and mouse physically connected to it. Once it’s installed, go ahead and run it and you will be greeted by the first time configuration setup.

Configuring and Using Barrier

When configuring on your server you will be presented with a range of options. Everything you see should be self-explanatory, thanks to Barrier’s ridiculously relaxed setup and well-named options. Not many, if any, of these will need changing, but you should check through all of them to see if there are any settings you want to try out. You can reconfigure Barrier at any time by clicking the “Configure Server” button.

Once you have Barrier installed on your server, it’s time to install it on your clients. This time, there isn’t much configuration to do. Simply tell Barrier that this system will be a client, and that’s it. If Barrier picks up a server on your network, it can configure itself to use it. Otherwise, enter the server’s IP into the UI, as in the image below.

My MacBook's Barrier client, displaying it's status and connection configuration.

My MacBook’s Barrier client, displaying it’s status and connection configuration.

Telling Barrier About Your Clients

Once you have Barrier installed on both the server and all of the clients, return to the server configuration screen via the button on the server’s Barrier user interface. On the “Screens and links” pane, we can configure Barrier’s layout. You should see a grid of squares, 5 columns by 3 rows, with a monitor in the middle square that has the name of your server.

Start Barrier on the server and all of your clients if you haven’t already by clicking the “Start” button in each Barrier instance. If you have monitors for all of your clients, then Barrier is ready to use. Your clients should be configured automatically. Drag the monitors around the grid until they’re all laid out in a way that you find logical, then apply your configuration.

If you don’t have monitors for all of your clients, use the image of the monitor in the upper right-hand corner to drag monitors onto the grid. You’ll need one for every client, and it’s a good idea to rename them from “Unnamed” to the name of the client. Drag the monitors and apply the configuration as stated above.

You should have a “Screens and links” grid similar to the one below, depending on how many clients you have and how they are arranged.

My Barrier server configuration. Left to right: curie (ThinkPad, FreeBSD), glory (home server, FreeBSD), cassidy (Windows PC, the Barrier server), veronica (MacBook Pro, macOS).

My Barrier server configuration. Left to right: curie (ThinkPad, FreeBSD), glory (home server, FreeBSD), cassidy (Windows PC, the Barrier server), and veronica (MacBook Pro, macOS).

Concluding Using Barrier

And that’s it! Now you can use a single keyboard and mouse set connected to just one PC to navigate around several computers on your local network at once.

Go ahead and push your mouse to the edge of your server’s screen and watch it glide on over to your client. Type away and watch all of your input appear on the client as if your keyboard was connected to it directly. Now you can ditch that ageing VGA KVM switch once and for all.

Based on reader feedback, I should clarify that Barrier requires that every computer has a monitor. It’s ideal for single-desk, multi-computer workstations. It isn’t designed to be used where multiple monitors are not possible.

I’ve had Barrier running for over a year now, and I expect it to serve me well far into the future.

As always, drop a comment below or join my Discord server if you have any comments or questions.

Loading comments...