Metadata-Version: 2.4
Name: postured
Version: 1.1.0
Summary: A Linux app that dims your screen 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 dims your screen when you slouch. Optionally locks your screen when you step away.

Uses your webcam and MediaPipe pose detection to monitor your posture. When slouching is detected, the screen dims as a reminder to sit up straight. Runs locally with minimal CPU usage.

## Install

```bash
pip install postured
```

Or with uv:

```bash
uv pip install postured
```

## Usage

```
postured
```

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

## Settings

Right-click the tray icon to access:

- Sensitivity - affects detection threshold and dim intensity; higher values trigger on smaller posture deviations and dim the screen more
- 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

MIT
