# ukui-bluetooth

[中文版](README_zh.md)

ukui-bluetooth is a Bluetooth management tool for the UKUI desktop environment, written in Qt6. It provides a system tray applet, a control center panel, and a background D-Bus service for device discovery, pairing, file transfer, and audio routing.

## Features

- Device discovery, pairing, and removal
- File transfer via OBEX
- System tray applet with quick-connect menu
- Control Center settings panel
- Background D-Bus service for system-wide Bluetooth management
- Audio profile switching (A2DP, HFP/HSP)

## Build Dependencies

- Qt 6 (qt6-base-dev, qt6-declarative-dev, qt6-base-dev-tools, qt6-tools-dev-tools)
- KDE Frameworks 6 (libkf6bluezqt-dev, libkf6windowsystem-dev)
- libglib2.0-dev
- libgsettings-qt6-dev
- libkysdk-applications-dev, libkysdk-system-dev
- libukcc-dev
- libukui-quick-dev
- libukui-log4qt-dev
- libxrandr-dev, libxinerama-dev, libxi-dev, libxcursor-dev
- debhelper-compat (= 13)

## Building from Source

```shell
cd ukui-bluetooth
mkdir build && cd build
qmake6 ..
make -j$(nproc)
sudo make install
```

## Debian Packaging

This project supports Debian packaging with git-buildpackage and Salsa CI.

```shell
# Build the Debian package
gbp buildpackage

# Import a new upstream release
gbp import-orig --pristine-tar ../ukui-bluetooth_<version>.orig.tar.gz
```

## Project Structure

```
ukui-bluetooth/
├── data/                        # D-Bus configs, GSettings schemas, desktop files
├── debian/                      # Debian packaging files
├── man/                         # Manual pages
├── service/                     # Background D-Bus service (bluetoothService)
│   ├── adapter.*                #   Adapter management
│   ├── bluetoothagent.*         #   BlueZ agent
│   ├── bluetoothobexagent.*     #   OBEX agent for file transfer
│   ├── device.*                 #   Device model
│   ├── filesess.*               #   File transfer session
│   └── daemon.*                 #   Service entry point
├── ukcc-bluetooth/              # Control Center settings panel
│   ├── bluetooth.*              #   Main panel entry
│   ├── bluetoothbottomwindow.*  #   Bottom status bar
│   ├── bluetoothdeviceitem.*    #   Device list item
│   └── bluetoothmainloadingwindow.*  # Loading indicator
├── ukui-shortcut-bluetooth/     # System tray applet
│   ├── plugin/                  #   Tray plugin interface
│   ├── widget/                  #   Quick-connect popup
│   └── translations/            #   i18n files
├── COPYING                      # License text
└── ukui-bluetooth.pro           # Top-level qmake project file
```

## License

This project is licensed under the GPL-3.0-or-later license. See [COPYING](COPYING) for details.

## Links

- Homepage: https://gitee.com/openkylin/ukui-bluetooth
- Bug Tracker: https://gitee.com/openkylin/ukui-bluetooth/issues
- Salsa: https://salsa.debian.org/kylin-team/ukui-bluetooth
