Skip to content
Projects

Crowdrocker/WehttamSnaps-Niri

View on GitHub

Crowdrocker/WehttamSnaps-Niri has 39 GitHub stars and 1 forks. GitHot measured 0 stars in 24 hours, 0 in 7 days, and +2 in 15 days. Last checked 2026-11-09 19:53 UTC. Last push 2026-10-11.

How these counts are measured

Arch Linux Niri configuration for photography, gaming, and content creation. Features gradient borders, J.A.R.V.I.S. integration, audio routing, and comprehensive documentation.

Measured star growth

in 24h
0
in 7 days
0
in 15 days
+2
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

GitHub Repo stars GitHub last commit


Game Arch Linux configuration optimized for photography, gaming, and content creation. Up

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

🖥️ System Architecture Specs

Component Target Hardware Specification
CPU AMD Ryzen 5 9600X (6 Cores / 12 Threads)
GPU XFX Speedster SWFT210 Radeon RX 7600 (8GB VRAM)
RAM 16GB DDR5 (Upgrading to 32GB Dual-Channel)
PSU EVGA 850W Modular Power Supply
Chassis HYTE Y60 (White with Black Trim, Panoramic Glass)
Displays Main: Samsung 4K (Configured to 1920x1080 @ 60Hz)
Left: Native 1080p @ 60Hz

🗃️ Modular Configuration Matrix (snaps/)

To prevent monolith configuration decay, my main Niri config.kdl parses modular file segments sequentially:

  • 📁 00-base.kdl: Root environment limits, 1:1 flat mouse tracking configuration, and XWayland scale handling.
  • 📁 05-wiri_startup.kdl: Autostart system bridges (xwayland-satellite), secure storage auto-mounters, GNOME Polkit agents, and background scripts.
  • 📁 10-wiri_keybinds.kdl: Keyboard layout mappings (Vim-style navigation) and J.A.R.V.I.S automation execution hooks.
  • 📁 20-wiri_rules.kdl: Precise window geometry bounds and floating rules for modding infrastructure (Vortex, MO2, xEdit, SteamTinkerLaunch).
  • 📁 30-workspaces.kdl: Monitored desktop layouts splitting peripheral applications to the left screen and full-screen environments to the center display.
  • 📁 40-gaming.kdl: Exclusive full-screen application sandboxing rules utilizing gamescope.
  • 📁 99-overrides.kdl: Absolute layout overrides pinning coordinate geometry planes for my dual 1080p display matrix.

🎵 J.A.R.V.I.S Audio Routing Matrix

System audio streams are parsed cleanly into isolated virtual lines using PipeW 📸

Material ii

Overview Sidebars
Overview Sidebars
Overlay/Search Settings
Settings Overlay

Waffle (Windows 11 style)

Quick Settings Start Menu + Widgets
Waffle Start Waffle Settings

✨

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

Audio

  • 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

Two flavors, one shell

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.


🎮

Supported Games (Pre-configured)

  • 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

Performance Tips

  1. Enable Gamemode: Automatic via launch options
  2. Use Gamescope: Configured per-game
  3. Proton GE: Latest version installed
  4. Mesa Optimizations: Pre-configured for RX 580
  5. 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

Customize J.A.R.V.I.S.

Edit scripts/jarvis-manager.sh to add or modify sound triggers.


📦 Read these or suffer.

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

Arch-based? Run this:

git clone https://github.com/Crowdrocker/WehttamSnaps-Niri.git
cd WehttamSnaps-Niri
./setup install -y

Not on Arch? Check docs/INSTALL.md for manual steps.


Already installed? Pull and sync:

cd WehttamSnaps-Niri
git pull
./setup update

Syncs QML and configs. Your customizations stay. Missing keybinds get added. Hot reload does the rest.


(the important ones)

🎹 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.


IPC (for nerds who want custom bindings)

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

Niri won't start

# Check logs
journalctl --user -u niri.service -f

# Validate config
niri validate

Audio routing not working

# Restart PipeWire
systemctl --user restart pipewire pipewire-pulse wireplumber

# Re-run audio setup
./scripts/audio-setup.sh

Gaming performance issues

# Check Proton version
protonup-qt

# Verify Mesa drivers
vulkaninfo | grep "deviceName"

# Enable performance mode
./scripts/toggle-gamemode.sh on

If you're still stuck, the logs usually tell you what's missing. Usually.


Fair warning

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.


🙏


📞 Contact


Made with ❤️ by WehttamSnaps If you found this helpful, please consider giving it a star! It helps others discover this project.

Explore related projects