Giter Club home page Giter Club logo

remote-touchpad's Introduction

Remote Touchpad

Control mouse and keyboard from the webbrowser of a smartphone (or any other device with a touchscreen). To take control open the displayed URL or scan the QR code.

Supports Flatpak's RemoteDesktop portal (for Wayland), Windows and X11.

Installation

  • Flatpak
  • Snap
  • Windows
  • Golang:
    • Portal & uinput & X11: go install -tags portal,uinput,x11 github.com/unrud/remote-touchpad@latest
    • Windows: go install github.com/unrud/remote-touchpad@latest

Screenshots

screenshot 1

screenshot 2

screenshot 3

screenshot 4

remote-touchpad's People

Contributors

alkemyst avatar brlin-tw avatar ps100000 avatar schnusch avatar unrud avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

remote-touchpad's Issues

Not working on iOS (I guess)

Hi, the program is not working when I'm connecting from Fedora 30 (GNOME on Xorg) to my iPhone 7 and the page just shows disconnected. Not a problem to me but I thought you might want to know ;)

Keyboard send every keystroke one by one.

Typing and than sending the whole string makes it super hard to edit text typed on the remote computer.
Especially deleting and correcting single characters is almost impossible.

An option would be nice to immediately send every keystroke.

Unable to run code

Hi, I am very new to Go. I am developing an Android application which will run with "remote-touchpad". So I need to run "remote-touchpad". I am using GoLand by JetBrains to run code But I have getting following errors:

# command-line-arguments .\main.go:52:29: undefined: Backend .\main.go:79:26: undefined: KeyLimit .\main.go:82:30: undefined: Key .\main.go:95:26: undefined: PointerButtonLimit .\main.go:102:32: undefined: PointerButton .\main.go:143:2: undefined: TerminalSetTitle .\main.go:166:14: undefined: Backend .\main.go:169:30: undefined: Backends .\main.go:175:27: undefined: UnsupportedPlatformError .\main.go:204:10: undefined: FindDefaultHost .\main.go:204:10: too many errors note: module requires Go 1.15

OS: Windows 10
Please Help.

Lag when using touchpad

I tested only the flatpak version but there seems to be a lag when moving on the touchpad. It is much greater when using touchpad after a waiting a while.However, If I slide my finger without picking up from the screen there seems to be very little lag.

problem when using a vpn

Hi,

remote-touchpad as such works great on my system (as flatpak on Debian testing).

However there is one annoyance:

When my system is connected to a vpn (via openvpn) and I start remote-touchpad, the webserver uses the ip of the tun-device that openvpn creates, rather than the address in the local network - and then my mobile cannot connect.

So in this particular case it seems FindDefaultHost determines the wrong ip-address.

Starting remote-touchpad before connecting to a vpn works.

[Question] Command argument ready to use [Ubuntu]

Hello, is there any command argument to start the program ready to use?
I would like to start Ubuntu, run a command on startup, and a show a console ready with the QR code.
Sadly, first I have to select 1 of the options (mouse, keyboard, touch screen) before show the QR code.

[Feature Request] Allow users to custom the layout of keyboard and mapped keys

Hi there,

Is it possible to allow users to custom the layout of keyboard, e.g. a 1x2 grid or 3x3 grid?

When I browse my ppt, I only need two buttons for page forward and page backward, thus other buttons are useless. if they are present on the keyboard, it's easy to get them clicked by accident. However, when I read a pdf document, I need four buttons to turn the page forward, turn the page backward, slide down one line and slide up one line.

As there are various usage scenarios, supporting these scenarios separately requires a lot of work. But if the users are allowed to custom the keyboard layout and decide the function of each key, they can make targeted customization themselves for their special requirements and the developers have no need to modify the code.

Sadly, I want to help, but I am neither familiar with go language nor web development.

Cant start without login manager

When X is launched with "startx" or "xinit" I have the following error message:

"X11 backend: unsupported session type 'tty'
RemoteDesktop portal backend: keyboard or pointer source type not supported
Windows backend: disabled"

So I had to install a login manager (lightdm) to launch the app, and everything work perfectly.
I wonder if there is a way to launch it without a login manager ?

Backspace key support

Cannot find a way to send Backspace key.

Anyway is really cool app! VERY, VERY Thanks!
I long time ago trying to find something like this - simple and working!
Thanks! May the Force be with you! :)

Keyboard Emoji Button (⌨) Not Available On Some Devices

On LG phone running android 5 lollipop with chrome canary / chromium browser.

The emoji used on the html page in the bottom right corner to use the keyboard ⌨ is not visible on my phone... It shows up as a rectangle with a X inside 〿 ... Turns out that not all devices can display that specific keyboard emoji.

In order to make this great app compatible with as most devices as possible, may I suggest some more ''universal'' alternatives instead?

For Keyboard. ⌨ (Current one)
Alternatives: 🔠 - 🔡 - 🔤 - 𝍑 - 𝍔

For Fullscreen ▢ (Current one)
Alternatives: ◱ - ⿹ - ⤢

Let me know! Peace.
666777

How to build for x11 linux

Hi,
Thanks for this awesome project.
I did go get github.com/Unrud/remote-touchpad and go install github.com/Unrud/remote-touchpad.
Now when I run the application, I get error saying

❯ remote-touchpad
2020/05/23 20:56:42 unsupported platform:
X11 backend: disabled
RemoteDesktop portal backend: disabled
Windows backend: disabled
⛵ kube-f8s (monitoring) in ~/Downloads/actionforimpact
❯ remote-touchpad --help
Usage of remote-touchpad:
  -bind string
        bind server to [HOSTNAME]:PORT (default ":0")
  -cert string
        file containing TLS certificate
  -key string
        file containing TLS private key
  -secret string
        shared secret for client authentication
  -version
        show program's version number and exit

Will it support multi-finger operation?

Finally I found such a nice project that is simple enough and clear enough! The one sadness is that it seems not support multi-finger operation? Will it support that in the feature? Wating for that feature.

White terminal fails

In my system, the terminal is configured with white background and black letters. This makes the phone not to recognize the QR code:

captura de pantalla de 2018-08-14 13-28-42

I installed through flathub.

I think the app should make sure QR is always black over white.

How do I actually use this?

➜  ~ snap list
Name             Version   Rev   Tracking       Publisher   Notes
core18           20200427  1754  latest/stable  canonical✓  base
remote-touchpad  0.0.18    122   latest/stable  unrud       -
snapd            2.45.1    8140  latest/stable  canonical✓  snapd
➜  ~ remote-touchpad
2020/06/18 19:21:15 unsupported platform:
X11 backend: unsupported session type 'tty'
RemoteDesktop portal backend: The name org.freedesktop.portal.Desktop 
 was not provided by any .service files
Windows backend: disabled
OS: Arch Linux x86_64 
Kernel: 5.7.3-arch1-1 
Uptime: 6 mins 
Shell: zsh 5.8 
Terminal: kitty 
CPU: Intel i7-4790K (8) @ 4.600GHz 
Memory: 1569MiB / 31988MiB 
Disk (/): 72G / 188G (41%) 

Wayland support?

Is there any chance to have wayland support at some point? How complicated would it be?

two-finger scrolling not working in Firefox

Two finger scrolling only works immediately after setting up the server and client and opening Firefox. As soon as I switch tabs, two-finger scrolling doesn't work anymore.

Requesting native package: Atrocious 2.7 GB Flatpak!

I'm very grateful for this app because it is orders of magnitude more responsive and better feeling that KDE Connect's "Remote Input". Scrolling works well, and there is almost no lag.

The one issue is the bloat that arises due to this being packaged as a Flatpak or Snap only. On Linux Mint 21.1 XFCE, when I install the flatpak it requires 2.7 GB space which is absurd! Further, being packaged like this means it will use more RAM than it otherwise would have which is a big deal for older systems with less memory.

The project seems to be written in Go and have no GUI, which should make it trivial to package as a .deb and perhaps an .rpm. I'm sure you understand that 2.7 GB is most unreasonable!

APK

Yo,
This is one of my favorite program. I've been using and following for years. Used it on Win 10 and countless versions of Ubuntu, with Android machines dating back to version 4 up to 7, on phones and tablets. I installed all of the different installer editions. The ALL work flawlessly.

I wonder if one day... one day we'll see an APK version able to be run on Android machines... Just imagine using This application to scan a qr code and control a Android OS via a browser webpage on another Android machine!

Now THAT would be s3xy as freek ! 🐙

Hehehehe! But I guess it's not posssible... Or what about if a linux distro is installed inside a "Busybox" and "Terminal" on Android? Would it work then?

Peace!

X11 backend: unsupported session type 'wayland'

Hi guys,

I have this error when I trying to use RemoteTouch in wayland session

2021/10/08 21:10:37 unsupported platform:
X11 backend: unsupported session type 'wayland'
RemoteDesktop portal backend: keyboard or pointer source type not supported
Windows backend: disabled

I am using Nitrux OS 1.6.1 with wayland.

Some ideas?

CMakeLists.txt is missing

Title: Issue with CMakeLists.txt file in remote-touchpad repository

Description:
I am attempting to build the remote-touchpad software on my Manjaro Linux system, but I am encountering an error related to the CMakeLists.txt file. When I run the cmake command in the remote-touchpad directory, I receive the following error message:
" CMake Error: The source directory "/home/myuser/Desktop/remote-touchpad" does not appear to contain CMakeLists.txt."
However, when I navigate to the remote-touchpad directory, I cannot find the CMakeLists.txt file.

Steps to reproduce:

  1. Download the remote-touchpad source code from the GitHub repository (https://github.com/Unrud/remote-touchpad.git)
  2. Navigate to the remote-touchpad directory and run the cmake command: "cmake ."
  3. Receive the error message: "CMake Error: The source directory "/home/myuser/Desktop/remote-touchpad" does not appear to contain CMakeLists.txt."
  4. Navigate to the remote-touchpad directory and check for the presence of CMakeLists.txt.

Expected result:
The cmake command should be able to find the CMakeLists.txt file in the remote-touchpad directory and build the software successfully.

Actual result:
The CMakeLists.txt file is missing from the remote-touchpad directory, causing the cmake command to fail.

Additional information:

  • My Linux distribution is Manjaro Linux 22.0.5.
  • I have tried downloading the source code again from the GitHub repository, but the CMakeLists.txt file is still missing.
  • I have synced my package manager and attempted to install the remote-touchpad package, but it is not found.

Please let me know if there is any additional information I can provide to help resolve this issue. Thank you.

Volume Control not working in full screen mode

hey great stuff with volume and media control BUT..
All volume and media control buttons are working but when in full screen mode via the lower left corner fullscreen button the volume and media buttons are clickable but they dont trigger anything actions on the host. device.

Features request: Add mouse acceleration, touch gestures

I think these are helpful features. Currently, I need to swipe few times on my phone to move the cursor to the place I want. It would be great if we could have mouse acceleration feature.
Furthermore, if we could add some useful touch gestures for browsing (backward, forward), open overview in Linux gnome, etc, that would be awesome.

Thanks for the great work!

Adding volume control to UI

Hey.
How easy would it be to add Volume_Up and Volume_Down functions at the bottom of the UI? Maybe using the MultiMedia functions keys or XF86AudioRaiseVolume & XF86AudioLowerVolume in order to control the host/server device's Master Volume level.
I created this mock-up:
screenshot_2018-09-23-01-15-50

Peace!

Please add the option to reverse the scrolling

Actually the scrolling is natural scrolling.
I want it to be reverse. meaning that when I move two fingers up the scrollbar should go up also.

Please add a command line argument supporting this. Thanks.

feature request: custom layouts and/or numeric keypad layout

This is a very useful utility, thank you. The layout with the media keys and so on is also really helpful.
Another useful thing could be to allow people to provide their own custom html file with their own layouts by a commandline switch or config file. (I guess this would require modification in the inputcontrol directory to ensure that all the possible keys were able to be used etc.)

For example, one could then make a custom layout to allow the phone to be used as a numeric keypad for a small laptop that doesn't have one, or make other custom layouts for use with particular apps.

Thanks again.

Static QR Code

I would like to have the QR code be static and not change every time on start up. THis program is amazing!!! :)

Please add mouse buttons.

I was hoping to use this to draw or write on my PC with a little more ease than a mouse, but it's not possible without mouse buttons.

ios: Confusing zooming on fast touch

HI @Unrud

Many thanks for great tool!
I faced with next behavior, when you try to volume up/down with many touches quite fast, browser view make zoom in and buttons just move from their position, so you're making miss touch.

I found solution:
https://stackoverflow.com/questions/46167604/ios-html-disable-double-tap-to-zoom
https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action

Interesting note this happened only on buttons. For other screen and touchpad it is not zoomed.
I'm not frontend/CSS developer, so maybe there is some better solution for this.

I can prepare PR and make tests. What do you think about this?

Windows controller: Access is denied.

Hello,

1.4.1 isn't working on Windows 11, earlier versions are fine.

Steps to reproduce :

  • Download 1.4.1
  • Setup (with stable URL in my case)
  • Open the page on a mobile phone (Android - Chrome)
  • Click on the "refresh" symbol to connect
  • Client is connected
  • As soon as the client (web browser) send mouse movements, it goes back to "Disconnected"

Servers shows : "2023/05/20 17:17:10 Windows controller: Access is denied."

  • Click on the "refresh" symbol to connect reconnects but the error happens again as soon as the pointer is moved.

1.4.0 -1.2.1 are fine. Seems the last version only is affected.

Thanks for having a look.

Using for presentations with libreoffice impress

Is there any way to get the arrow keys to work with LibreOffice Impress (Prev/Next Slide)?
The mouse works fine but not the buttons. It seems it sends XF86Forward/Back events but libreoffice does not recognize them. I tried (without luck) to remap these events to Left/Right arrow keys:

xmodmap -e 'keysym XF86Back = Left' -e 'keysym XF86Forward = Right'

Support older browsers

Hi,

It would be nice to support older browsers.
The javascript code here is simple enough. I think all what's needed is to replace const and let with var in fn.js.
That did the job for me but I thought it would be good to mention here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.