🌐 Languages: English | Español | Русский
A complete desktop shell built on Quickshell for the Niri compositor
Originally forked from end-4's illogical-impulse — evolved into its own thing
Install • Keybinds • IPC Reference • Discord
Pick a wallpaper and everything adapts — the shell, GTK/Qt apps, terminals, Firefox, Discord, even the SDDM login screen. All automatic.
- 5 visual styles — Material (solid), Cards, Aurora (glass blur), iNiR (TUI-inspired), Angel (neo-brutalism)
- Dynamic wallpaper colors via matugen — propagate to the entire system
- 10 terminal tools auto-themed — foot, kitty, alacritty, starship, fuzzel, pywalfox, btop, lazygit, yazi
- App theming — GTK3/4, Qt (via plasma-integration + darkly), Firefox (MaterialFox), Discord/Vesktop (System24)
- Theme presets — Gruvbox, Catppuccin, Rosé Pine, and more — or make your own
- Video wallpapers — mp4/webm/gif with optional blur, or frozen first-frame for performance
- SDDM login theme — Material You colors synced with your wallpaper
- Desktop widgets — clock (multiple styles), weather, media controls on the wallpaper layer
Switch between them on the fly with Super+Shift+W:
- Material ii — floating bar (top/bottom, 4 corner styles), sidebars, dock (all 4 positions), control panel, vertical bar variant
- Waffle — Windows 11-inspired bottom taskbar, start menu, action center, notification center, widget panel, task view
The left sidebar doubles as an app drawer:
- AI Chat — Gemini, Mistral, OpenRouter, or local models via Ollama
- YT Music — full player with search, queue, and playback controls
- Wallhaven browser — search and apply wallpapers directly
- Anime tracker — AniList integration with schedule view
- Reddit feed — browse subreddits inline
- Translator — powered by Gemini or translate-shell
- Draggable widgets — crypto prices, media player, quick notes, status rings, week calendar
The right sidebar covers everyday essentials:
- Calendar with event integration
- Notifications center
- Quick toggles — WiFi, Bluetooth, night light, DND, power profiles, WARP VPN, EasyEffects (Android or classic layout)
- Volume mixer — per-app volume control
- Bluetooth & WiFi device managers
- Pomodoro timer, todo list, calculator, notepad
- System monitor — CPU, RAM, temp
- Workspace overview — adapted for Niri's scrolling model, with app search and calculator
- Window switcher — Alt+Tab across all workspaces
- Clipboard manager — searchable history with image preview
- Region tools — screenshots, screen recording, OCR text extraction, reverse image search
- Cheatsheet — keybind viewer pulled from your Niri config
- Media controls — full MPRIS player with multiple layout presets
- On-screen display — volume, brightness, and media OSD
- Song recognition — Shazam-like identification via SongRec
- Voice search — record and search via Gemini
- GUI settings — configure everything without touching config files
- GameMode — auto-disables effects when fullscreen apps are detected
- Auto-updates —
inir updatewith rollback, migrations, and user-change preservation - Lock screen and session screen (logout/reboot/shutdown/suspend)
- Polkit agent, on-screen keyboard, autostart manager
- 15+ languages — auto-detected, with AI-assisted translation generation
- Night light — scheduled or manual blue light filter
- Weather — Open-Meteo, supports GPS, manual coords, or city name
- Battery management — configurable thresholds, auto-suspend at critical
- Shell update checker — notifies when new versions are available
Most people only need this:
git clone https://github.com/snowarch/inir.git
cd inir
./setup install
inir runInstall once with ./setup install. After that, use inir for daily launching and runtime actions. Maintenance commands like inir update, inir doctor, and inir status are convenience wrappers that delegate back to setup.
Daily commands:
inir run
inir settings
inir doctor
inir logs
inir repair
inir statusPackaging-style local install:
sudo make install
inir runThis installs the shell payload like a packaged application instead of relying only on the repo-sync model.
Other distros: The installer fully supports Arch only. Manual installation guide in docs/INSTALL.md.
Updating:
inir updateIf you want the advanced TUI menu, run ./setup.
inir update and ./setup update use the same update flow. Use inir update as the normal launcher-facing command, and ./setup when you want the underlying maintenance entrypoint or the interactive menu.
Your configs stay untouched. New features come as optional migrations. Rollback included if something breaks (./setup rollback).
Local validation of the distribution/runtime layer:
make test-local
inir test-local
inir test-local --with-runtime| Key | Action |
|---|---|
Super+Space |
Overview — search apps, navigate workspaces |
Alt+Tab |
Window switcher |
Super+V |
Clipboard history |
Super+Shift+S |
Screenshot region |
Super+Shift+X |
OCR region |
Super+, |
Settings |
Super+Shift+W |
Switch panel family |
Full list and customization guide: docs/KEYBINDS.md
| INSTALL.md | Installation guide |
| SETUP.md | Setup commands — updates, migrations, rollback, uninstall |
| KEYBINDS.md | All keyboard shortcuts |
| IPC.md | IPC targets for scripting and custom keybinds |
| PACKAGES.md | Every package and why it's there |
| LIMITATIONS.md | Known limitations and workarounds |
| OPTIMIZATION.md | QML performance guide for contributors |
inir logs # Check recent runtime logs
inir restart # Restart the active runtime
inir status # See runtime path, update mode, and health
inir repair # Doctor + restart + filtered log check
inir test-local --with-runtime # Validate launcher + runtime + logs
./setup doctor # Auto-diagnose and fix common problems
./setup rollback # Undo the last updateCheck LIMITATIONS.md before opening an issue — it might already be documented.
- end-4 — original illogical-impulse for Hyprland, where this all started
- Quickshell — the framework powering this shell
- Niri — the scrolling tiling Wayland compositor
This is a personal project. It works on my machine. YMMV.







