Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zefr0x/ianny
Desktop utility that helps preventing repetitive strain injuries by keeping track of usage patterns and periodically informing the user to take breaks.
https://github.com/zefr0x/ianny
break desktop eye rsi strain wayland
Last synced: 3 months ago
JSON representation
Desktop utility that helps preventing repetitive strain injuries by keeping track of usage patterns and periodically informing the user to take breaks.
- Host: GitHub
- URL: https://github.com/zefr0x/ianny
- Owner: zefr0x
- License: gpl-3.0
- Created: 2023-06-03T22:40:11.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-15T18:39:00.000Z (6 months ago)
- Last Synced: 2023-12-15T20:17:48.237Z (6 months ago)
- Topics: break, desktop, eye, rsi, strain, wayland
- Language: Rust
- Homepage:
- Size: 145 KB
- Stars: 34
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Lists
- awesome-wayland - Ianny - Periodically informes user to take breaks by keeping track of usage patterns (Break Notifiers)
- awesome-hyprland - Ianny
README
Ianny | عَيْنِي
[![release](https://github.com/zefr0x/ianny/actions/workflows/release.yml/badge.svg)](https://github.com/zefr0x/ianny/actions/workflows/release.yml)
Simple, light-weight, easy to use, and effective [Linux](https://en.wikipedia.org/wiki/Linux) [Wayland]() desktop utility helps preventing [repetitive strain injuries](https://en.wikipedia.org/wiki/Repetitive_strain_injury) by keeping track of usage patterns and periodically informing user to take breaks.
---
[
Install
](#installation)
[
Contribute
](CONTRIBUTING.md)
[
Packaging
](PACKAGING.md)---
## Features
- ⚙ Simple config to tweak it's behavior.
- 🚀 Auto start it with your desktop environment.
- 🚫 [X11](https://en.wikipedia.org/wiki/X_Window_System) is not supported.
- 🚫 Microsoft Windows is definitely not supported.## Requirements
- [Wayland Compositor]()
- [Notification Daemon](https://wiki.archlinux.org/title/Desktop_notifications#Notification_servers) that implements [`org.freedesktop.Notifications`](https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html)
- [libdbus-1.so](https://www.freedesktop.org/wiki/Software/dbus/) installed in your system
- [Linux libc](https://en.wikipedia.org/wiki/C_standard_library) via either [glibc](https://www.gnu.org/software/libc/) or [musl libc](https://musl.libc.org/)## Installation
[![Packaging status](https://repology.org/badge/vertical-allrepos/ianny.svg?columns=3)](https://repology.org/project/ianny/versions)
### Download Binary From Github
For every new release a Github workflow will build a binary in Github servers and will upload it as a release asset in Github releases.
You can find the latest Github release [here](https://github.com/zefr0x/ianny/releases/latest) or the releases page [here](https://github.com/zefr0x/ianny/releases).
## Build
> [!Note]
> You need to have [`cargo`](https://doc.rust-lang.org/cargo/), [`meson`](https://mesonbuild.com/) and [`libdbus-1-dev`](https://www.freedesktop.org/wiki/Software/dbus/) installed in you system.```shell
git clone https://github.com/zefr0x/ianny.gitcd ianny
# Checkout to a release tag e.g. v1.0.1
git checkout vx.x.xmeson build
meson compile -C build
```You will find the binary in `./build/src/ianny`
To install:
```shell
meson install -C build
```# Usage
You just need to execute the binary eather direcrly or by enabling it to auto-start with your desktop environment's settings, since it provides a `.desktop` file for auto-start.
# Config
The defaults might not fit your needs, so you can change them via a config file.
The config file is `$XDG_CONFIG_HOME/io.github.zefr0x.ianny/config.toml` or by default `~/.config/io.github.zefr0x.ianny/config.toml`. Just create it and specify the options you need with the [toml format](https://toml.io/):
```toml
[timer]
idle_timeout = 240
short_break_timeout = 1200
long_break_timeout = 3840
short_break_duration = 120
long_break_duration = 240[notification]
show_progress_bar = true
minimum_update_delay = 1
```> [!Note]
> Time specified in seconds## Q&A
Q: What does `Ianny` mean?
- It is an Arabic word `عَيْنِي` that could be translated to `My Eye` in english.
## Inspired by
- [KDE's RSIBreak](https://userbase.kde.org/RSIBreak)