bluedo


Namebluedo JSON
Version 2.5 PyPI version JSON
download
home_pagehttps://github.com/ways/BlueDo/
SummaryBluetooth proximity automation
upload_time2023-07-10 17:44:50
maintainer
docs_urlNone
authorLars Falk-Petersen
requires_python>=3.10
licenseGPLv3+
keywords bluetooth
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Overview

BlueDo - Bluetooth proximity automation

![Logo](https://raw.githubusercontent.com/ways/BlueDo/master/images/bluedo.png)

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

![v53](https://raw.githubusercontent.com/ways/BlueDo/master/images/v53.png)
![v49](https://raw.githubusercontent.com/ways/BlueDo/master/images/v49.png)
![v49_advanced](https://raw.githubusercontent.com/ways/BlueDo/master/images/v49_advanced.png)
![v3_2](https://raw.githubusercontent.com/ways/BlueDo/master/images/v3_2.png)
![v3](https://raw.githubusercontent.com/ways/BlueDo/master/images/v3.png)

# 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



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ways/BlueDo/",
    "name": "bluedo",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "bluetooth",
    "author": "Lars Falk-Petersen",
    "author_email": "dev@falkp.no",
    "download_url": "https://files.pythonhosted.org/packages/2f/3b/a2c119f7c32281d76fe3ec887ae63c86d4c0f486f4af0b61b52afceb53de/bluedo-2.5.tar.gz",
    "platform": null,
    "description": "# Overview\n\nBlueDo - Bluetooth proximity automation\n\n![Logo](https://raw.githubusercontent.com/ways/BlueDo/master/images/bluedo.png)\n\nLock 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.\n\nNot 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.\n\nOnly Bluetooth is supported, not Bluetooth Low-Energy (BLE).\n\n# Maturity\n\n* 2 is in beta\n* 1 is deprecated\n\n# Installation\n\n## From pip\n\n    sudo apt install python3-pip gir1.2-appindicator3-0.1\n    pip3 install --upgrade bluedo\n\n  Optional apt packages `playerctl` (pause music), `amixer` (for mute/unmute).\n\n## From deb\n\n    Fetch deb file from https://github.com/ways/BlueDo/releases\n\n## From source\n\n    sudo apt install python3-dev libbluetooth-dev playerctl libgirepository1.0-dev libcairo2-dev gir1.2-appindicator3-0.1\n\nThen install requirements: `pip install -r requirements.txt`\n\n# Requirements\n\nUse these system commands:\n\n* bluetoothctl\n* hcitool\n* loginctl\n* gsettings\n* amixer (mute)\n* playerctl (pause music)\n\nVersion > 2.0 is only tested on Ubuntu 22.04 with GNOME.\n\nVersion < 2.0 is only tested on Ubuntu 20.04-21.04 with GNOME.\n\n# Command line options\n\n* -e / --enable to start service on app start.\n* -m / --minimize to start minimized\n\n# Configuration\n\nThere are lots more options in the config file. Feel free to tune.\n\n# Screenshots\n\n![v53](https://raw.githubusercontent.com/ways/BlueDo/master/images/v53.png)\n![v49](https://raw.githubusercontent.com/ways/BlueDo/master/images/v49.png)\n![v49_advanced](https://raw.githubusercontent.com/ways/BlueDo/master/images/v49_advanced.png)\n![v3_2](https://raw.githubusercontent.com/ways/BlueDo/master/images/v3_2.png)\n![v3](https://raw.githubusercontent.com/ways/BlueDo/master/images/v3.png)\n\n# System changes\n\nNote that this app will make these changes to your power management:\n\n* Enable screen lock: ```org.gnome.desktop.screensaver lock-enabled true```\n* Set delay from screen blacking to locking to zero: ```org.gnome.desktop.screensaver lock-delay 0```\n* Set screen saver timeout to 10 seconds when device is away, 5 minutes when device is present: ```org.gnome.desktop.session idle-delay 600```\n\n# TODO\n\n* Check for dependencies on startup\n* Default lock / unlock ON.\n* Keep two instances from running at the same time.\n* Minimize to tray, instead of having both minimize and minimize to tray.\n* Stop device scanning when minimized\n* Change to dynamic widget layout instead of fixed.\n* Change preferences button to proper burger menu.\n* Move media files to some other dir?\n* Unit tests\n* When on xfce:\n  * for bluetooth settings, open blueman-manager\n  * to lock/unlock change xscreensaver timeout, to match functionality from gnome\n\n# Development docs\n\n* scan for devices: bluetoothctl devices\n* rssi for device: hcitool rssi ff:ff:ff:ff:ff:ff (unstable?)\n* Version below .56 needs Python < 3.9, bluetoothctl ~5.50 or newer.\n\n* hard locking: lock when no signal\n* soft locking: set screensaver timeout to 10 seconds when no signal\n\n# Inspiration\n\n* https://github.com/LukeSkywalker92/btproxipy\n  * bt_rssi.py is from this project and is MIT licensed.\n* https://discourse.gnome.org/t/useful-documentation-for-gtk/29\n* Black/white icons in app from https://material.io\n\n\n",
    "bugtrack_url": null,
    "license": "GPLv3+",
    "summary": "Bluetooth proximity automation",
    "version": "2.5",
    "project_urls": {
        "Homepage": "https://github.com/ways/BlueDo/"
    },
    "split_keywords": [
        "bluetooth"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fe1d31dfcfc3f2391f89994090f27b10b0553207f73ff4a00e2f15f2c8e2ccc3",
                "md5": "448afeb9c4e2192bdd8affc58b19d732",
                "sha256": "40a494d81d36755a43eccdc7d8d7bb32a8dc3036d9d3848f002e2cca762ddec3"
            },
            "downloads": -1,
            "filename": "bluedo-2.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "448afeb9c4e2192bdd8affc58b19d732",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 300751,
            "upload_time": "2023-07-10T17:44:47",
            "upload_time_iso_8601": "2023-07-10T17:44:47.574735Z",
            "url": "https://files.pythonhosted.org/packages/fe/1d/31dfcfc3f2391f89994090f27b10b0553207f73ff4a00e2f15f2c8e2ccc3/bluedo-2.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2f3ba2c119f7c32281d76fe3ec887ae63c86d4c0f486f4af0b61b52afceb53de",
                "md5": "40c567e92d91f533ad218d3831202039",
                "sha256": "1ed00704c54f7ceeeefe1a4d1cdaf62c24fa0f5f59ef59f7116549144f8987dc"
            },
            "downloads": -1,
            "filename": "bluedo-2.5.tar.gz",
            "has_sig": false,
            "md5_digest": "40c567e92d91f533ad218d3831202039",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 407186,
            "upload_time": "2023-07-10T17:44:50",
            "upload_time_iso_8601": "2023-07-10T17:44:50.372897Z",
            "url": "https://files.pythonhosted.org/packages/2f/3b/a2c119f7c32281d76fe3ec887ae63c86d4c0f486f4af0b61b52afceb53de/bluedo-2.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-10 17:44:50",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ways",
    "github_project": "BlueDo",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "bluedo"
}
        
Elapsed time: 0.08609s