Episode: 3531
Title: HPR3531: Barrier: Software KVM
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr3531/hpr3531.mp3
Transcribed: 2025-10-25 01:03:06

---

This is Haka Public Radio episode 3531 for Monday the 14th of February 2022.
Today's show is entitled, Barrier, Software KVM.
It is hosted by Windigo and is about 17 minutes long and carries a clean flag.
The summer is a breathing reduction to the Barrier Software KVM.
Hello HPR.
This is editing Windigo.
Recording Windigo was a little bit sleepy and confused when he recorded this episode.
But we are short on shows in HPR right now, so I'm going to just upload it anyways, but
I wanted to add a couple of disclaimers before I do so.
First being, I don't know why I kept saying rotary encoder, but I was actually talking about
a rotary switch.
You can find them on electric components website, but whenever I say rotary encoder in this
episode, just ignore me and put rotary switch in its place.
Second is, I discuss a little bit about controversies in the release of Synergy 2.0.
I should probably add a hefty pinch of salt disclaimer that I don't have any connections
to Simless.
I only knew what I knew from reading their blogs and posts around the time.
And I have a terrible memory.
I'm not sure if I'm a credible witness, so I could be getting things very wrong.
They still seem to be doing very well as a company, so I would just say that I wouldn't
let my recollection put you off of using their product either.
So with that, please excuse the incorrectness of this episode and enjoy, I hope.
Hello, this is Windigo.
I'm recording a episode about the network KVM called Barrier.
So first of all, I should probably start with what is a KVM?
The acronym KVM stands for keyboard, video, and mouse, and a KVM is a device or piece
of software that lets you share a single keyboard and mouse, and in some cases a monitor with
several devices.
The oldest instance of a KVM I've encountered was a data switch, which is this little beige
metal box enclosure with a giant rotary dial on the front.
I think 8 was the largest I've ever seen, but it has two to eight selectors that you
can manually turn this rotary encoder to select.
And that would allow you to plug a single set of input devices and a monitor for output
into this KVM box, and you could select which of your devices the keyboard, mouse, and
video signals were connecting to.
And I actually took one of these parts, and it's just as simple as it could be.
The rotary switch is just a connector for a huge set of wires that go to each of the ports
on the back.
So you would have a single set of ports for the keyboard, mouse, and monitor connections,
and then each of the other one or two to however many ports would be patch cables that
would go to your devices.
So if you had it selected to the first set of ports and you typed on your keyboard,
it would go through the keyboard cables into the KVM and out through the patch cables
to the first device.
And if you changed the switch to the second device, it would disconnect the first device
and reconnect it mechanically to the second device.
So that would have all your keyboard and mouse input.
There have been many improvements to hardware KVM's since they're very popular in server
rooms where you can have a whole number of servers sharing a single terminal, usually
a rack mounted one that makes maintenance a lot easier than if you need to physically
connect to a machine.
So that's a hardware KVM, a software KVM is the same thing, but without physical connections.
There's no hardware involved.
It uses applications on each of the devices, one X is a server, and one is the rest of clients,
and it sends your mouse movements or keystrokes through the network.
The software-based KVM I use is named Barrier.
It's a piece of free software, and it's actually a fork of a fork.
Barrier started out as a product called Synergy, which is a commercialized version of the
Cosmos Synergy software, which is written by Chris Schoeneman, I'm not sure if I'm pronouncing
that right.
I apologize to Chris if I've ruined your last name.
Synergy is actually the first time I encountered a software KVM, and I've purchased a license
to it.
I used it for years.
It's good software.
I don't have any problem with the Synergy product, but they had a rocky approach to the
2.0 version of Synergy.
They were adding a bunch of features.
I think they were trying to get around some of the networking issues, because it's a
network-based piece of software.
You run into the same kind of issues as getting any software to communicate on a network.
If there's not involved, or if you're trying to travel over the internet, things can get
dicey.
I've never attempted something like that, but I think Synergy 2 was adding features to
address things like that.
They had a cloud element, and it might have stored settings in the cloud.
I didn't get to that point before I needed to use Synergy again.
I found the Barrier project, which is, wow, I should back up.
Synergy is run by a company called Simless, in case you're interested.
Like I said, I've had nothing but good experiences with Synergy, but I found Barrier, which is
a fork of Synergy 1.9, and the purpose of their project is to keep a smaller, simpler
feature set.
I don't use a lot of the extra features that they would be adding in Synergy, and Barrier
is packaged for most of the distributions that I use.
I think I'm not sure if Synergy is or not, but Barrier suits all of my needs, and Simless
already got my money, so I don't feel too bad about abandoning them, and I should clarify.
I think Synergy is still open-source-based.
It's just a commercial product that they charge for distributing pre-compiled binaries
and things like that, perfectly above board as far as I can tell.
I never had a problem with them hiding features behind a paywall or anything, but either way,
I ended up switching to Barrier because it suits my needs and is pre-packaged for all
the distros I use.
It's worked out very well so far.
So I say distributions, but Barrier is a cross-platform piece of software.
There are some limitations, but it runs on Windows.
It runs on Macintosh.
They do not currently support 32-bit, so I don't believe you can run it on Raspberry Pi,
but I've also never tried, I could be incorrect.
It does come available in Snap Packages, which is nice, and even if they don't pre-package
it for your distribution, or it's not in the repositories, you can always install it
as a snap if you wanted to use it on something that supported Snap Packages.
So out of the box, Barrier comes with two components when you install it.
There is the core application that does all the KVM functionality, and there is a graphically
utility that you can use to configure the core application.
I have always used the graphical utility to configure things, but there is supposedly
also a way where you can write your own configuration files.
If you don't want to do anything interactively, you can write a configuration file and then
provide that to the core application and it will run just fine.
But I use the graphical utility because it's simple and familiar.
With the graphical utility, you get to pick whether the computer you're working on is
the server, which would have the mouse and keyboard connected to it, or if it's the client,
which means it's another networked computer that can receive keyboard and mouse input
from the server.
And when you get it set up, it works almost like network-based multiple monitors.
Or mouse can write up to the edge of the screen, and as soon as it touches that edge, Barrier
transfers it to the next configured computer on that side through the graphical configuration
tool, or probably through the configuration files, you have to orient each client relative
to the server.
So for instance, when I use it at my desk, I have my work computer on the right-hand side,
and I have my personal computer on the left-hand side.
And my work computer has my mechanical keyboard connected to it, so that gets to be the server.
When you're configuring the server, you configure all of the orientations, so the server gets
to pick where the clients are respective to itself.
So on the server, I say that my personal laptop is to the left of it, so that when I go
off of the left-hand side of my screen, my input gets shifted over to my personal computer.
And it uses screen names to configure this relative positioning.
I named my personal computer its hostname, and I configured the server to put it, put
a client with that hostname on the left-hand side.
Clients are much simpler.
They get to declare their screen name, and the server IP, it can use raw IP for addresses.
I haven't tried it with raw IP version 6, but it can also use DNS entries.
And once you have it set up, and use the same set of input devices across however many
devices you have.
There is an upper limit, I think the limit for synergy said 15, I can't imagine getting
to that point myself, but if you're in a network operation center or something with multiple
machines running different displays, I could see how it would be applicable.
So this sounds all well and good, but you're also transmitting all of your keystrokes
over a network connection, which raises some pretty obvious security concerns.
So one of the things they do to mitigate this is they transmit everything using SSL.
So your keystrokes and traffic is encrypted.
I don't know how voraciously they do this.
I'm not sure how secure their model is, but it's safe enough that I'm comfortable enough
using it on my LAN.
I don't know if I would use it across the internet.
I can't imagine a scenario where I would need to use it across the internet, but I'm sure
someone has a use case out there.
Barrier, even though it's got a pretty stripped down feature set, does support a couple
quote-unquote features.
It obviously will transmit your keystrokes and mouse movements.
It supports clipboard sharing so that you can copy on one device and paste on another.
I have not configured this because I don't see myself using that kind of thing, but I also
have two very different devices that just happen to be sharing keyboard and mouse.
But if you want, you can try and configure that.
And it also supports drag and drop files transfers supposedly.
Again, I'm using this with two different devices, so I've never configured that.
But if you're using two separate machines, one for development, one for testing, I could
see how that would be convenient.
Just not something that I've done.
I don't do drag and drop file stuff in general, but whatever floats your boat, if that's
something that's going to simplify your workflow, then awesome.
Speaking of simplifying your workflow, I have used Barrier and Synergy before it for
some very convenient, almost magical feeling computer uses.
It's one of those technologies that is just very useful in very specific circumstances.
So the first time I started using it, I was at a job in an IT department and we had
a Nagios box.
And the Nagios box was across the room so that everyone could see it.
But it didn't make it very convenient if we needed to say, reload the page or click
on a host to find out what had happened.
So we installed Synergy and I could control it from my desktop.
So very fun way to prank people.
I don't condone that sort of thing because I'm much more mature than that these days,
but it does remind me a little bit of the days of your when there were certain network
administration tools that would get into the hands of school children and we would use
them in the computer lab to mess with people.
But again, I don't condone these kind of behaviors, but the possibilities there if you would
like to partake.
I've also used this when I've had two separate machines on my desk.
I had a Linux machine and a Windows device side by side.
It seems silly to have two keyboards and two mice and in fact it's dangerous to have
that because you can start typing on a keyboard expecting it to go to one computer and have
it accidentally sending keystrokes and key combinations to the wrong machine which can
be potentially very, very dangerous.
Granted you still get that a little bit with Barrier and in fact there have been times
when I've tried to type something on my personal computer and end up starting to dump something
into a terminal on my work computer or vice versa, but I find it's much easier to keep
track of when there's only a single set of input devices.
So Barrier is something I always keep in my toolbox for very specific occasions.
I don't think it's super widely applicable, but when it's applicable it's very nice.
It could save you from having to buy a hardware KVM which are pretty pricey if you want
to get into some of the more fancy ones with multiple connections.
It also has the advantage of being able to use whatever hardware or whatever computers
are kicking around as servers.
It doesn't take lots of resources, it really just needs an internet connection.
You should probably have it on a wired internet connection for latency reasons, but it will
work on just about anything as long as you're patient.
So I hope this provides someone with some help.
I've been able to introduce at least one other person to this software at a Linux user
group meeting, and it certainly is very, very convenient when it's convenient.
You've been listening to Hecker Public Radio at HeckerPublicRadio.org.
Today's show was contributed by an HBR listener like yourself.
If you ever thought of recording a podcast, then click on our contribute link to find
out how easy it really is.
Hosting for HBR is kindly provided by an honesthost.com.
The internet archive and our sync.net, unless otherwise stated, today's show is released
under Creative Commons, Attribution, ShareLike, 3.0 license.
