Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bluetoothctl GUI

A sleek, native Linux desktop application to manage Bluetooth devices, built entirely in Rust using the iced framework. It acts as a graphical wrapper around the command-line utility bluetoothctl (BlueZ).

Features

  • Native GUI: Built with Rust's iced (v0.14) framework.
  • Asynchronous: Uses tokio to execute terminal commands in the background.
  • Automatic Parsing: Parses standard bluetoothctl output to create interactive, structured lists rather than forcing you to read raw terminal text.
  • Quick Actions: Instantly Power On/Off your adapter, list devices, and perform targeted actions.
  • Device Management: View discovered devices (MAC Address + Name) with dedicated buttons to:
    • Connect
    • Pair
    • Trust
    • Remove

Prerequisites

Because this is a wrapper around bluetoothctl, it is designed specifically for Linux environments running the BlueZ daemon.

You must have the following installed on your system:

  • bluetoothctl (Usually included in the bluez package)
  • Rust (Edition 2024)
  • Cargo

Installation & Setup

  1. Clone the repository:

    git clone [https://github.com/yourusername/bluetoothctl_gui.git](https://github.com/yourusername/bluetoothctl_gui.git)
    cd bluetoothctl_gui
  2. Build and Run (Debug mode):

    cargo run
  3. Build for Release:

    cargo build --release

    The compiled binary will be located in target/release/bluetoothctl.

Dependencies

This project has been heavily optimized to only compile the features it needs.

  • iced (0.14.0): Core GUI framework. (Using tokio, wgpu, and wayland/x11 features).
  • tokio (1.x): Async runtime. (Using the process feature).

Contributing

Contributions are welcome! If you want to add a feature or fix a bug, feel free to open a Pull Request.

Future Roadmap Ideas:

  • Live polling for device connection status (Screen scraping info <mac>).
  • A dedicated "Scan" button (scan on / scan off) with real-time updates.
  • Eventually migrating from bluetoothctl command wrappers to the bluer crate for native D-Bus integration with BlueZ.

License

This project is open-source and available under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages