Awesome
<div align = center> <h1>Ianny | عَيْنِي</h1>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.
<kbd><br><b>Install</b><br><br></kbd> <kbd><br><b>Contribute</b><br><br></kbd> <kbd><br><b>Packaging</b><br><br></kbd>
</div>
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
- 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
Installation
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
andlibdbus-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 alinker
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 toMy Eye
in english.