diff --git a/README.md b/README.md index 461b3bd..e00fef3 100644 --- a/README.md +++ b/README.md @@ -24,22 +24,14 @@ https://github.com/Akilan1999/laplace/tree/keyboard_mouse ### Installation required to share keyboard and mouse -To do this we ensure that the client either has an IPV6 -address or a public IPV4 address. -We use the popular open repository known as [Barrier KVM](https://github.com/debauchee/barrier). +We need to ensure that the client has SSH client installed. +We use the popular open repository known as [x2x](https://github.com/dottedmag/x2x). -#### What is Barrier kvm? +Note: x2x runs on top of SSH. -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 KVM build status and links to install -|Platform |Build Status| -| --:|:-- | -|Linux |[](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)| -|Mac |[](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)| -|Windows Debug |[](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)| -|Windows Release|[](https://dev.azure.com/debauchee/Barrier/_build/latest?definitionId=1&branchName=master)| -|Snap |[](https://build.snapcraft.io/user/debauchee/barrier)| +#### What is x2x? +x2x allows the keyboard, mouse on one X display to be used to control another X +display. It also shares X clipboards between the displays. ### Build from source @@ -48,7 +40,6 @@ Barrier is software that mimics the functionality of a KVM switch, which histori # Assumes to be running on ubuntu 20.04 # Ports required to be allocated internally: # - 8888 (laplace server) -# - 24800 (barrier server) # Updating and installing go compiler apt update @@ -56,8 +47,8 @@ apt install -y golang apt install -y jq ## Installing git apt install -y git -## Installing barrier -apt install -y barrier +## Installing x2x +apt install -y x2x ## Installing chromium wget https://github.com/RobRich999/Chromium_Clang/releases/download/v94.0.4585.0-r904940-linux64-deb-avx/chromium-browser-unstable_94.0.4585.0-1_amd64.deb apt install -y ./chromium-browser-unstable_94.0.4585.0-1_amd64.deb diff --git a/config/config.go b/config/config.go index 25d0703..f4ef3f7 100644 --- a/config/config.go +++ b/config/config.go @@ -24,6 +24,7 @@ type Config struct { Rooms string IPAddress string ScriptToExecute string + SSHPassword string } // Exists reports whether the named file or directory exists. @@ -63,6 +64,7 @@ func SetDefaults() error { defaults["Rooms"] = defaultPath + "room.json" defaults["IPAddress"] = "0.0.0.0" defaults["ScriptToExecute"] = "" + defaults["SSHPassword"] = "" //Paths to search for config file configPaths = append(configPaths, defaultPath) diff --git a/core/signal.go b/core/signal.go index ae6d0fd..fb467ee 100644 --- a/core/signal.go +++ b/core/signal.go @@ -53,7 +53,20 @@ func GetHttp() *http.ServeMux { return } - fmt.Fprintf(w, configResp.BarrierHostName) + fmt.Fprintf(w, configResp.SystemUsername) + }) + + //Get SSH password of the current machine + server.HandleFunc("/SSHPassword", func(w http.ResponseWriter, r *http.Request) { + + // Read hostname from config file + configResp, err := config.ConfigInit() + if err != nil { + print(err) + return + } + + fmt.Fprintf(w, configResp.SSHPassword) }) server.HandleFunc("/ws_serve", func(writer http.ResponseWriter, request *http.Request) { diff --git a/files/main.html b/files/main.html index d52e2d0..36c1daf 100644 --- a/files/main.html +++ b/files/main.html @@ -45,18 +45,18 @@
- This is a feature is still on beta testing. This feature will ensure that you can share the keyboard
- and mouse of the server machine.
-
- Note: This only works if the laplace server has barrierc installed and the room name you are connecting
- too belongs to the server.
-
+ Ensure you have an SSH client installed on your machine +
+ssh -XC @ x2x -west -to :0.0
+Password:
++ Move your mouse to the west, and you should have access to the other computer. +
+ +