Commit Graph

83 Commits

Author SHA1 Message Date
Ferdinand Schober
b472b56b10 fix a compiler warning 2023-12-10 14:26:05 +01:00
Ferdinand Schober
e3f9947284 macos: enable running lan-mouse on macos (#42)
* macos: initial support

- adapted conditional compilation
- moved lan-mouse socket to ~/Library/Caches/lan-mouse-socket.sock instead of XDG_RUNTIME_DIR
- support for mouse input emulation
TODO: Keycode translation, input capture
2023-12-09 01:35:08 +01:00
Ferdinand Schober
5a7e0cf89c formatting 2023-12-09 00:43:54 +01:00
Ferdinand Schober
56e5f7a30d Background service (#43)
better handling of background-service: lan-mouse can now be run without a gui by specifying --daemon as an argument.
Otherwise the servic will be run as a child process and correctly terminate when the window is closed / frontend exits.

Closes #38
2023-12-09 00:36:01 +01:00
Ferdinand Schober
b01f7c2793 move server to src/ 2023-12-03 22:37:41 +01:00
Ferdinand Schober
74eebc07d8 Libei support - input emulation (#33)
Add support for input emulation through libei!
2023-12-03 21:56:01 +01:00
Ferdinand Schober
e6677c3061 Respect XDG_CONFIG_HOME for config.toml location (#41)
* Respect XDG_CONFIG_HOME for config.toml location
* add option to specify config via commandline

closes #39
2023-12-01 11:16:56 +01:00
Ferdinand Schober
e88241e816 port changing functionality (#34)
* port changing functionality

* add portchange to cli frontend
2023-10-17 15:12:17 +02:00
Ferdinand Schober
be0fe9f2d9 Support event consumer on KDE! (portal backend) (#31)
* Support event consumer on KDE! (portal backend)

Support for KDE event emulation using the remote-desktop xdg-desktop-portal

* fix scrolling (TODO: smooth / kinetic scrolling)

* windows: fix compilation errors

* Update README.md
2023-10-13 13:57:33 +02:00
Ferdinand Schober
4cdc5ea49c windows: fix compilation error 2023-10-12 12:48:39 +02:00
Ferdinand Schober
96ab7d304b wlroots: Fix crash when socket is overwhelmed
Previously when the output buffer was overwhelmed, additional
events were submitted until the outgoing buffer filled up, which
causes the wayland-connection to 'break' and not accept further attempts
to flush() the socket.
2023-10-12 12:40:57 +02:00
Ferdinand Schober
ab2514e508 Async (#30)
- manual eventloop now replaced by asycn-await using the tokio runtime
- dns no longer blocks the event loop
- simplifies logic
- makes xdg-desktop-portal easier to integrate
2023-10-11 14:52:18 +02:00
Ferdinand Schober
851b6d60eb Avoid sending frame events (#29)
* Avoid sending frame events

Frame events are now implicit - each network event implies a frame event
TODO: Accumulate correctly

* remove trace logs from producer
2023-09-28 13:01:38 +02:00
Ferdinand Schober
06725f4b14 Frontend improvement (#27)
* removed redundant dns lookups
* frontend now correctly reflects the state of the backend
* config.toml is loaded when starting gtk frontend
2023-09-25 13:03:17 +02:00
Ferdinand Schober
603646c799 Add LM_DEBUG_LAYER_SHELL environment variable
setting LM_DEBUG_LAYER_SHELL to a value will
make the indicators visible
2023-09-21 18:23:01 +02:00
Ferdinand Schober
0fbd09b07f fix 1px gap 2023-09-21 13:22:23 +02:00
Ferdinand Schober
96dd9c05a1 fix interference with swaybar 2023-09-21 12:57:51 +02:00
Ferdinand Schober
08893a39be fix incorrect orientation of layer surfaces
top and bottom surfaces were not sized & oriented correctly
closes #3
2023-09-21 12:35:27 +02:00
Ferdinand Schober
48b701b726 remove an unused import 2023-09-21 00:13:53 +02:00
Ferdinand Schober
891e21d3e9 read all output globals 2023-09-21 00:12:11 +02:00
Ferdinand Schober
d042c0aa4a Libadwaita gui (#19)
Major Update: Functional GUI Frontend!
2023-09-20 15:23:33 +02:00
Ferdinand Schober
c50b746816 fix 2023-09-19 21:13:17 +02:00
Ferdinand Schober
3b09abb532 unlink socket in case it's left over from a crash 2023-09-19 21:11:47 +02:00
Ferdinand Schober
61b22fff51 fix a crash 2023-09-19 19:46:43 +02:00
Ferdinand Schober
16311f8ae6 fix interrupted syscall when waking from suspend (#23) 2023-09-19 19:33:04 +02:00
Ferdinand Schober
1a4d0e05be Epoll (#20)
major update:
- remove threading overhead by resorting to an event driven design with mio as a backend for epoll
- Clients can now have an arbitrary amount of ip adresses and lan-mouse will automatically choose the correct one
- -> seemless switching between ethernet and wifi
- cli frontend + frontend adapter for future frontends
2023-09-19 19:12:47 +02:00
Ferdinand Schober
22e6c531af hotfix: Oneshot seems to crash Hyprland (#22)
closes #21
2023-09-17 14:32:47 +02:00
Ferdinand Schober
31eead5f8e continue without keymap (#18) 2023-09-12 12:17:44 +02:00
Ferdinand Schober
b74f1b4291 Default port now 4242 everywhere (#14) 2023-06-11 21:54:40 +02:00
Ferdinand Schober
f0d70492c5 Update deps and README, change default port (#13) 2023-06-11 21:21:38 +02:00
Ferdinand Schober
982f35f56a rudimentary keyboard support for windows (#12) 2023-06-11 15:34:59 +02:00
Ferdinand Schober
929ac1c643 Add full mouse support on windows (#11) 2023-06-11 14:32:29 +02:00
Ferdinand Schober
57b0d898c1 better error handling for port in use (#10) 2023-06-10 16:02:24 +02:00
Ferdinand Schober
a1100cc8b2 Cleanup (#9)
* support for cmdline args and better error handling

* make config.toml optional

* more unwraps removed
2023-06-10 15:45:19 +02:00
Ferdinand Schober
225ef818a2 Initial Hotplug support (#8)
This allows to dynamically add clients when an event is received from an unknown IP address.

The user is asked to confirm any unknown connection from new clients.

Currently the back-ends for event producing and consuming are not yet notified, so events will not be received and sent to the newly created clients.
2023-06-10 15:26:48 +02:00
Ferdinand Schober
0feb1350a9 update example config + add help message for releasing mouse (#7) 2023-04-05 08:44:17 +02:00
Ferdinand Schober
a2d2e904f8 support for cmdline args and better error handling (#4)
* support for cmdline args and better error handling

* make config.toml optional

* dont abuse panic for error handling

* update doc

* more panics removed

* more unwraps removed
2023-02-18 04:03:10 +01:00
Ferdinand Schober
deb1548e21 cleanup
* cleanup Cargo.toml

* exclude backend from windows build

* remove env include in windows build

* remove Backend from windows build

* fix compiler warning
2023-02-17 14:40:40 +01:00
Ferdinand Schober
ad68bc53fd fix windows build 2023-02-17 13:41:06 +01:00
Ferdinand Schober
4c66b37a2f enable conditional compilation for all backends
To reduce binary size one can now enable only specific backends, e.g.
wayland or x11 via cargo features

Additionally adds stubs for libei and xdg-desktop-portal backends
2023-02-17 13:06:13 +01:00
Ferdinand Schober
049e17775e authenticate fake-input 2023-02-15 14:07:58 +01:00
Ferdinand Schober
f2e0850e68 support kde-fake-input
(unfortunatelly does not seem to work)
2023-02-14 02:02:05 +01:00
Ferdinand Schober
437a599504 formatting 2023-02-14 00:55:02 +01:00
Ferdinand Schober
6aa525c960 use private mapping (otherwise permission error on KDE) 2023-02-14 00:49:50 +01:00
Ferdinand Schober
f20f009b41 cleanup conditional compilation 2023-02-13 21:35:06 +01:00
Ferdinand Schober
6898a961cb better error messages 2023-02-13 17:41:10 +01:00
Ferdinand Schober
1c3cd775a3 add todo 2023-02-13 17:40:29 +01:00
Ferdinand Schober
00f52923b8 fix windows build 2023-02-13 16:50:11 +01:00
Ferdinand Schober
d4d8ebbaeb add session detection 2023-02-12 22:37:18 +01:00
Ferdinand Schober
20cf6d450a initial x11 support 2023-02-12 22:15:19 +01:00