Skip to content

Commit e6e577a

Browse files
committed
update readme
1 parent abbdead commit e6e577a

3 files changed

Lines changed: 69 additions & 4 deletions

File tree

README.md

Lines changed: 69 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,72 @@
1-
# Tauri + Leptos
1+
# Nothing Linux App
22

3-
This template should help get you started developing with Tauri and Leptos.
3+
I usually have to enable low latency mode on my Nothing Ear (2) while gaming on Linux.
4+
But because there is no official Linux app, I have to switch to my phone to do this (using dual connection).
5+
So I made this simple app for Ear (2) for linux.
46

5-
## Recommended IDE Setup
7+
## Supported Devices
68

7-
[VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer).
9+
- Nothing Ear (2)
10+
11+
## Screenshots
12+
13+
![Screenshot 1](readme/1.png)
14+
15+
![Screenshot 2](readme/2.png)
16+
17+
## Install
18+
19+
You can find the latest rpm, deb or appimage in the [Releases](https://github.com/sn99/nothing-linux/releases) page.
20+
21+
## Architecture
22+
23+
It is made using:
24+
25+
- [Rust](https://www.rust-lang.org/)
26+
- [Leptos 0.6.xx](https://docs.rs/leptos/0.6.14/leptos/index.html)
27+
- [Tauri 2.0](https://v2.tauri.app/)
28+
29+
The project is structured in three separate parts:
30+
31+
1. [nothing crate](nothing) - It contains the hardware specific code for the Ear (2).
32+
2. [tauri](src-tauri) - It contains the Tauri interface between the nothing crate and leptos frontend.
33+
3. [leptos](src) - It contains the frontend code for the app.
34+
35+
### Hardware Abstraction
36+
37+
The project is written in such a way that future version of Nothing products could be supported by just modifying
38+
the `nothing` crate.
39+
40+
The hardware is itself is treated as a [Struct](nothing/src/nothing_ear_2.rs) with controls in form
41+
of [trait methods](nothing/src/lib.rs).
42+
To add new hardware or modify existing hardware, you just need to implement the trait members.
43+
44+
You will most probably just need to copy-paste [nothing_ear_2_rs](nothing/src/nothing_ear_2.rs) with global const
45+
changed to the new hardware's values.
46+
47+
### Structure
48+
49+
The `nothing` crate is used by `src-tauri` to create bindings for leptos frontend and that's about it.
50+
51+
#### Getting BLE Values
52+
53+
Your best bet is a rooted android device. Followed by running Android in a VM. I found this
54+
helpful: [StackOverFlow](https://stackoverflow.com/questions/23877761/sniffing-logging-your-own-android-bluetooth-traffic)
55+
56+
## Building
57+
58+
### Prerequisites
59+
60+
- On fedora you need to install the following packages: `dbus-devel pkgconf-pkg-config`
61+
- https://v2.tauri.app/start/prerequisites/
62+
- https://book.leptos.dev/getting_started/index.html
63+
64+
### Steps
65+
66+
1. To run locally: `cargo tauri dev`
67+
2. Tu build deb, rpm and appimage: `NO_STRIP=true cargo tauri build --verbose`
68+
69+
## Future
70+
71+
There are a few more commands that I have yet to add like personalized ANC, earfit test, setting shortcuts, etc, But I
72+
don't really use those setting, feel free to open an issue if you need those features (no guarantees).

readme/1.png

64.2 KB
Loading

readme/2.png

73.3 KB
Loading

0 commit comments

Comments
 (0)