[GH-ISSUE #295] Please improve documentation/UX #153

Open
opened 2026-05-05 22:11:55 -06:00 by gitea-mirror · 1 comment
Owner

Originally created by @satyamjay-iitd on GitHub (May 17, 2025).
Original GitHub issue: https://github.com/feschber/lan-mouse/issues/295

First of all thank you for creating this software. None of the sofware (barrier, inputleap, deskflow) worked for me for my setup because of the lack of Hyprland support, except lan-mouse. But I had to struggle a lot to get it to work.

I have the following setup:-
Left:- MacOS. (Main machine whose mouse and KB i want use to drive both the machines)
Right:- Hyprland

Following were my pain points:-

  1. Coming from barrier, I didn't know you had to create connections on both sides. This is mentioned in the README.md so partially my fault too.
  2. I didn't know what to put in the hostname. My hosts are not resolvable by their names, so I tried to put IPs but it didn't work. Putting the following in config worked, which I only found after digging through issues.
[left]
hostname = "Satyams-Mac-mini.local"
ips = ["10.237.x.x", "10.194.x.x"]
  1. Coming from barrier, I didn't know you had to press a combination of keys (alt,ctrl,shift,mod by default) to go back. This was mentioned in the logs but I didn't notice it for a while. Also it didn't help that pressing (alt,ctrl,shift,mod) didnt actually moved me back. I had to change it to [a,s,d,f] in the config to make it work.
  2. Things I still haven't figured out:- How to force my Mac(which has both ethernet and wifi) to use the ethernet for lan-mouse. Also when I move to Hyprland my scrolling gets inverted.
Originally created by @satyamjay-iitd on GitHub (May 17, 2025). Original GitHub issue: https://github.com/feschber/lan-mouse/issues/295 First of all thank you for creating this software. None of the sofware (barrier, inputleap, deskflow) worked for me for my setup because of the lack of Hyprland support, except lan-mouse. But I had to struggle a lot to get it to work. I have the following setup:- Left:- MacOS. (Main machine whose mouse and KB i want use to drive both the machines) Right:- Hyprland Following were my pain points:- 1. Coming from barrier, I didn't know you had to create connections on both sides. This is mentioned in the README.md so partially my fault too. 2. I didn't know what to put in the hostname. My hosts are not resolvable by their names, so I tried to put IPs but it didn't work. Putting the following in config worked, which I only found after digging through issues. ```toml [left] hostname = "Satyams-Mac-mini.local" ips = ["10.237.x.x", "10.194.x.x"] ``` 3. Coming from barrier, I didn't know you had to press a combination of keys (alt,ctrl,shift,mod by default) to go back. This was mentioned in the logs but I didn't notice it for a while. Also it didn't help that pressing (alt,ctrl,shift,mod) didnt actually moved me back. I had to change it to [a,s,d,f] in the config to make it work. 4. Things I still haven't figured out:- How to force my Mac(which has both ethernet and wifi) to use the ethernet for lan-mouse. Also when I move to Hyprland my scrolling gets inverted.
gitea-mirror added the
documentation
label 2026-05-05 22:11:55 -06:00
Author
Owner

@DrYak commented on GitHub (Jul 28, 2025):

My hosts are not resolvable by their names

This is a bug #261 of the way the Rust crate (that lan-mouse happens to use) resolves name: it always sends everything to the DNS server exclusively and normally DNS servers aren't supposed to resolve .local names, those names must always be handled by mDNS which is not handled by that crate.

In addition to the IP another work around is to use the domain that is provided by your modem/router (.home, .fritz.box, etc.) which will be resolved by its DNS and will work in lan-mouse.

Third solution is to use tweaks that allow DNS resolvers to forward .local names to mDNS if available (I don't know about Mac OS. On Linux you can tweak your systemd-resolverd to do so, or add avahi2dns downstream of a local resolver)

I didn't know you had to press a combination of keys (alt,ctrl,shift,mod by default) to go back.

Technically, you don't have to, but automatically moving back requires that the mouse is correctly captured on the remote.
And some remote only implement emulation (the remote can recieve mouse movements from lan-mouse), not capture (lan-mouse can know what's happening on the remote and knows that the mouse tries to leave the screen). It's partially explained covered in the capture table of the README, but reading that requires to understand how all elements work internally (apparently neither layer-shell nor libei work on Hyprland?).
Some good doc writer should write a simple ELI5 intro to these tables.

I had to change it to [a,s,d,f] in the config to make it work.

It's in this box:

Sway / wlroots: Wlroots based compositors without libei support on the receiving end currently do not handle modifier events on the client side. This results in CTRL / SHIFT / ALT / SUPER keys not working with a sending device that is NOT using the layer-shell backend

but again requiring to understand internals (your Hyprland doesn't support libei so can't use the default combo to disconnetc?)
Again somebody should ELI5 it.

How to force my Mac(which has both ethernet and wifi) to use the ethernet for lan-mouse

Do you get different IPs on each interface? (I guess given you example. I suppose you could try deleting the one IP from your Wifi network and keep only the IP from your wired connection):

[left]
hostname = "Satyams-Mac-mini.local"
ips = ["10.237.x.x", "10.194.x.x"]

Though this is not a guarantee that the Mac won't try to do something stupid
(Mac OS ⇒ Wifi connection ⇒ Router/Modem ⇒ Wired connection ⇒Linux machine on fixed IP).
That stupid thing is what literally my laptop does when in my University (tries to contact my workstation's fixed IP over Eduroam despite different networks), in which case the only sane solution is to simply temporarily turn Wifi off(*)

(*): Given how often my Mac-using colleagues need to do this to solve various networking problems (e.g. Zoom), I guess there's a high change you need to do that.

Also when I move to Hyprland my scrolling gets inverted.

Sadly a limitation of how it works on non-libei backends (it's not getting/sending mouse input event it's trying to guess/send scrollbar motions). Tons of issues are opened around this.

<!-- gh-comment-id:3127582602 --> @DrYak commented on GitHub (Jul 28, 2025): > My hosts are not resolvable by their names This is a bug #261 of the way the Rust crate (that lan-mouse happens to use) resolves name: it always sends everything to the DNS server exclusively and normally DNS servers aren't supposed to resolve `.local` names, those names must always be handled by mDNS which is not handled by that crate. In addition to the IP another work around is to use the domain that is provided by your modem/router (`.home`, `.fritz.box`, etc.) which _will_ be resolved by its DNS and will work in lan-mouse. Third solution is to use tweaks that allow DNS resolvers to forward .local names to mDNS if available (I don't know about Mac OS. On Linux you can tweak your systemd-resolverd to do so, or add avahi2dns downstream of a local resolver) > I didn't know you had to press a combination of keys (alt,ctrl,shift,mod by default) to go back. Technically, you don't _have to_, but automatically moving back requires that the mouse is correctly _captured_ on the remote. And some remote only implement _emulation_ (the remote can recieve mouse movements from lan-mouse), not _capture_ (lan-mouse can know what's happening on the remote and knows that the mouse tries to leave the screen). It's partially explained covered [in the capture table of the README](https://github.com/feschber/lan-mouse?tab=readme-ov-file#input-capture-support), but reading that requires to understand how all elements work internally (apparently neither layer-shell nor libei work on Hyprland?). Some good doc writer should write a simple ELI5 intro to these tables. > I had to change it to [a,s,d,f] in the config to make it work. It's in this box: > Sway / wlroots: Wlroots based compositors without libei support on the receiving end currently do not handle modifier events on the client side. This results in CTRL / SHIFT / ALT / SUPER keys not working with a sending device that is NOT using the layer-shell backend but again requiring to understand internals (your Hyprland doesn't support libei so can't use the default combo to disconnetc?) Again somebody should ELI5 it. > How to force my Mac(which has both ethernet and wifi) to use the ethernet for lan-mouse Do you get different IPs on each interface? (I guess given you example. I suppose you could try deleting the one IP from your Wifi network and keep only the IP from your wired connection): ```toml [left] hostname = "Satyams-Mac-mini.local" ips = ["10.237.x.x", "10.194.x.x"] ``` Though this is not a guarantee that the Mac won't try to do something stupid (Mac OS ⇒ Wifi connection ⇒ Router/Modem ⇒ Wired connection ⇒Linux machine on fixed IP). That stupid thing is what literally my laptop does when in my University (tries to contact my workstation's fixed IP over Eduroam despite different networks), in which case the only sane solution is to simply temporarily turn Wifi off(*) (*): Given how often my Mac-using colleagues need to do this to solve various networking problems (e.g. Zoom), I guess there's a high change you need to do that. > Also when I move to Hyprland my scrolling gets inverted. Sadly a limitation of how it works on non-libei backends (it's not getting/sending mouse input event it's trying to guess/send scrollbar motions). Tons of issues are opened around this.
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#153
No description provided.