Ianny
Desktop utility that helps preventing repetitive strain injuries by keeping track of usage patterns and periodically informing the user to take breaks.
Install / Use
/learn @zefr0x/IannyREADME
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,mesonandlibdbus-1-devinstalled in your system.
[!NOTE] For cross compilation you will need to set the
rustc_targetmeson option, and create.cargo/config.tomlfile to set alinkerto be used for your target.
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
To install:
meson install -C builddir
Usage
You just need to execute the binary either 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]
# Enabling this will only consider user input alone for idle state, e.g. you will not have breaks when watching videos or playing music without any user input.
ignore_idle_inhibitors = false
# 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 Eyein English.
Inspired by
Related Skills
node-connect
349.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
