โ
โOverviewโ
โโโ
โ
โScreenshotsโ
โโโ
โ
โWhatisthisโ
โโโ
โ
โDocumentationโ
โโโ
โ
โQuickInstallโ
โโโ
โ
โUpdatingโ
โโโ
โ
โKeybindsโ
โโโ
โ
โTroubleshootingโ
โโโ
โ
โCreditsโ
โโโ
This repository contains a complete, modular Niri configuration featuring:
A Quickshell shell for Niri. Fork of end-4's illogical-impulse, butchered to work on a different compositor.
Caution
Hey. This is my personal rice. I put effort into it, but it's not a product - don't expect hand-holding or stability guarantees. If you're just here because "it looks cool" and have no clue what Niri even is, maybe check out something more beginner-friendly first. Your system, your responsibility.
Heads up: almost everything here is configurable. Modules, colors, fonts, animations - if something bugs you, there's probably a toggle for it. Hit
Super+,for settings before you rage-quit.
- J.A.R.V.I.S. Integration โ Immersive AI assistant theme with custom sounds
- Photography Workflow โ Optimized for photo editing and content creation
- Gaming Performance โ Tuned for RX 580 with Proton GE configurations
- Audio Routing โ PipeWire + qpwgraph for advanced audio control
- Custom Branding โ WehttamSnaps theme throughout
| Overview | Sidebars |
|---|---|
![]() |
![]() |
| Overlay/Search | Settings |
|---|---|
![]() |
![]() |
| Quick Settings | Start Menu + Widgets |
|---|---|
![]() |
![]() |
A shell. Bar at the top, sidebars on the sides, overlays that pop up when you press keys. The usual.
- Bar - clock, workspaces, tray, the stuff you expect
- Sidebars - left one has AI chat and wallpaper browser, right one has quick toggles and a notepad
- Overview - workspace grid, adapted for Niri's scrolling model
- Alt+Tab - window switcher that actually works across workspaces
- Clipboard - history panel with search (needs cliphist)
- Region tools - screenshots, screen recording, OCR, reverse image search
- Wallpaper - picker, video support, and matugen pulls colors from whatever you set
- Theming - presets like Gruvbox and Catppuccin, or build your own with the custom theme editor. Fonts are customizable too
- Settings - GUI config with search, so you don't have to edit JSON like a caveman
- GameMode - fullscreen app? Effects go bye-bye. Your games won't stutter
- Idle - screen off, lock, suspend timeouts. swayidle handles it, you configure it
- Gamemode + Gamescope โ Performance optimization
- Proton GE โ Enhanced game compatibility
- Steam Launch Options โ Pre-configured for 16 games
- Mod Manager Support โ Window rules for Vortex, MO2, Wabbajack
- PipeWire Routing โ Separate audio channels (game, browser, Discord, Spotify)
- qpwgraph โ Visual audio routing like VoiceMeter
- J.A.R.V.I.S. Sounds โ System event audio notifications
Can't decide on a look? Good news, you don't have to.
- Material ii - The OG. Floating bar, sidebars, that Material Design aesthetic.
- Waffle - Taskbar at the bottom, action center, tray overflow. For the "I kinda miss Windows" crowd.
Press Mod+Shift+W to cycle between styles, or go to Settings โ Modules to mix and match.
- Call of Duty HQ
- Cyberpunk 2077
- Fallout 4
- FarCry 5
- Ghost Recon Breakpoint
- Marvel's Avengers
- Need for Speed Payback
- Rise of the Tomb Raider
- Shadow of the Tomb Raider
- The First Descendant
- Tom Clancy's The Division 1 & 2
- Warframe
- Watch Dogs 1, 2, & Legion
- Enable Gamemode: Automatic via launch options
- Use Gamescope: Configured per-game
- Proton GE: Latest version installed
- Mesa Optimizations: Pre-configured for RX 580
- Disable Compositor Effects: Gaming mode toggle
See docs/GAMING.md for detailed per-game configurations and troubleshooting.
### Configure Audio Routing
```bash
# Launch qpwgraph
qpwgraph
# Or use automated setup
./scripts/audio-setup.sh
๐
J.A.R.V.I.S. provides audio feedback for system events:
- Startup: "Allow me to introduce myself, I am JARVIS..."
- Shutdown: "Shutting down. Have a good day, Matthew."
- Notifications: "Matthew, you have a notification."
- Gaming Mode: "Gaming mode activated. Systems at maximum performance."
- Streaming: "Streaming systems online. All feeds operational."
- Warnings: Temperature alerts and system warnings
Edit scripts/jarvis-manager.sh to add or modify sound triggers.
| Doc | What's in it |
|---|---|
| docs/INSTALL.md | How to install this thing |
| docs/PACKAGES.md | Every package the installer uses, by category |
| docs/KEYBINDS.md | Default keyboard shortcuts |
| docs/IPC.md | All IPC targets for custom keybindings |
| docs/SETUP.md | How the setup script works, updates, uninstall |
| docs/LIMITATIONS.md | Known limitations and what doesn't work |
git clone https://github.com/Crowdrocker/WehttamSnaps-Niri.git
cd WehttamSnaps-Niri
./setup install -yNot on Arch? Check docs/INSTALL.md for manual steps.
Already installed? Pull and sync:
cd WehttamSnaps-Niri
git pull
./setup updateSyncs QML and configs. Your customizations stay. Missing keybinds get added. Hot reload does the rest.
๐น
These come configured by default:
| Key | What it does |
|---|---|
Mod+Tab |
Niri overview (native) |
Mod+Space (Super+Space) |
ii overview (search/workspaces nav) |
Alt+Tab |
ii window switcher |
Super+G |
ii overlay ( widgets/utils) |
Super+V |
Clipboard history |
Super+Shift+S |
Region screenshot |
Super+Shift+X |
Region OCR |
Ctrl+Alt+T |
Wallpaper picker |
Super+/ |
Keyboard shortcuts cheatsheet |
Super+, |
Settings |
Mod+Shift+W |
Cycle panel style (Material โ Waffle) |
Full list in docs/KEYBINDS.md.
ii exposes IPC targets you can bind to whatever keys you want. Syntax:
bind "Key" { spawn "qs" "-c" "ii" "ipc" "call" "<target>" "<function>"; }Main targets:
| Target | Functions |
|---|---|
overview |
toggle |
overlay |
toggle |
clipboard |
toggle, open, close |
altSwitcher |
next, previous, toggle |
region |
screenshot, ocr, search, record |
session |
toggle |
lock |
activate |
cheatsheet |
toggle |
settings |
open |
sidebarLeft |
toggle |
sidebarRight |
toggle |
wallpaperSelector |
toggle |
panelFamily |
cycle, set |
mpris |
playPause, next, previous |
brightness |
increment, decrement |
gamemode |
toggle, activate, deactivate, status |
notifications |
test, clearAll, toggleSilent |
audio |
volumeUp, volumeDown, mute, micMute |
Full reference with examples: docs/IPC.md
๐ ๏ธ
Something broke? Shocking.
# Check the logs
qs log -c ii
# Restart ii without restarting Niri
qs kill -c ii && qs -c ii
# Nuclear option: reload everything
niri msg action load-config-file# Check logs
journalctl --user -u niri.service -f
# Validate config
niri validate# Restart PipeWire
systemctl --user restart pipewire pipewire-pulse wireplumber
# Re-run audio setup
./scripts/audio-setup.sh# Check Proton version
protonup-qt
# Verify Mesa drivers
vulkaninfo | grep "deviceName"
# Enable performance mode
./scripts/toggle-gamemode.sh onIf you're still stuck, the logs usually tell you what's missing. Usually.
This is my daily driver. It works. Most of the time. I break things when I'm bored.
This fork diverged a lot from the original - different compositor, different features, different bugs. If you want the Hyprland version, check out end-4's original.
- end-4 โ illogical-impulse for Hyprland
- Quickshell โ the framework that makes this possible
- snowarch โ Theming concepts
- Chris Titus โ Linutil tool
- Community โ Arch Linux, Niri, and PipeWire communities
- Twitch: twitch.tv/WehttamSnaps
- YouTube: youtube.com/@WehttamSnaps
- GitHub: github.com/Crowdrocker
Made with โค๏ธ by WehttamSnaps If you found this helpful, please consider giving it a star! It helps others discover this project.







