[GH-ISSUE #231] Lan Mouse Mobile Server #109

Closed
opened 2026-05-05 22:09:48 -06:00 by gitea-mirror · 15 comments
Owner

Originally created by @rohitsangwan01 on GitHub (Nov 9, 2024).
Original GitHub issue: https://github.com/feschber/lan-mouse/issues/231

As discussed in this comment, here is the LanMouse Mobile Server initial version:

LanMouse Mobile GitHub Repository

While a few features are still being worked on, it’s overall functioning well. I've tested it with the following setups:

  • Android <-> macOS
  • iOS <-> macOS

You can download the test APK from the Releases section.

Feel free to check it out!

Originally created by @rohitsangwan01 on GitHub (Nov 9, 2024). Original GitHub issue: https://github.com/feschber/lan-mouse/issues/231 As discussed [in this comment](https://github.com/feschber/lan-mouse/issues/217#issuecomment-2464659116), here is the LanMouse Mobile Server initial version: [LanMouse Mobile GitHub Repository](https://github.com/rohitsangwan01/lan-mouse-mobile) While a few features are still being worked on, it’s overall functioning well. I've tested it with the following setups: - Android <-> macOS - iOS <-> macOS You can download the test APK from the [Releases section](https://github.com/rohitsangwan01/lan-mouse-mobile/releases). Feel free to check it out!
Author
Owner

@feschber commented on GitHub (Nov 9, 2024):

Very cool! Working out of the box 😃.

Scrolling is a bit weird (seems like on_scroll is activated after completing a scroll instead of immediately and for each "step").

I just merged encryption support so you are going to have to add support for DTLS in case you want to adapt this to the latest version.

<!-- gh-comment-id:2466222396 --> @feschber commented on GitHub (Nov 9, 2024): Very cool! Working out of the box :smiley:. Scrolling is a bit weird (seems like `on_scroll` is activated *after* completing a scroll instead of immediately and for each "step"). I just merged encryption support so you are going to have to add support for DTLS in case you want to adapt this to the latest version.
Author
Owner

@feschber commented on GitHub (Nov 9, 2024):

And one more suggestion:

Tap + drag would be a nice feature, as in keep mouse 1 pressed in case it is immediately (within maybe 250ms) followed by a drag action until the drag is finished.

<!-- gh-comment-id:2466223227 --> @feschber commented on GitHub (Nov 9, 2024): And one more suggestion: Tap + drag would be a nice feature, as in keep mouse 1 pressed in case it is immediately (within maybe 250ms) followed by a drag action until the drag is finished.
Author
Owner

@feschber commented on GitHub (Nov 9, 2024):

I added a link to your repo to the README

<!-- gh-comment-id:2466227377 --> @feschber commented on GitHub (Nov 9, 2024): I added a link to your repo to the [README](https://github.com/feschber/lan-mouse?tab=readme-ov-file#android--ios)
Author
Owner

@rohitsangwan01 commented on GitHub (Nov 9, 2024):

@feschber Thankyou for the feedbacks
Will try to apply the suggestions and add encryption support as well,
i have to check the code on how Encryption is implemented

<!-- gh-comment-id:2466239604 --> @rohitsangwan01 commented on GitHub (Nov 9, 2024): @feschber Thankyou for the feedbacks Will try to apply the suggestions and add encryption support as well, i have to check the code on how Encryption is implemented
Author
Owner

@rohitsangwan01 commented on GitHub (Nov 9, 2024):

Am having issue in implementing keyEvents, i tried implementing like this, but after sending these events
MacOs stucked in keyPressed state, and only option i had was to force restart Mac
Seems like KeyRelease event is somehow ignored or maybe some kind of race condition

<!-- gh-comment-id:2466240032 --> @rohitsangwan01 commented on GitHub (Nov 9, 2024): Am having issue in implementing keyEvents, i tried implementing like [this](https://github.com/rohitsangwan01/lan-mouse-mobile/blob/bc0e6b4de087835a6d58a5456b85215c73fc6e55/lib/app/modules/server/widgets/keyboard_handler.dart#L19), but after sending these events MacOs stucked in keyPressed state, and only option i had was to force restart Mac Seems like KeyRelease event is somehow ignored or maybe some kind of race condition
Author
Owner

@feschber commented on GitHub (Nov 9, 2024):

I recently fixed an issue with stuck keys on MacOS concerning modifier keys (CTRL / OPTION / CMD / CAPSLOCK / SHIFT).

Did you check the latest version?

Definitely possible there is still something wrong though

<!-- gh-comment-id:2466247628 --> @feschber commented on GitHub (Nov 9, 2024): I recently fixed an issue with stuck keys on MacOS concerning modifier keys (CTRL / OPTION / CMD / CAPSLOCK / SHIFT). Did you check the latest version? Definitely possible there is still something wrong though
Author
Owner

@feschber commented on GitHub (Nov 9, 2024):

For encryption you dont really need to know anything other than the fact that its using DTLS v1.2 and a sha256 fingerprint for certificate verification.

You can obtain a fingerprint through openssl using

openssl x509 -in lan-mouse.pem -noout -sha256 -fingerprint

where lan-mouse.pem is the file containing the ssl certificate.

<!-- gh-comment-id:2466249421 --> @feschber commented on GitHub (Nov 9, 2024): For encryption you dont really need to know anything other than the fact that its using DTLS v1.2 and a sha256 fingerprint for certificate verification. You can obtain a fingerprint through openssl using ```sh openssl x509 -in lan-mouse.pem -noout -sha256 -fingerprint ``` where `lan-mouse.pem` is the file containing the ssl certificate.
Author
Owner

@rohitsangwan01 commented on GitHub (Nov 9, 2024):

Thankyou for the info, will implementing in new versions

<!-- gh-comment-id:2466252173 --> @rohitsangwan01 commented on GitHub (Nov 9, 2024): Thankyou for the info, will implementing in new versions
Author
Owner

@rohitsangwan01 commented on GitHub (Nov 10, 2024):

@feschber Added Encryption support in V0.0.2
Udp and Encryption logic is now in Rust and UI part in Flutter

<!-- gh-comment-id:2466718801 --> @rohitsangwan01 commented on GitHub (Nov 10, 2024): @feschber Added Encryption support in [V0.0.2](https://github.com/rohitsangwan01/lan-mouse-mobile/releases/tag/0.0.2) Udp and Encryption logic is now in Rust and UI part in Flutter
Author
Owner

@feschber commented on GitHub (Nov 10, 2024):

That was fast! I'm impressed. And it's working flawlessly as well! I updated the REAMDE accordingly

<!-- gh-comment-id:2466761059 --> @feschber commented on GitHub (Nov 10, 2024): That was fast! I'm impressed. And it's working flawlessly as well! I updated the REAMDE accordingly
Author
Owner

@rohitsangwan01 commented on GitHub (Nov 10, 2024):

Glad to hear it's working smoothly! it's always great when everything comes together seamlessly. Let me know if there’s anything else I can help with!

<!-- gh-comment-id:2466785976 --> @rohitsangwan01 commented on GitHub (Nov 10, 2024): Glad to hear it's working smoothly! it's always great when everything comes together seamlessly. Let me know if there’s anything else I can help with!
Author
Owner

@rohitsangwan01 commented on GitHub (Nov 16, 2024):

@feschber do you think using Flutter for Frontend can be an option for LanMouse ?
There are plugins to easily integrate Flutter and Rust like flutter_rust_bridge, which i have also used in LanMouseMobile, and few Popular softwares like RustDesk is also using Rust + Flutter
I think its easy to build on every platform and more freedom in building UI

<!-- gh-comment-id:2480363421 --> @rohitsangwan01 commented on GitHub (Nov 16, 2024): @feschber do you think using Flutter for Frontend can be an option for LanMouse ? There are plugins to easily integrate Flutter and Rust like [flutter_rust_bridge](https://pub.dev/packages/flutter_rust_bridge), which i have also used in LanMouseMobile, and few Popular softwares like RustDesk is also using Rust + Flutter I think its easy to build on every platform and more freedom in building UI
Author
Owner

@feschber commented on GitHub (Nov 16, 2024):

I intentionally designed lan-mouse in a way to make it easy to create new frontends. I don't want to replace the Gtk frontend, but I certainly dont have anything against a flutter frontend.

<!-- gh-comment-id:2480534142 --> @feschber commented on GitHub (Nov 16, 2024): I intentionally designed lan-mouse in a way to make it easy to create new frontends. I don't want to _replace_ the Gtk frontend, but I certainly dont have anything against a flutter frontend.
Author
Owner

@feschber commented on GitHub (Nov 16, 2024):

lan-mouse-ipc is responsible for the communication, if you want to have a look

<!-- gh-comment-id:2480534760 --> @feschber commented on GitHub (Nov 16, 2024): [lan-mouse-ipc](https://github.com/feschber/lan-mouse/tree/main/lan-mouse-ipc) is responsible for the communication, if you want to have a look
Author
Owner

@rohitsangwan01 commented on GitHub (Nov 16, 2024):

I tried writing frontend in flutter,
It works fine but Issue is to maintain dart and lanMouse's rust communication protocols in sync
In case if anything changes in future

<!-- gh-comment-id:2480564702 --> @rohitsangwan01 commented on GitHub (Nov 16, 2024): I tried writing frontend in flutter, It works fine but Issue is to maintain dart and lanMouse's rust communication protocols in sync In case if anything changes in future
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/lan-mouse#109
No description provided.