Nothing Linux currently supports Nothing Ear (2024), model B171, on 64-bit Linux.
-
Download the latest
nothing-linux_VERSION_amd64.debfrom the Releases page. -
Open a terminal in the download folder and install it:
sudo apt install ./nothing-linux_*_amd64.deb -
Open Nothing Linux from the application menu.
The AppImage is useful when you do not want to install a system package:
chmod +x nothing-linux_*_amd64.AppImage
./nothing-linux_*_amd64.AppImageDownload the latest nothing-linux-VERSION-1.x86_64.rpm from the Releases page, then install it with:
sudo dnf install ./nothing-linux-*.x86_64.rpmInstall the build dependencies and Rust, clone this repository, then run the current-user installer:
sudo apt update
sudo apt install -y build-essential pkg-config libgtk-4-dev libadwaita-1-dev libdbus-1-dev libbluetooth-dev desktop-file-utils appstream git curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
git clone https://github.com/Dospacite/NothingLinux.git
cd NothingLinux
cargo run -p xtask -- install-userThe source installer places the application under ~/.local for the current user.
- Pair and connect the earbuds from the desktop Bluetooth settings.
- Put at least one earbud outside the case.
- Open Nothing Linux. It discovers the paired B171 device automatically and shows Connected when synchronization finishes.
- Use the navigation bar to open Overview, Noise Control, Equalizer, Controls, and More.
Closing the window can leave Nothing Linux running in the system tray for battery monitoring and quick ANC controls. Use Quit from the tray or press Ctrl+Q to stop it. Start at login is available on the More screen.
- Live left, right, and case battery levels.
- Dynamic left/right in ear and not worn status.
- Connection, synchronization, firmware, and charging state.
- Local system tray with battery status, open, ANC, and quit actions.
- Noise cancellation with High, Mid, Low, and Adaptive strength.
- Transparency and Off modes.
- Immediate visual updates with device readback confirmation.
- Simple and Advanced tabs following the Nothing X editing workflow.
- Simple three-band Bass, Mid, and Treble controls with synchronized sliders and circular knobs.
- Balanced, More Bass, More Treble, Voice, and Custom presets.
- Read-only response graphs; all editing is performed with sliders and knobs.
- Eight-band advanced EQ with gain, frequency, and Q controls.
- Up to 20 local advanced-EQ profiles with add, delete, reset, undo, and redo.
- Rapid slider changes remain stable without stale device responses moving the controls.
- Per-earbud mappings for double pinch, triple pinch, pinch and hold, and double pinch and hold.
- Supported actions include track navigation, voice assistant, noise control, volume, and None.
- Bass Enhance enable and level.
- In-ear detection and low-lag mode.
- Default, LHDC, and LDAC codec selection.
- Dual Connection toggle and paired-device connection list.
- Find My Earbuds controls with worn-state safety checks.
- Ear-tip fit test start and cancel controls.
Controls update visually as soon as they are changed. Nothing Linux then reads the setting back from the earbuds. If the device reports a different value, returns an error, disconnects, or does not confirm within three seconds, the control returns to the last confirmed value. A spinner in the top bar indicates pending device updates.
Nothing Linux communicates directly with BlueZ over the Nothing vendor RFCOMM service. It does not use an account, telemetry, cloud service, or network connection. Configuration and EQ profiles are stored locally in XDG user directories, and diagnostics redact device addresses and serial numbers.
Write commands are enabled only after the device identifies as B171. Unknown models remain read-only. Firmware flashing, factory reset, Mimi/Hearing ID enrollment, and cloud services are intentionally excluded.
This project is independent and is not affiliated with Nothing Technology Limited. It does not contain code, fonts, images, or other resources from Nothing X.
Install a newer DEB or RPM with the same apt install or dnf install command used above. To remove a system package while keeping local settings and EQ profiles:
sudo apt remove nothing-linux
# Fedora: sudo dnf remove nothing-linuxTo update an existing source installation:
cd NothingLinux
git pull
cargo run -p xtask -- install-userTo remove a source installation:
cd NothingLinux
cargo run -p xtask -- uninstall-userRun directly from the repository:
cargo run --release -p nothing-linuxRun the complete validation suite:
cargo fmt --all -- --check
cargo check --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
desktop-file-validate data/io.github.nothinglinux.nothinglinux.desktop
appstreamcli validate --pedantic data/io.github.nothinglinux.nothinglinux.metainfo.xmlSee CONTRIBUTING.md for contribution requirements and docs/protocol.md for the independently documented protocol and safety boundary.