KVM's; sharing resources between multiple computers
Tags: agile, productivity, dirtylittlethings, healthydebate
Published: 2021-06-06 16:42:33

Last Christmas I ...~~gave you my heart~~ 
decided to **STOP working from my personal computer, and START making use of work laptop**.

The reason why I didn't really use it before, was that **I already had a comfy setup to work on**, with both screen displays, my mechanical keyboard, ... and didn't want to switch everything when having to make use of the personal <-> work space.

However, with this COVID thing, I started working from different places, both outside and inside my home, to force myself some context switch and alleviate my mental stress.
Every time this happened, I was in need of syncing things (documents, keybindings, install software, ...)

When working from multiple computers having an homogenized system is a must.
- That's why I started making an [inventory of how my system was set up](https://gist.github.com/wideawakening/278a9a43b7251917052e9010a2f93ce2).
- And keep using the [work Firefox profile to keep bookmarks, history, and credentials above all in-sync too](https://dev.to/wideawakening/waybackmachine-september-19-42ba#agile-managing-multipledevices-with-firefox-sync-accounts). 
- Document cloud-sync services (such as dropbox, one-drive,...and hopefully some day proton-drive) comes really handy too.

---
Organizational things left behind, how could I achieve this context switch made easy and be able to use my laptop with my personal computer peripherals?

--- 
## requirements

- work laptop running, optionally personal computer running

- personal computer hardware peripheral sharing; in my case Keyboard, 2 VisualDisplays, Mouse, and if possible audio system.

- linux-compatible

- if possible, open source

--- 

## options - kvm

It was clear I needed a [KVM switch](https://en.wikipedia.org/wiki/KVM_switch), or something to simulate it

> A KVM switch (with KVM being an abbreviation for "keyboard, video and mouse") is a hardware device that allows a user to control multiple computers from one or more sets of keyboards, video monitors, and mice. 

<img alt="wikipedia image for kvm" src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vxgwtzlb1sa1cglahthy.png" style="zoom:20%;" />
 

- Option 1) ~~KVM hardware~~
Pricey (150€+) and pretty chaotic due to the excess usage of cables.<br/><br/>

- Option 2) KVM software
  - ~~[KVM multiplicity](https://www.stardock.com/products/multiplicity)~~. Only Windows and MAC-friendly :(<br/>

  - [KM synergy](https://symless.com/synergy/home) 
Despite not being open-source, it's linux-friendly, with a single quote pay of 30$

_**edit** 2021-06-07_

Moar options I did not try

 - kvm sw; [barrier](https://github.com/debauchee/barrier)

 - kvm sw/hw; [turning 30$ usb into a full featured two-monitor KVM](https://github.com/haimgel/display-switch)

---

## current-setup - km synergy

![Current setup](https://dev-to-uploads.s3.amazonaws.com/i/mne0qc2dh4r423mgaf30.png)

<!--
https://excalidraw.com/#json=6720818839027712,o0PMHodOVC8JYxN0iSEzpA
--> 
--- 

## other tips

- Work laptop has all the work-related stuff (sw, docs,...) while personal computer will serve as auxiliary (will use while working, but mainly for web-browsing, note-taking,...)

- In my PC Ubuntu System, I have 2 user accounts (personal and work), mainly to provide different display setup
  - personal context: V1+V2
  - work context: just V2, as V1 will be used from within my laptop, with V3

- (_edit 15.06.2021_) get a multi-device bluetooth headset. this way you can pair both computers and benefit from being able to listen/talk on both envs. for example, I am  normally getting ear-caffeine from music, on my personal computer, while requiring to keep videoconf work meetings on laptop.

---
## KM synergy - interesting setup
https://symless.com/help-articles/add-a-hotkey-or-keyboard-shortcut-to-change-to-different-screens

## KM synergy - cons


- Requires bit of **time to get used to the fact that despite having three monitors, they're two different computers**.
This applies when copy-pasting things, having the mouse on one monitor or the other, makes the action be applied or not.
for example; if i copy the text on display 1 (pc1, and move cursor to display 2 (pc2), then press cntrl+c, the text won't be copied, because cursor is activating pc2, despite text being selected on pc1.<br/><br/>

- This problem also happens with my **keyboard multimedia controller keys** (play, pause, volup, voldown), depending on where the cursor is, I will get what I want or not ...
having a more intelligent media handling would be desirable, detecting which computer has media ongoing. <br/><br/>

- It would be nice, if I have same app in multiple computers (sharing if necessary same app path), to be able to move the windows from one computer display to the other, that would open one app and close the other.


### KM synergy - quick KO's review (_2021.01_)

- copy/paste images; text copying works ok, but not images
- copy/paste text selection but mouse on other display
- drag n' drop of files between different computer display's not working
- confusing multimedia-key handing

---

For the moment this setup is more than enough for me, and hopefully in some time from now I'll get some new tricks/feedback to bump this post.

Hopefully it may come handy to someone!

_pd: thx @fmonkey for the brainstorm_