Changelog

Release history and notable changes

All notable changes to iNiR are documented here.

Format based on Keep a Changelog, versioning follows Semantic Versioning.

[2.11.1] - 2026-02-22

#Changed

  • Cheatsheet keybinds grouped by category: Keybinds now display in separate cards per category (System, ii Shell, Window Management, etc.) with icon headers and count badges
  • Periodic table responsive sizing: Element tiles dynamically scale to fit the cheatsheet panel width (36–70px) instead of hardcoded 70px
  • Quick Launch editor redesign: Replaced bulky outlined text fields with compact pill-shaped inline fields. Single-row layout per shortcut with icon preview and hover effects
  • Displays settings moved to General: Per-monitor bar/dock visibility controls moved from Interface to General settings page

#Fixed

  • SDDM password characters blinking: Password shape indicators no longer re-animate when typing new characters
  • Cheatsheet style consistency: Added angel and aurora style branches for proper 5-style support
  • SongRec music recognition: Updated command from deprecated audio-file-to-recognized-song to recognize -j

[2.11.0] - 2026-02-21

#Added

  • SDDM Pixel theme: Material You login screen — session selector, cycling fail messages, wallpaper-synced colors
  • Angel global style: Fifth visual style (neo-brutalism glass) across all shell surfaces
  • Firefox MaterialFox theming: Auto-generated Material You colors for Firefox via matugen template
  • Terminal theming: btop, lazygit, yazi: 10 TUI tools now auto-theme with wallpaper colors. Individual toggles in Settings.
  • Terminal color controls: Saturation and brightness sliders for fine-tuning generated terminal colors
  • Overlay theming options: Scrim dim, background opacity, and blur toggle in Settings
  • Waffle per-monitor wallpaper: Full UI with monitor frame preview + thumbnail grid in Waffle settings

#Changed

  • Color pipeline centralized: Matugen generates colors.json only; Python handles all app configs
  • Qt theming via plasma-integration: Required dependency for Material You in Qt apps
  • Setup TUI overhaul: Consistent log_*/tui_* branding across Arch, Debian, and Fedora installers
  • quickshell-git conflict: Installer handles existing -git package, prefers official repos

#Fixed

  • Terminal colors not updating: Root cause — venv activation failed in QML execDetached context
  • SDDM Qt5 compatibility: Full rewrite for SDDM's Qt5 runtime
  • Wallpaper theming: Stop guessing thumbnails by basename, clear stale paths on video→image switch
  • Video first-frame: seek(0) after pause ensures frame display
  • Config safety audit: 34 fixes — unsafe writes→setNestedValue(), unsafe reads→safe defaults
  • Fresh install: 0-byte wallpaper recovery, version.json tracking, polkit auto-detection

[2.10.1] - 2026-02-13

#Added

  • Desktop right-click context menu: Right-click on the desktop background opens a context menu with Mission Center, Overview, Settings, Wallpaper Selector, Terminal, Media Controls, Lock Screen, and Power Menu
  • Bar right-click context menu (ii family): Right-click on the bar opens a context menu with Mission Center and Settings

#Changed

  • Bar context menu positioning: Vertical bar popup opens toward screen center; horizontal bar popup opens above when bar is at bottom
  • Desktop context menu close behavior: Left-click closes the menu; right-click repositions it

[2.10.0] - 2026-02-13

#Added

  • Multi-monitor wallpaper support: Per-monitor wallpaper and backdrop paths via WallpaperListener service
  • Video first-frame system: Automatic ffmpeg extraction and caching of first-frame JPGs for video wallpapers
  • Per-monitor aurora/glass: Bar, dock, and sidebars use per-screen wallpaper for blur and color quantization
  • Wallpaper selector multi-monitor targeting: Auto-detects focused monitor, opens on target screen, per-monitor selection
  • Per-monitor backdrop paths: Each monitor can have its own backdrop wallpaper independent of global setting
  • Derive theme colors from backdrop: New toggle in settings — all color generation sources (matugen, ColorQuantizer, aurora) switch to backdrop wallpaper when enabled
  • Card right-click swap: Right-click on the front card toggles between main wallpaper and backdrop views
  • Backdrop card focus borders: Selection border overlay when backdrop card is in front and selected
  • DockPreview toplevel reactivity: Auto-close preview when app exits, update on toplevel changes
  • Per-monitor random wallpapers: Random wallpaper scripts (konachan, osu) support focused monitor targeting

#Changed

  • Card clipping: Parent-level layer.enabled + OpacityMask replaces per-image masking — all children (gradients, labels, badges) now properly clip to rounded corners
  • Card scaling quality: layer.smooth on scaled cards for sharper text and badges when zoomed out
  • Video/GIF display: Always load AnimatedImage for GIFs (frozen when animation disabled); replaced QtMultimedia Video with first-frame Image in previews
  • Color pipeline: ColorQuantizer and effectiveWallpaperUrl return image-safe sources for videos (first-frame cache, config thumbnail, trigger generation)
  • switchwall.sh: Per-monitor wallpaper changes skip global color regeneration; --noswitch reads current wallpaper from config
  • CryptoWidget: Cache staleness check — only refresh if older than refreshInterval (default 300s)
  • WaffleConfig: Use Config.setNestedValue() instead of direct property mutation

#Fixed

  • Black peaks on cards: Gradient and label overlays no longer escape rounded corners (clip:true only clips rectangular)
  • Aurora colors for video wallpapers: ColorQuantizer receives first-frame images instead of undecoded video URLs
  • Backdrop changes all monitors: Per-monitor backdrop selection now only affects the selected monitor
  • White line above wallpaper path: Removed hardcoded separator — Layout.topMargin provides sufficient spacing
  • Derive theme colors noop: Toggle now wires through to Appearance.qml ColorQuantizer, Wallpapers.effectiveWallpaperPath, and switchwall.sh matugen source

[2.9.1] - 2026-02-11

#Added

  • Weather location debouncing: Wait 1.5 seconds after user finishes typing before triggering geocoding to reduce API calls
  • Weather geocoding improvements: Smarter display name formatting (city, country) for manual location entries
  • Cliphist lazy image decode: Only decode images when they become visible, reducing process spam
  • YtMusic dependency reporting: Show exactly which dependencies are missing and how to install them

#Changed

  • GitHub templates: Streamlined issue and PR templates for clarity and conciseness
  • Package dependencies: Added missing required commands to doctor.sh and PKGBUILDs (python, xdg-utils, curl, git, swayidle, fuzzel, pacman-contrib, ddcutil, translate-shell)
  • PACKAGES.md documentation: Synchronized with actual package requirements

#Fixed

  • Video wallpaper blur: Blur effect now works correctly with video wallpapers (removed video guard clause)
  • Overlay pinned widgets: Pinned widgets now display correctly when the overlay is closed
  • Clipboard self-trigger: Prevented clipboard from refreshing when copying its own entries
  • YtMusic mpv-mpris: Made mpv-mpris plugin optional so playback works without it
  • YtMusic cookie path: Fixed path for cookie file used by mpv
  • Weather re-fetch: Prevent duplicate location resolution on shell restart with manual coordinates

[2.9.0] - 2026-02-11

#Added

  • Shell update overlay: New layer-shell panel with commit log, changelog preview, and local modifications detection
  • Shell update details: Click bar indicator to open detailed overlay instead of direct update
  • Weather manual location: City name input, manual lat/lon coordinates, and GPS support via geoclue
  • Weather geocoding: Forward geocoding (city → coords) and reverse geocoding (coords → display name) via Nominatim
  • Waffle themes redesign: Theme cards with live color preview circles, quick-apply, inline rename, import/export
  • WWaffleStylePage options: Start menu scale slider, clock format options, bar sizing controls (height, icon size, corner radius), desktop peek section
  • Waffle pages icon audit: Replaced generic icons with descriptive FluentIcons across all settings pages
  • Ko-fi funding: Added ko_fi to FUNDING.yml

#Changed

  • Waffle settings isolation: Waffle family always opens its own Win11-style settings window, simplified IPC toggle logic
  • Win11 visual polish: Redesigned waffle settings widgets with shadows, compact sizing, animated transitions using Looks.transition tokens
  • Weather priority: Manual coords > manual city > GPS > IP auto-detect
  • ShellUpdates service: Added overlay state management, manifest parsing, IPC handlers (toggle/open/close/check/update/dismiss)

#Fixed

  • Config schema sync: Added 6 missing altSwitcher properties, enableAnimation for WaffleBackground, noVisualUi and taskView.closeOnSelect defaults
  • Settings bugs: Fixed BarConfig layout property name, WaffleConfig bindings and spacing
  • YtMusic persistence: Connection state and resolvedBrowserArg now persist across restarts
  • YtMusic cookies: Always use --cookies-from-browser instead of intermediate cookie files, resolve Firefox fork profile paths
  • YtMusic debugging: Added stderr capture and logging for mpv, converted shell commands to proper array-based Process commands
  • Waffle start menu overflow: Added clip, Flickable wrapper, min/max height constraints, reduced recommended items from 6 to 4

[2.8.2] - 2026-02-09

#Added

  • Dock screen filtering: screenList config option for per-monitor dock control, matching bar behavior (thanks @ainia for the reminder)

#Fixed

  • Dock animations: Resolved flickering during app launch and drag operations (PR #40 by @Legnatbird)

[2.8.1] - 2026-02-08

#Added

  • Settings search: Granular per-option search index with spotlight scroll-to navigation
  • Terminal detection: Auto-detect installed terminals in color config section on first expand
  • Crypto cache: Persist crypto widget prices and sparkline data across shell restarts
  • Notification options: ignoreAppTimeout and scaleOnHover config properties

#Changed

  • Bar center layout: Both center groups now share effective width so workspaces stay perfectly centered regardless of active utility button count
  • Screen cast toggle (PR #29): Simplified to always-interactive toggle with configurable output; removed monitor count detection overhead

#Fixed

  • Media player duplication: Bottom overlay now uses displayPlayers with title/position dedup, matching bar popup behavior
  • Notification popup animations: Differentiated popup vs sidebar behavior — popups use instant height changes to avoid Wayland resize stair-stepping, with height buffer and clip to prevent content overflow
  • Hardcoded animations: Replaced raw NumberAnimation/ColorAnimation with Appearance.animation and Looks.transition design tokens across TimerIndicator, KeyboardKey, BarMediaPlayerItem, ThemePresetCard, TilingOverlay, and WidgetsContent
  • Screen cast settings: Added null safety, setNestedValue for output field, synced defaults with Config.qml schema
  • Shell updates: Prevented double repository search fallback when version.json exists but lacks repo_path

[2.8.0] - 2026-02-04

#Added

  • Screen cast toggle: Bar utility button for Niri screen casting with configurable output (PR #29 by @levpr1c)
  • System sounds volume control: Configurable volume for timer, pomodoro, and battery notification sounds

#Changed

  • Video wallpapers: Replaced mpvpaper with Qt Multimedia for native video wallpaper support

#Fixed

  • Terminal color theming: Auto-fix for Alacritty v0.13+ import order requirement - colors now update correctly with wallpaper changes (Issue #30)
  • Package installation: Replaced non-existent matugen-bin AUR package with matugen from official Arch repos (Issue #32)
  • Waffle background: Added missing optional chaining in config access to prevent startup errors

[2.7.0] - 2026-01-21

#Added

  • Bar module toggles: Individual enable/disable options for bar modules (resources, media, workspaces, clock, utility buttons, battery, sidebar buttons)
  • Region search: Google Lens action via IPC (region.googleLens)

#Changed

  • Media player pipeline: Centralized filtering/deduping via MprisController.displayPlayers for consistent behavior across widgets
  • Cava visualizer: Debounced process activation to avoid rapid stop/start loops

#Fixed

  • Shell performance: Reduced stutter by rebuilding MPRIS player lists imperatively instead of hot bindings
  • Bar stability: Null-safe config access for bar components to prevent startup ReferenceError
  • Darkly theme generation: Adaptive clamping to prevent icons/colors from collapsing to pure black/white

[2.6.0] - 2026-01-11

#Added

  • User modification detection: Setup now detects user-modified files and preserves them during updates
  • Themes UI favorites: Star your favorite color themes for quick access in settings
  • Quick Access section: Combined favorites + recently used themes in compact grid
  • Temperature sensor support: Extended hwmon detection for older hardware (k10temp, coretemp, etc.)
  • Control Panel: New unified control panel with modular sections
  • Tiling Overlay: Visual overlay for tiling operations
  • Tools tab: New tools section in settings
  • GIF wallpaper support: Native animated GIF wallpapers with performance optimizations

Version History

~table
VersionDateHighlights
2.11.12026-02-22Cheatsheet redesign, SDDM fix, SongRec update
2.11.02026-02-21SDDM theme, Angel style, terminal theming, setup overhaul
2.10.12026-02-13Desktop and bar right-click context menus
2.10.02026-02-13Multi-monitor wallpapers, video first-frame, per-monitor aurora
2.9.12026-02-11Weather improvements, YtMusic fixes
2.9.02026-02-11Shell update overlay, waffle themes redesign
2.8.22026-02-09Dock screen filtering, animation fixes
2.8.12026-02-08Settings search, bar center layout fix
2.8.02026-02-04Screen cast toggle, video wallpapers
2.7.02026-01-21Bar module toggles, region search
2.6.02026-01-11User mod detection, GIF wallpapers

See Also