mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-04-16 16:31:29 +03:00
Compare commits
1 Commits
0d96948c26
...
macos-fix-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1c69d4d209 |
4
.github/workflows/cachix.yml
vendored
4
.github/workflows/cachix.yml
vendored
@@ -7,7 +7,7 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-latest
|
||||
- macos-15-intel
|
||||
- macos-13
|
||||
- macos-14
|
||||
name: "Build"
|
||||
runs-on: ${{ matrix.os }}
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
run: nix build --print-build-logs --show-trace .#packages.x86_64-linux.lan-mouse
|
||||
|
||||
- name: Build lan-mouse (x86_64-darwin)
|
||||
if: matrix.os == 'macos-15-intel'
|
||||
if: matrix.os == 'macos-13'
|
||||
run: nix build --print-build-logs --show-trace .#packages.x86_64-darwin.lan-mouse
|
||||
|
||||
- name: Build lan-mouse (aarch64-darwin)
|
||||
|
||||
2
.github/workflows/pre-release.yml
vendored
2
.github/workflows/pre-release.yml
vendored
@@ -80,7 +80,7 @@ jobs:
|
||||
path: lan-mouse-windows.zip
|
||||
|
||||
macos-release-build:
|
||||
runs-on: macos-15-intel
|
||||
runs-on: macos-13
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
|
||||
2
.github/workflows/rust.yml
vendored
2
.github/workflows/rust.yml
vendored
@@ -94,7 +94,7 @@ jobs:
|
||||
target/debug/*.dll
|
||||
|
||||
build-macos:
|
||||
runs-on: macos-15-intel
|
||||
runs-on: macos-13
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
|
||||
2
.github/workflows/tagged-release.yml
vendored
2
.github/workflows/tagged-release.yml
vendored
@@ -76,7 +76,7 @@ jobs:
|
||||
path: lan-mouse-windows.zip
|
||||
|
||||
macos-release-build:
|
||||
runs-on: macos-15-intel
|
||||
runs-on: macos-13
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
|
||||
@@ -453,10 +453,8 @@ fn create_event_tap<'a>(
|
||||
// Returning Drop should stop the event from being processed
|
||||
// but core fundation still returns the event
|
||||
cg_ev.set_type(CGEventType::Null);
|
||||
CallbackResult::Drop
|
||||
} else {
|
||||
CallbackResult::Keep
|
||||
}
|
||||
CallbackResult::Replace(cg_ev.to_owned())
|
||||
};
|
||||
|
||||
let tap = CGEventTap::new(
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
# Nix Flake Usage
|
||||
|
||||
## Run
|
||||
## run
|
||||
|
||||
```bash
|
||||
nix run github:feschber/lan-mouse
|
||||
|
||||
# With params
|
||||
# with params
|
||||
nix run github:feschber/lan-mouse -- --help
|
||||
|
||||
```
|
||||
|
||||
## Home-manager module
|
||||
## home-manager module
|
||||
|
||||
Add input:
|
||||
add input
|
||||
|
||||
```nix
|
||||
inputs = {
|
||||
@@ -20,27 +20,14 @@ inputs = {
|
||||
}
|
||||
```
|
||||
|
||||
Optional: add [our binary cache](https://app.cachix.org/cache/lan-mouse) to allow a faster package install.
|
||||
|
||||
```nix
|
||||
nixConfig = {
|
||||
extra-substituters = [
|
||||
"https://lan-mouse.cachix.org/"
|
||||
];
|
||||
extra-trusted-public-keys = [
|
||||
"lan-mouse.cachix.org-1:KlE2AEZUgkzNKM7BIzMQo8w9yJYqUpor1CAUNRY6OyM="
|
||||
];
|
||||
};
|
||||
```
|
||||
|
||||
Enable lan-mouse:
|
||||
enable lan-mouse
|
||||
|
||||
``` nix
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
# Add the Home Manager module
|
||||
# add the home manager module
|
||||
imports = [inputs.lan-mouse.homeManagerModules.default];
|
||||
|
||||
programs.lan-mouse = {
|
||||
|
||||
@@ -362,13 +362,7 @@ impl CaptureTask {
|
||||
}
|
||||
|
||||
async fn release_capture(&mut self, capture: &mut InputCapture) -> Result<(), CaptureError> {
|
||||
// If we have an active client, notify them we're leaving
|
||||
if let Some(handle) = self.active_client.take() {
|
||||
log::info!("sending Leave event to client {handle}");
|
||||
if let Err(e) = self.conn.send(ProtoEvent::Leave(0), handle).await {
|
||||
log::warn!("failed to send Leave to client {handle}: {e}");
|
||||
}
|
||||
}
|
||||
self.active_client.take();
|
||||
capture.release().await
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,18 +223,14 @@ async fn ping_pong(
|
||||
) {
|
||||
loop {
|
||||
let (buf, len) = ProtoEvent::Ping.into();
|
||||
|
||||
// send 4 pings, at least one must be answered
|
||||
for _ in 0..4 {
|
||||
if let Err(e) = conn.send(&buf[..len]).await {
|
||||
log::warn!("{addr}: send error `{e}`, closing connection");
|
||||
let _ = conn.close().await;
|
||||
break;
|
||||
}
|
||||
log::trace!("PING >->->->->- {addr}");
|
||||
|
||||
tokio::time::sleep(Duration::from_millis(500)).await;
|
||||
if let Err(e) = conn.send(&buf[..len]).await {
|
||||
log::warn!("{addr}: send error `{e}`, closing connection");
|
||||
let _ = conn.close().await;
|
||||
break;
|
||||
}
|
||||
log::trace!("PING >->->->->- {addr}");
|
||||
|
||||
tokio::time::sleep(Duration::from_millis(500)).await;
|
||||
|
||||
if !ping_response.borrow_mut().remove(&addr) {
|
||||
log::warn!("{addr} did not respond, closing connection");
|
||||
|
||||
Reference in New Issue
Block a user