Tool to share mouse and keyboard across computers

This product was aimed at developers, whose work involves working in several operating systems at once. Combining several devices together into one cohesive experience, this solution shares one mouse, one keyboard, and one clipboard between all Windows, Mac, and Linux computers.

Project background

As a rule, software developers need more than just one computer to write the code properly and concentrate on numerous tasks. Some people have both a personal PC and one for work, or they may need a different OS, Mac or Windows on their computers, or, like gamers, have separate gaming and streaming machines.

In any case, they usually want to control multiple computers with the same keyboard and/or mouse. 

The main aim of this application was to set up a convenient workplace for developers working with several computers and monitors and a single input device. In short, to make all connected computers a single, easy-to-operate device. 

The idea of the project is that if two or more computers stand side by side and are connected to adjacent monitors, the input from the mouse and keyboard can be transmitted over the network, and work for all these computers.

Duration
  • March 2021 - October 2021
Location
  • the UK
Industry
  • IT Services
Technologies
  • С++
  • Qt
  • Win32
  • Windows
  • MacOS
  • Linux
  • HTTP
  • WebSockets
  • Boost
  1. Connectivity Connecting from 2 to 15 devices
  2. Switching Easy switching between computers
  3. Customization Customizing the keyboard to needed preferences
  4. Swapping Opportunity to swap keys automatically

Business needs

The target of this application is setting up a fast and convenient workplace with several computers and monitors and one input device. The idea of the project is that if two computers stand side by side and are connected to adjacent monitors, the input from the mouse and keyboard can be transmitted over the network as if they were connected to two computers.

The main business needs were:  

  • an effective desktop shared mouse solution to cover such platforms as Windows, Linux, MacOS, and even Raspberry Pi; 
  • a cross-platform app that, in theory, can support any number of computers; 
  • transferring encrypted data over a local or global network from various input devices (mouse and keyboard), transferring files, as well as synchronizing the clipboard. 
Solution

We have created functionality and design based on the technical documentation for effective mouse and keyboard sharing.

  • check
    Any configuration of adjacent screens and a seamless transition of controls from one computer (screen) to another
  • check
    Synchronizing settings functionality or keeping a different input language on each desktop
  • check
    Drag and drop of files between PCs (with the setting of the availability of this function for each desktop)
  • check
    Functionality for setting whether to synchronize the clipboard (separately text, images, and files)
  • check
    Automatic connection at power on
  • check
    Correct transfer of all popular keyboard shortcuts or, in the absence of their support on the target platform, a functionality that imitates them
  • check
    Encryption settings (on / off, and encryption type
  • check
    Deep network configuration
  • check
    Premium subscription and limitations of some features without it
  • check
    Automatic logging of errors, feedback, resumption of work in case of failures, auto-update
Client values
  1. We developed a stable cross-platform desktop app for Windows, Linux, MacOS and Raspberry Pi.
  2. The number of connected devices is now up to 15.
  3. Our development team paid extra attention to the app security.

Employee testimonial

quote

What does a developer feel when he closes a task that was considered impossible to complete? A delight! Watching how many complex ideas and approaches add up to a quick and convenient tool is why programmers take on complex tasks! This project is just like that: in the beginning, it was not clear whether it was possible to implement everything planned. And in the end, I bought this cool product that simplifies the developer’s life so much. The biggest challenge for me was the need to implement all the functionality for all the platforms. Technical documentation was not sufficient. Therefore, we searched the forums, appointed consultations with enthusiasts, and even wrote official letters to the creators of the platforms.

quote
Testimonial_Kyslynskyi
Oleksii Kyslynskyi C++ Developer
quote

Let’s bring your idea to
life together!

    Successfully applied!