Skip to content

sn99/nothing-linux

Repository files navigation

Nothing Linux App

I usually have to enable low latency mode on my Nothing Ear (2) while gaming on Linux. But because there is no official Linux app, I have to switch to my phone to do this (using dual connection). So I made this simple app for Ear (2) for linux.

Supported Devices

  • Nothing Ear (2)
  • Others too but untested by me (a man can only have so many earbuds)

Screenshots

Screenshot 1

Screenshot 2

Install

You can find the latest rpm, deb or appimage in the Releases page.

Note: The app assumes you are connected to the bluetooth device already, not doing so will cause the app to crash.

Architecture

It is made using:

The project is structured in three separate parts:

  1. nothing crate - It contains the hardware specific code for the Ear (2).
  2. tauri - It contains the Tauri interface between the nothing crate and leptos frontend.
  3. leptos - It contains the frontend code for the app.

Hardware Abstraction

The project is written in such a way that future version of Nothing products could be supported by just modifying the nothing crate.

The hardware is itself is treated as a Struct with controls in form of trait methods. To add new hardware or modify existing hardware, you just need to implement the trait members.

You will most probably just need to copy-paste nothing_ear_2_rs with global const changed to the new hardware's values.

Structure

The nothing crate is used by src-tauri to create bindings for leptos frontend and that's about it.

Getting BLE Values

Your best bet is a rooted android device. Followed by running Android in a VM. I found this helpful: StackOverFlow

Building

Prerequisites

Steps

  1. To run locally: cargo tauri dev
  2. To build deb, rpm and appimage: NO_STRIP=true cargo tauri build --verbose

Future

There are a few more commands that I have yet to add like personalized ANC, earfit test, setting shortcuts, etc, But I don't really use those setting, feel free to open an issue if you need those features (no guarantees).