Jon Kinney
d3d0804fee
fix: write a default config.toml on every Config::new()
...
The previous fix created the config directory but left config.toml
absent on a first launch, which surfaced as two "No such file or
directory (os error 2)" warnings (one from the main process, one
from the spawned daemon child) and left the app starting up with
config_toml=None until the GUI persisted something.
Write ConfigToml::default() to the path if it doesn't exist, so
every entry point — GUI main, spawned daemon, CLI, test commands
— gets a concrete file to read, and first-launch logs stay clean.
Also reorders Config::new() so both the directory creation and the
file bootstrap run before the first read attempt, eliminating the
warning at the source rather than hiding it.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-24 02:22:42 -05:00
Jon Kinney
546d133aeb
fix: create ~/.config/lan-mouse/ on first launch
...
notify::Watcher fails on macOS if the config directory doesn't
exist. Create it with create_dir_all before calling config.watch().
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-24 02:08:59 -05:00
Ferdinand Schober
a878c985f0
automatically update config when changed ( #402 )
2026-04-09 12:04:21 +02:00
Ferdinand Schober
aef05f386f
fix: config initialization in authorize
2026-04-08 17:43:25 +02:00
Ferdinand Schober
8e96025f12
clear config, when unable to parse
2026-02-08 13:27:38 +01:00
Ferdinand Schober
f01459b2a8
fix crash when config file does not exist
2026-02-08 13:23:29 +01:00
Ferdinand Schober
648b2b58a4
Save config ( #345 )
...
* add setters for clients and authorized keys
* impl change config request
* basic saving functionality
* save config automatically
* add TODO comment
2026-02-07 18:36:07 +01:00
Jon Stelly
0d96948c26
fix: remote key-up on triggered release ( #371 )
...
Fixes #369
2026-02-06 16:06:19 +01:00
Ferdinand Schober
640fa995a4
improve reliability of connections ( #349 )
2025-11-03 18:04:18 +01:00
NeoTheFox
3f13714d8a
Add rustfmt.toml for explicit styling ( #348 )
...
* Propose an explicit .rustfnt.toml
Use 2024 style, 4 spaces for tabs and epand the default width a tad
* Auto-format the existing code with new rules
2025-11-02 11:52:01 +01:00
Ferdinand Schober
0dd413e989
prevent authorization request spamming windows ( #335 )
2025-10-28 07:25:01 +01:00
Ferdinand Schober
eb1dcbddb0
update dependencies ( #302 )
...
* update dependencies
* update windows
* clippy: inline format args
* update flake
* update core-graphics
* fix poll after completion error
* fix ashpd?!
2025-10-08 16:10:32 +02:00
Ferdinand Schober
5a3a21c2c0
clients should not be mandatory in configuration ( #285 )
...
closes #284
2025-04-01 13:22:08 +02:00
Ferdinand Schober
3ec23d7171
unauthorized device accept notification ( #282 )
...
* ask the user to accept unauthorized devices
* only alert on actual error
2025-03-22 22:50:19 +01:00
Michel Lao
15296263b2
Fix parsing TOML key 'position' and values ( #281 )
...
* fix parsing toml key position and values
* Using rename_all instead rename over each enum
* rename struct field directly
---------
Co-authored-by: Ferdinand Schober <ferdinand.schober@fau.de >
2025-03-21 14:02:38 +01:00
Ferdinand Schober
92f652df2e
feat: simplify and change configuration ( #279 )
...
*breaking change*
this changes the configuration syntax, allowing for an unlimited amount of configured clients.
Also a first step towards enabling a "save config" feature.
2025-03-15 18:45:19 +01:00
Ferdinand Schober
2f6a3629ad
remove cli frontend in favour of cli subcommand ( #278 )
...
this removes the cli frontend entirely, replacing it with a subcommand instead
2025-03-15 18:20:25 +01:00
Ferdinand Schober
50a778452e
Gtk frontend rework ( #276 )
...
client configuration now applies immediately instead of after enabling / disabling clients.
Also fixes a potential feedback loop when changing settings.
2025-03-15 01:21:53 +01:00
Ferdinand Schober
f247300f8c
cancel previous dns request if a new one is made ( #275 )
2025-03-14 23:07:21 +01:00
Ferdinand Schober
3e1c3e95b7
use shadow-rs instead of executing git describe
...
this removes git from the build dependencies
2025-01-27 16:51:25 +01:00
Ferdinand Schober
7677fae14b
Encryption and One-Way-Control ( #200 )
...
This is a major rewrite of the core networking logic enabling one-way control and encryption through the webrtc-dtls crate.
closes #164
closes #104
2024-11-09 13:54:43 +01:00
Ferdinand Schober
a870a9e3a9
split features for emulation and capture backends
2024-11-07 12:43:42 +01:00
Ferdinand Schober
cd2cabf25b
adapt config backend options to cli arg names
2024-11-06 12:14:47 +01:00
Ferdinand Schober
5b1dc4ccf8
reference count capture ( #209 )
...
* reference count capture
Multiple captures can now be created at the same position.
Captures at the same position are reference counted.
* update testcase
will be required by #200 / #164
2024-10-05 21:22:28 +02:00
Ferdinand Schober
39fed0344c
cleanup server code + fix a lost update case ( #191 )
2024-09-05 02:31:10 +02:00
Ferdinand Schober
6cd190191e
cleanup main ( #189 )
2024-09-05 01:06:55 +02:00
Ferdinand Schober
be677d4c81
extract frontend crate ( #186 )
2024-09-04 17:29:29 +02:00
Ferdinand Schober
1f7a7309eb
include commit-hash in version ( #185 )
2024-09-02 19:46:07 +02:00
Ferdinand Schober
e7a1d72149
use local-channel instead of tokio sync channel ( #179 )
...
this avoids the mutex overhead in tokio
2024-08-12 18:20:21 +02:00
Ferdinand Schober
19c2c4327f
move lan-mouse protocol to separate crate ( #178 )
2024-08-11 16:51:47 +02:00
Ferdinand Schober
fe06ca1fae
cleanup capture task ( #177 )
...
* cleanup capture task
* rename {Capture,Emulation}Event to %Request
2024-08-09 14:43:55 +02:00
Ferdinand Schober
266ad28c6b
track pressed keys in input-capture ( #170 )
...
move pressed key tracking to input capture
2024-08-09 13:18:23 +02:00
Ferdinand Schober
8f7890c9be
move refcounting of key presses to input-emulation ( #169 )
2024-08-06 16:46:32 +02:00
Ferdinand Schober
65fb228db5
upgrade dependencies
2024-07-19 12:58:52 +02:00
Ferdinand Schober
0be85f63f7
ensure all keys are released when emulation ends
2024-07-16 22:43:56 +02:00
Ferdinand Schober
bea7d6f8a5
Allow input capture & emulation being disabled ( #158 )
...
* Input capture and emulation can now be disabled and will prompt the user to enable again.
* Improved error handling to deliver more useful error messages
2024-07-16 20:34:46 +02:00
Ferdinand Schober
6a4dd740c3
code cleanup + purge anyhow in library code ( #157 )
2024-07-10 00:33:49 +02:00
Ferdinand Schober
ef3ebc59bd
adjust error handling
2024-07-05 01:41:11 +02:00
Ferdinand Schober
37a8f729ea
remove dispatch workaround
2024-07-05 01:41:11 +02:00
Ferdinand Schober
4db2d37f32
split into input-{event,capture,emulation}
2024-07-02 22:07:37 +02:00
Ferdinand Schober
7b511bb97d
fix iteration order
2024-07-02 16:23:07 +02:00
Ferdinand Schober
70a23b9fa7
reduce coupling of emulation and capture backends
2024-07-02 16:23:07 +02:00
Ferdinand Schober
b6b16063a8
Configurable emulation backend ( #151 )
2024-07-01 20:09:16 +02:00
Ferdinand Schober
9cbe1ed8d8
fix release bind message
2024-06-30 14:41:16 +02:00
Ferdinand Schober
3528ef4fae
Configurable capture backend ( #150 )
...
capture backend can now be configured via the `capture_backend` cli argument / config entry
2024-06-29 00:10:36 +02:00
Ferdinand Schober
232c048c19
fix transmuting to pointer types UB ( #147 )
...
closes #134
2024-06-25 14:13:05 +02:00
Ferdinand Schober
460bacade5
fix sizeof usize assumed to be 8 ( #143 )
...
closes #141
2024-06-09 00:49:00 +02:00
Ferdinand Schober
1c082d5c0c
fix win -> lin scancode translations for intl keys
2024-05-17 17:39:52 +02:00
Ferdinand Schober
cd98acbd08
fix right shift not working
2024-05-16 22:36:51 +02:00
Ferdinand Schober
11e1919588
fix most international keybindings
2024-05-16 22:29:41 +02:00