Open-source KVM software
Go to file
Dom Rodriguez f9c9d56b21
Update Windows CI builds to multi-agent matrix
This PR updates Windows CI builds to use a multi-agent matrix when
building. Windows 2022 & 2019 have been DISABLED *temporarily* until
we can find a way to automagically detect the location of Visual
Studio build tools.

The only build agent available is Windows 2016, as it works with the
current setup. There is a publishing step, which only runs on the
Windows 2016 agent for now. This solves the issue of multiple
installer artifacts being built when the other agents are
re-enabled.

Per-commit generated binaries remain generated by all (not right now)
Windows build agenst.

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-07 22:41:47 +00:00
.github Clarify PR template with regards to user-visible changes to Barrier 2021-11-06 16:25:57 +00:00
azure-pipelines azure-pipelines: Use Invoke-WebRequest to download files 2021-10-30 05:02:35 +03:00
cmake Barrier v2.4.0 2021-11-01 22:46:43 +02:00
debian Update Debian changelog to v2.3.3 2020-08-07 18:33:54 +01:00
dist Merge branch 'master' into patch-1 2021-11-04 16:08:33 -04:00
doc translation: ja-JP 2.4.0 2021-11-05 14:12:14 +02:00
ext ext: Add https://github.com/gulrak/filesystem for filesystem operations 2021-11-01 04:29:44 +02:00
res Use openssl library instead of CLI to generate certificates 2021-11-01 04:07:09 +02:00
snap Shorten snap version on tagged revisions 2020-07-14 18:58:52 -03:00
src ServerApp help: Describe the role of the server 2021-11-05 19:52:15 +00:00
.editorconfig [style](editorconfig): Commit initial EditorConfig config for code style 2020-09-14 13:12:53 +01:00
.gitignore Reimplement patch for horizontal scrolling and extra mouse buttons 2019-08-05 21:59:43 -04:00
.gitmodules ext: Add https://github.com/gulrak/filesystem for filesystem operations 2021-11-01 04:29:44 +02:00
Build.properties Barrier v2.4.0 2021-11-01 22:46:43 +02:00
CMakeLists.txt cmake: Silence tr1 deprecation warning on MSVC 2021-11-01 04:48:56 +02:00
ChangeLog Make ready v1.9.0-rc3 2017-05-10 15:29:48 +01:00
LICENSE Use complete license file from gnu.org 2021-09-22 21:30:50 +00:00
README.md Updated README.md based on PR peer-review comments 2021-11-04 14:29:00 -07:00
RELEASING.md RELEASING: Specify that newest macOS release dmg should be used 2021-11-05 14:10:51 +02:00
_config.yml Add missing final newline 2021-09-22 22:58:16 +00:00
azure-pipelines.yml Update Windows CI builds to multi-agent matrix 2021-11-07 22:41:47 +00:00
build_installer.bat Replace Wix with Inno Setup 2019-04-18 21:04:00 -04:00
clean_build.bat Use cmake --build to build on Windows 2021-11-01 04:48:56 +02:00
clean_build.sh Fix shellcheck warnings 2021-09-22 22:58:15 +00:00
osx_environment.sh Merge branch 'master' into testing/pr/Absolucy/macos 2021-10-31 21:00:26 +00:00
pre-build.bat [Build[ update pre-build script to call VS2019 2019-08-17 16:52:24 -04:00
towncrier.toml Setup release notes build using towncrier tool 2021-11-01 21:35:55 +02:00

README.md

Barrier

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 screen, or by using a keypress to switch focus to a different system.

Barrier was forked from Symless's Synergy 1.9 codebase. Synergy was a commercialized reimplementation of the original CosmoSynergy written by Chris Schoeneman.

At the moment, barrier is not compatible with synergy. Barrier needs to be installed on all machines that will share keyboard and mouse.

What's different?

Whereas Synergy has moved beyond its goals from the 1.x era, Barrier aims to maintain that simplicity. Barrier will let you use your keyboard and mouse from one computer to control one or more other computers. Clipboard sharing is supported. That's it.

Project goals

Hassle-free reliability. We are users, too. Barrier was created so that we could solve the issues we had with synergy and then share these fixes with other users.

Compatibility. We use more than one operating system and you probably do, too. Windows, OSX, Linux, FreeBSD... Barrier should "just work". We will also have our eye on Wayland when the time comes.

Communication. Everything we do is in the open. Our issue tracker will let you see if others are having the same problem you're having and will allow you to add additional information. You will also be able to see when progress is made and how the issue gets resolved.

Usage

Install and run barrier on each machine that will be sharing. On the machine with the keyboard and mouse, make it the server.

Click the "Configure server" button and drag a new screen onto the grid for each client machine. Ensure the "screen name" matches exactly (case-sensitive) for each configured screen -- the clients' barrier windows will tell you their screen names (just above the server IP).

On the client(s), put in the server machine's IP address (or use Bonjour/auto configuration when prompted) and "start" them. You should see Barrier is running on both server and clients. You should now be able to move the mouse between all the screens as if they were the same machine.

Note that if the keyboard's Scroll Lock is active then this will prevent the mouse from switching screens.

Contact & support

Please be aware that the only way to draw our attention to a bug is to create a new issue in the issue tracker. Write a clear, concise, detailed report and you will get a clear, concise, detailed response. Priority is always given to issues that affect a wider range of users.

For short and simple questions or to just say hello find us on the LiberaChat IRC network in the #barrier channel.

Contributions

At this time we are looking for developers to help fix the issues found in the issue tracker. Submit pull requests once you've polished up your patch and we'll review and possibly merge it.

Most pull requests will need to include a release note. See docs/newsfragments/README.md for documentation of how to do that.

Distro specific packages

While not a comprehensive list, repology provides a decent list of distro specific packages.

Packaging status

FAQ - Frequently Asked Questions

Q: Does drag and drop work on linux?

A: No (see #855 if you'd like to change that)

Q: What OSes are supported?

A: The most recent release of Barrier is known to work on:

  • Windows 7, 8, 8.1, 10, and 11
  • macOS (previously known as OS X or Mac OS X)
    • The current GUI does not work on OS versions prior to macOS 10.12 Sierra (but see the related answer below)
  • Linux
  • FreeBSD
  • OpenBSD

Q: Are 32-bit versions of Windows supported?

A: No

Q: Is it possible to use Barrier on Mac OS X / OS X versions prior to 10.12?

A: Not officially.

  • For OS X 10.10 Yosemite and later:
  • For Mac OS X 10.9 Mavericks (and perhaps earlier):
    1. the command-line portions of the current release should run fine.
    2. The GUI will not run, as that OS version does not include Apple's Metal framework.

Note: Only versions v2.3.4 and later of Barrier can be supported by this project.

  • Anyone using an earlier version is advised to upgrade due to recently-addressed security vulnerabilities (and other bug fixes).
    • This is especially important for computers accessible from the public Internet (or from other shared/untrusted networks, such as when using shared WiFi).

Q: How do I load my configuration on startup?

A: Start the binary with the argument --config <path_to_saved_configuration>

Q: After loading my configuration on the client the field 'Server IP' is still empty!

A: Edit your configuration to include the server's ip address manually with

(...)

section: options
   serverhostname=<AAA.BBB.CCC.DDD>

Q: Are there any other significant limitations with the current version of Barrier?

A: Currently:

  • Barrier currently has limited UTF-8 support; issues have been reported with processing various languages.
  • There is interest in future support for the Wayland compositor/display server protocol (official site | Wikipedia article) on Linux.
    • As of late 2021, there is no expected completion date for Wayland support.
    • (see #109 and #1251 for status or to volunteer your talents)

The complete list of open issues can be found in the 'Issues' tab on GitHub. Help is always appreciated.