Skip to content
/ ianny Public

Desktop utility that helps preventing repetitive strain injuries by keeping track of usage patterns and periodically informing the user to take breaks.

License

Notifications You must be signed in to change notification settings

zefr0x/ianny

Repository files navigation

Ianny | عَيْنِي

release

Simple, light-weight, easy to use, and effective Linux Wayland desktop utility that helps with preventing repetitive strain injuries by keeping track of usage patterns and periodically informing the user to take breaks.



Install


Contribute


Packaging


Features

  • ⚙ Simple config to tweak its behavior.
  • 🚀 Auto start it with your desktop environment.
  • 🚫 X11 is not supported.
  • 🚫 Microsoft Windows is definitely not supported.

Requirements

Installation

Packaging status

Arch Linux

All packages are available on AUR, you can:

  • build locally from latest stable release: ianny
  • build locally from latest Git commit: ianny-git
  • use the binary built by GitHub: ianny-bin

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 or the releases page here.

Build

Note

You need to have cargo, meson and libdbus-1-dev installed in your system.

git clone https://github.com/zefr0x/ianny.git

cd ianny

# Checkout to a release tag e.g. v1.0.1
git checkout vx.x.x

meson setup builddir -Dbuildtype=release
meson compile -C builddir

You will find the binary in ./builddir/src/ianny

Note

For cross compilation you will need to set the rustc_target meson option, and create .cargo/config.toml file to set a linker to be used for your target.

To install:

meson install -C builddir

Usage

You just need to execute the binary eather directly 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:

[timer]
# Timer will stop and reset when you are idle for this amount of seconds.
idle_timeout = 240
# Active duration that activates a break.
short_break_timeout = 1200
long_break_timeout = 3840
# Breaks duration.
short_break_duration = 120
long_break_duration = 240

[notification]
show_progress_bar = true
# Minimum delay of updating the progress bar (lower than 1s may return an error).
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