bluedo 2.5

Creator: coderz1093

Last updated:

Add to Cart

Description:

bluedo 2.5

Overview
BlueDo - Bluetooth proximity automation

Lock your desktop, mute music or run any other command when leaving your PC. There are dozens of apps like this. This one just aims to make it beautiful, modern and easy.
Not all bluetooth devices works for this. Some devices randomizes the bluetooth address as a privacy feature, some disconnects to save power. If you have trouble using your phone, try a headset, watch, etc.
Only Bluetooth is supported, not Bluetooth Low-Energy (BLE).
Maturity

2 is in beta
1 is deprecated

Installation
From pip
sudo apt install python3-pip gir1.2-appindicator3-0.1
pip3 install --upgrade bluedo

Optional apt packages playerctl (pause music), amixer (for mute/unmute).
From deb
Fetch deb file from https://github.com/ways/BlueDo/releases

From source
sudo apt install python3-dev libbluetooth-dev playerctl libgirepository1.0-dev libcairo2-dev gir1.2-appindicator3-0.1

Then install requirements: pip install -r requirements.txt
Requirements
Use these system commands:

bluetoothctl
hcitool
loginctl
gsettings
amixer (mute)
playerctl (pause music)

Version > 2.0 is only tested on Ubuntu 22.04 with GNOME.
Version < 2.0 is only tested on Ubuntu 20.04-21.04 with GNOME.
Command line options

-e / --enable to start service on app start.
-m / --minimize to start minimized

Configuration
There are lots more options in the config file. Feel free to tune.
Screenshots





System changes
Note that this app will make these changes to your power management:

Enable screen lock: org.gnome.desktop.screensaver lock-enabled true
Set delay from screen blacking to locking to zero: org.gnome.desktop.screensaver lock-delay 0
Set screen saver timeout to 10 seconds when device is away, 5 minutes when device is present: org.gnome.desktop.session idle-delay 600

TODO

Check for dependencies on startup
Default lock / unlock ON.
Keep two instances from running at the same time.
Minimize to tray, instead of having both minimize and minimize to tray.
Stop device scanning when minimized
Change to dynamic widget layout instead of fixed.
Change preferences button to proper burger menu.
Move media files to some other dir?
Unit tests
When on xfce:

for bluetooth settings, open blueman-manager
to lock/unlock change xscreensaver timeout, to match functionality from gnome



Development docs


scan for devices: bluetoothctl devices


rssi for device: hcitool rssi ff:ff:ff:ff:ff:ff (unstable?)


Version below .56 needs Python < 3.9, bluetoothctl ~5.50 or newer.


hard locking: lock when no signal


soft locking: set screensaver timeout to 10 seconds when no signal


Inspiration

https://github.com/LukeSkywalker92/btproxipy

bt_rssi.py is from this project and is MIT licensed.


https://discourse.gnome.org/t/useful-documentation-for-gtk/29
Black/white icons in app from https://material.io

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.