Metadata-Version: 2.4
Name: postured
Version: 1.4.0
Summary: A Linux app that lets you know when you slouch
Project-URL: Homepage, https://github.com/vadi2/postured
Project-URL: Repository, https://github.com/vadi2/postured
Author: Vadim Peretokin
License: MIT
License-File: LICENSE
Keywords: ergonomics,health,posture,webcam
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Desktop Environment
Requires-Python: >=3.11
Requires-Dist: mediapipe>=0.10.0
Requires-Dist: opencv-python>=4.8.0
Requires-Dist: pyqt6>=6.6.0
Description-Content-Type: text/markdown

# <img src="postured/resources/icons/postured.svg" alt="" width="32"> postured

A Linux app that lets you know when you slouch. Optionally locks your screen when you step away.

(join our community) [![Matrix](https://img.shields.io/badge/Matrix-%23postured-000000?logo=matrix&logoColor=white)](https://matrix.to/#/#postured:matrix.org)

Uses your webcam and MediaPipe pose detection to monitor your posture. When slouching is detected, you get notified to sit up straight (screen dimming or LED blink). Runs locally with minimal CPU usage - no accounts needed.

<img src="screenshot.png" alt="postured showing good posture and slouching states" width="500">

## Install

```bash
uv pip install postured
pip install postured
```

AppImages [also available](https://github.com/vadi2/postured/releases).

Requires [notifications support](https://extensions.gnome.org/extension/615/appindicator-support/) on Gnome Shell.

## Settings

Right-click the tray icon to access:

- Notification style - choose between screen dimming or LED blink
- Sensitivity - affects detection threshold; higher values trigger on smaller posture deviations
- Lock when away - lock screen when you step away from the camera

## D-Bus Interface

Control postured via D-Bus for pause/resume and status queries.

<details>
<summary>Show commands</summary>

```bash
# Pause/Resume
busctl --user call org.postured.Postured /org/postured/Postured org.postured.Postured1 Pause
busctl --user call org.postured.Postured /org/postured/Postured org.postured.Postured1 Resume

# Get status
busctl --user call org.postured.Postured /org/postured/Postured org.postured.Postured1 GetStatus
```

</details>

## Requirements

- Python 3.11+
- Linux
- Webcam

## Credits

Inspired by [posturr](https://github.com/tldev/posturr) - check it out if you're on macOS.

## License

GPL-3.0-or-later
