Skip to main content

BlueLock

Lock and unlock your KDE desktop session based on Bluetooth device proximity.

BlueLock monitors a paired Bluetooth device's signal strength. When the device moves out of range the session is locked automatically; when it returns the session is unlocked.

Features

  • System tray icon with five states reflecting proximity and lock status
  • Configurable RSSI thresholds with hysteresis (separate lock/unlock levels)
  • Configurable time durations before acting (avoids triggering on momentary drops)
  • D-Bus org.freedesktop.ScreenSaver for lock/unlock — no extra tools required
  • Optional custom lock/unlock shell commands
  • RSSI smoothing with a configurable ring buffer
  • Real-time signal strength display in the configuration dialog

Requirements

  • Python 3.11+
  • PyQt6 (python3-pyqt6-base on Fedora)
  • BlueZ (bluez)

Installation

From source

pip install .
bluelock

Development

make run

RPM (Fedora)

make rpm
sudo rpm -i ~/rpmbuild/RPMS/noarch/bluelock-*.rpm

Usage

  1. Launch BlueLock — it appears in the system tray.
  2. Right-click the tray icon and choose Preferences.
  3. Click Scan to find nearby Bluetooth devices.
  4. Select your device and click Use.
  5. Adjust the lock/unlock RSSI thresholds and durations to taste.
  6. Click OK — monitoring begins immediately.

Tray icon states

Icon Meaning
Close (blue) Device is nearby — session is unlocked
Far (yellow/amber) Device is moving away — lock countdown active
Gone (red) Device is absent — session is locked
Error (grey) Initialising, or no signal yet
Paused Monitoring is paused — no automatic lock/unlock

Thresholds

Setting Description
Lock RSSI Session locks when signal drops below this level
Lock duration Signal must stay below the threshold for this many seconds before locking
Unlock RSSI Session unlocks when signal rises above this level
Unlock duration Signal must stay above the threshold for this many seconds before unlocking

The gap between the lock and unlock thresholds acts as a hysteresis band, preventing the session from oscillating when you are standing right at the boundary.

Configuration file

Saved at ~/.config/bluelock/config.toml.

Development

make test        # run tests
make coverage    # run tests with coverage report
make lint        # run ruff
make format      # auto-format with ruff
make build       # build wheel and sdist
make release V=X.Y.Z  # tag and publish a release

License

Unlicense — public domain.

Metadata

Release files for bluelock 0.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bluelock 0.4.2
File Size Uploaded
bluelock-0.4.2.tar.gz 43.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bluelock 0.4.2
File Interpreter ABI Platform
bluelock-0.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 75.1 kB

Release files / bluelock-0.4.2.tar.gz

Download URL bluelock-0.4.2.tar.gz
Size 43.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f512108e6572b3613a5743f7fd482adcf1e49117794e96b04a70bcd94e945010
BLAKE2b-256 checksum
How to use checksums
ac7ee37741f967c35d6342668aa39c2bfa918ee2f93723a8185af1fbac4de4e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / bluelock-0.4.2-py3-none-any.whl

Download URL bluelock-0.4.2-py3-none-any.whl
Size 31.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
57805e2c02a97cc39b1b5984e850ef0d2b098d3d79ef2e1d563e38e8c78089cc
BLAKE2b-256 checksum
How to use checksums
f1e5b1c981982bb3eda06f1ac4d0f37ece44848ea802f0d367f8a0c5d560edc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.4.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page