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.
- ⚙ Simple config to tweak its behavior.
- 🚀 Auto start it with your desktop environment.
- 🚫 X11 is not supported.
- 🚫 Microsoft Windows is definitely not supported.
- Wayland Compositor that optionally implements
ext_idle_notifier_v1
- Notification Daemon that implements
org.freedesktop.Notifications
- libdbus-1.so installed in your system
- Linux libc via either glibc or musl libc
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
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.
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
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.
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: What does Ianny
mean?
- It is an Arabic word
عَيْنِي
that could be translated toMy Eye
in english.