/nɪkˈsuːri/ · A modular desktop configuration system for Arch / CachyOS
Supports Niri and Noctalia — take it easy, snap your setup together, and enjoy.
Website · Watch demo on Bilibili · Join discussion on Reddit · Read Wiki
⚠️ Under Heavy Development: Themainbranch is actively undergoing refactoring and rapid evolution. For a stable daily experience, checking out the latest release tag is recommended.Upgrading from NyxNiri? The project is rebranded to Nyxuri (/nɪkˈsuːri/) — no longer just a rigid set of configs, but an evolving modular desktop configuration system. Running
nyxuriautomatically migrates your existing configs, snapshots, and state, then safely cleans up legacy paths.Note: The built-in Nyxuri Shell is experimental — fully in development, known to be buggy, its look is unfinished, and it is not recommended for daily use yet. Stay on Noctalia;
nyxuri shellis for testing only. Known issues: shell/KNOWN-ISSUES.md.
Pronounced /nɪkˈsuːri/, it's a quiet blend of things we love:
- Nyx: Night, calmness, and a fond nod to the project's roots as NyxNiri.
- Yukkuri (「ゆっくり」): Take it easy. Ricing your Linux desktop should be a fun, relaxing journey — never a source of stress.
- Yuri (「百合」): Pure, gentle everyday connections (a little personal affection from the author).
- ...And "URI"?: We once jokingly called it "Unified Runtime Interface" in architectural notes to sound fancy... forget that! It's honestly just here because the syllables sound so soft and sweet together (⁄ ⁄•⁄ω⁄•⁄ ⁄).
In short, Nyxuri is a modular desktop configuration system and management engine for Arch / CachyOS.
We are committed to long-term support for dual desktop shells (the polished Noctalia and our in-house Nyxuri Shell in active incubation), debuting on Niri and progressively expanding to more window managers. Adhering to a strict zero-bloat, transparent, and zero-residue philosophy, it provides:
- Multi-WM & Dual Shell Architecture: Actions dispatch through a decoupled
shell-action.shgateway; natively supports Niri (scrolling layout) and MangoWM (with more Wayland compositors coming), allowing seamless transitions between Noctalia and Nyxuri Shell. - Global Theme & Palette Sync: Wallpaper sampling (with video frame extraction) drives Material You palettes across GTK 3/4, XDG Portal, Kitty, web browsers, and desktop shells in lockstep.
- Noctalia Companion Tools (Noctalia Tools):
- Orbit Launcher (
Super+A/ Mouse Forward): Vector radial menu for apps, bookmarks, and search/AI dials (TOML-configurable). - Wallpaper Picker (
Super+W): Unified static and live video wallpaper selector with live preview. - Selection Translate: Fast popup translation for highlighted text.
- Eye Care (
Super+N) & Scratchpad (Super+~drop-down Kitty floating terminal).
- Orbit Launcher (
- NyxMellow Input Skin: Dynamic theme-synced Fcitx5 skin with mellow geometry, bundled with a tuned Rime setup.
- Modern Terminal Experience: Kitty terminal optimizations (smooth cursor trails, clipboard-preserving shortcuts), paired with Fish aliases and Starship prompt.
- Modular Capability Units: Fastfetch, Noctalia Greeter login screen, Zed config, and wallpapers toggle independently anytime (
nyxuri on/nyxuri off), incurring zero background overhead when inactive. - Atomic Deployment, Presets & Zero Bloat:
- Dunder Protocol: Any file or directory containing
__custom__(e.g.__custom__.kdl,__custom__.conf) andmonitor.kdlis permanently preserved across updates and preset swaps. - Presets: Easily switch application flavor presets (e.g. Kitty opacity variants) or create custom private presets.
- Zero Bloat & Clean State: Pure Python standard library with zero pip dependencies; disabling a unit wipes deployed files with zero residue; 30-roll automatic snapshots with instant rollback, and
nyxuri doctorfor status audits.
- Dunder Protocol: Any file or directory containing
# shallow clone: latest snapshot only; drop --depth 1 for full history
git clone --depth 1 https://github.com/ech678/Nyxuri.git ~/Nyxuri
cd ~/Nyxuri && ./install.shcurl -fsSL --connect-timeout 10 https://raw.githubusercontent.com/ech678/Nyxuri/main/install.sh | bashTip
Auto-detects Shelly, paru, and yay; if none are installed, nyxuri install full automatically bootstraps paru.
Mirrors for China (gh-proxy / CDN)
# Standalone via gh-proxy.org
curl -fsSL --connect-timeout 10 https://gh-proxy.org/https://raw.githubusercontent.com/ech678/Nyxuri/main/install.sh | bash
# git clone via gh-proxy.org
git clone --depth 1 https://gh-proxy.org/https://github.com/ech678/Nyxuri.git ~/Nyxuri
cd ~/Nyxuri && ./install.shparu -S nyxuri-gitIf no AUR helper is installed in your system, build and install the nyxuri-git package manually:
# clone PKGBUILD repository
git clone https://aur.archlinux.org/nyxuri-git.git
# build & install
cd nyxuri-git && makepkg -siNyxuri
├── install.sh # lightweight bootstrap entrypoint
├── catalog.toml # package catalogue (18 standalone apps without dotfiles)
├── nyxuri/ # Python core engine (zero pip dependencies)
├── shell/ # Nyxuri Shell (QML/Qt6 desktop shell, experimental)
└── units/ # 13 modular desktop capability units
├── fastfetch/ # system information
├── fcitx5-rime/ # dynamic Material You input skin & Rime config
├── fish/ # shell aliases & functions
├── greeter/ # Noctalia Greeter login integration
├── kitty/ # terminal emulator & opacity presets
├── mango/ # MangoWM window manager & session scripts
├── niri/ # window manager & session scripts
├── noctalia/ # desktop shell, theme sync, Orbit & wallpaper picker
├── starship/ # prompt styling
├── theme/ # shared matugen theme template pool
├── wallpapers/ # companion wallpapers & video pack hooks
├── xdg-desktop-portal/ # portal routing (theme sync, screencast)
└── zed/ # editor configuration
Configs deploy atomically. Personal tweaks survive updates via the Dunder protocol: any file or folder containing __custom__ (e.g. __custom__.kdl, __custom__.conf) and monitor.kdl are preserved.
For detailed customization rules and hooks, see Configuration Guide (Wiki).
Presets layer between defaults and your __custom__ files, so switching never touches your own tweaks. Supports modular Parts slots.
See full official preset list, Parts architecture, and private preset setup in Presets Guide (Wiki).
Core keybindings dispatch through shell-action.sh. Quick reference: nyxhelp keys.
See complete window navigation and monitor moving shortcuts in Keybindings (Wiki).
Desktop capabilities are atomic, modular units. Optional units include dynamic Material You fcitx5 input skin (fcitx5-rime), companion wallpaper and video pack (wallpapers), and Noctalia Greeter login screen (greeter). Toggle them on or off anytime: nyxuri on <unit> / nyxuri off <unit>.
For unit lifecycle commands, see CLI Reference (Wiki).
nyxuri manages install, update, snapshots, and diagnostics. Use nyxhelp in terminal for instant cheatsheet lookup.
See full command matrix and options in CLI Reference (Wiki).
When encountering issues, run nyxuri doctor first.
See full diagnostic guides and step-by-step solutions in Troubleshooting (Wiki).
Contact & Community:
- Telegram Channel: @linux_ricing
- QQ:
2040244628· Linux Ricing Group:631425889 - Sponsor: Afdian · Bug reports: GitHub Issues
Special Thanks & Contributors:
- Google Gemini — burned through a pile of free Google tokens
- @zhuhuaian, @Krits03, @Yulljie — community management & support
- @TyhLxxxhLrqTq — companion wallpaper site (in development)
Thanks to:
- RanXOM/glassy-niri — blur effects reference
- SHORiN-KiWATA/shorin-niri — heavily referenced
- sanweiya/fcitx5-mellow-themes — mellow shape source for NyxMellow skin
- StarWhiteIsBusy/Round-Simple-Fcitx5-Skin — Noctalia color-sync pattern reference
- doctorlogix — website design inspiration
Recommended:
- h465855hgg/noctalia-lyrics — status bar lyrics widget
- Ocfeather/chrome-niri-opacity — browser opacity script