# saatvik333/niri-dotfiles architecture

> Architecture diagram of the GitHub repository saatvik333/niri-dotfiles, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/saatvik333/niri-dotfiles
- Repository: https://github.com/saatvik333/niri-dotfiles

## Overview

This repository is a Niri desktop configuration: users interact with the compositor and its configured desktop tools, while Wallust provides the documented wallpaper-based, system-wide theming capability. The README documents application and wallpaper-selector keybinds, theme generation, and the roles of major tools. No source excerpts were available, so links beyond those documented relationships are omitted; configuration details such as exact script dispatch are not asserted.

Main entry points: [`niri/config.kdl`](https://github.com/saatvik333/niri-dotfiles/blob/main/niri/config.kdl) (Niri Compositor), [`wallust/wallust.toml`](https://github.com/saatvik333/niri-dotfiles/blob/main/wallust/wallust.toml) (Wallust Theme Generator), [`wallpapers`](https://github.com/saatvik333/niri-dotfiles/tree/main/wallpapers) (Wallpaper Collection), [`vicinae/vicinae.json`](https://github.com/saatvik333/niri-dotfiles/blob/main/vicinae/vicinae.json) (Vicinae Launcher)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop Session"]
  node_niri["Niri Compositor<br/>[config.kdl]"]
  node_waybar["Waybar Status Bar<br/>[config.jsonc]"]
  node_mako["Mako Notifications"]
  node_gtklock["GTKLock<br/>[config.ini]"]
end

subgraph group_launch["Launch And Media"]
  node_rofi["Rofi<br/>[config.rasi]"]
  node_vicinae["Vicinae Launcher<br/>[vicinae.json]"]
  node_bgselector["Wallpaper Selector<br/>[bgselector.sh]"]
  node_media["Media Controls<br/>[media-control.sh]"]
end

subgraph group_theme["Dynamic Theming"]
  node_wallust["Wallust Theme Generator<br/>[wallust.toml]"]
  node_wallpapers["Wallpaper Collection"]
  node_templates["Theme Templates"]
end

subgraph group_environment["User Environment"]
  node_fish["Fish Shell<br/>[config.fish]"]
  node_zsh["Zsh Shell<br/>[config.zsh]"]
  node_alacritty["Alacritty Terminal<br/>[alacritty.toml]"]
  node_kitty["Kitty Terminal<br/>[kitty.conf]"]
  node_nvim["Neovim Editor<br/>[init.lua]"]
  node_yazi["Yazi File Manager<br/>[yazi.toml]"]
  node_starship["Starship Prompt<br/>[starship.toml]"]
end

node_user(("Desktop User"))

node_user -->|"uses"| node_niri
node_niri -->|"opens"| node_alacritty
node_niri -->|"opens"| node_kitty
node_niri -->|"opens"| node_vicinae
node_niri -->|"opens"| node_yazi
node_niri -->|"opens selector"| node_bgselector
node_wallpapers -->|"provides images"| node_wallust
node_wallust -->|"renders colors"| node_templates

click node_niri "https://github.com/saatvik333/niri-dotfiles/blob/main/niri/config.kdl"
click node_waybar "https://github.com/saatvik333/niri-dotfiles/blob/main/waybar/config.jsonc"
click node_mako "https://github.com/saatvik333/niri-dotfiles/blob/main/mako/config"
click node_gtklock "https://github.com/saatvik333/niri-dotfiles/blob/main/gtklock/config.ini"
click node_rofi "https://github.com/saatvik333/niri-dotfiles/blob/main/rofi/config.rasi"
click node_vicinae "https://github.com/saatvik333/niri-dotfiles/blob/main/vicinae/vicinae.json"
click node_bgselector "https://github.com/saatvik333/niri-dotfiles/blob/main/scripts/bgselector.sh"
click node_media "https://github.com/saatvik333/niri-dotfiles/blob/main/scripts/media-control.sh"
click node_wallust "https://github.com/saatvik333/niri-dotfiles/blob/main/wallust/wallust.toml"
click node_wallpapers "https://github.com/saatvik333/niri-dotfiles/tree/main/wallpapers"
click node_templates "https://github.com/saatvik333/niri-dotfiles/tree/main/wallust/templates"
click node_fish "https://github.com/saatvik333/niri-dotfiles/blob/main/fish/config.fish"
click node_zsh "https://github.com/saatvik333/niri-dotfiles/blob/main/zsh/config.zsh"
click node_alacritty "https://github.com/saatvik333/niri-dotfiles/blob/main/alacritty/alacritty.toml"
click node_kitty "https://github.com/saatvik333/niri-dotfiles/blob/main/kitty/kitty.conf"
click node_nvim "https://github.com/saatvik333/niri-dotfiles/blob/main/nvim/init.lua"
click node_yazi "https://github.com/saatvik333/niri-dotfiles/blob/main/yazi/yazi.toml"
click node_starship "https://github.com/saatvik333/niri-dotfiles/blob/main/starship/starship.toml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_niri,node_waybar,node_mako,node_gtklock,node_user toneBlue
class node_rofi,node_vicinae,node_bgselector,node_media toneAmber
class node_wallust,node_wallpapers,node_templates toneMint
class node_fish,node_zsh,node_alacritty,node_kitty,node_nvim,node_yazi,node_starship toneRose
```

## Components

### Desktop Session

- [Niri Compositor](https://github.com/saatvik333/niri-dotfiles/blob/main/niri/config.kdl): `niri/config.kdl`
- [Waybar Status Bar](https://github.com/saatvik333/niri-dotfiles/blob/main/waybar/config.jsonc): `waybar/config.jsonc`
- [Mako Notifications](https://github.com/saatvik333/niri-dotfiles/blob/main/mako/config): `mako/config`
- [GTKLock](https://github.com/saatvik333/niri-dotfiles/blob/main/gtklock/config.ini): `gtklock/config.ini`

### Launch And Media

- [Rofi](https://github.com/saatvik333/niri-dotfiles/blob/main/rofi/config.rasi): `rofi/config.rasi`
- [Vicinae Launcher](https://github.com/saatvik333/niri-dotfiles/blob/main/vicinae/vicinae.json): `vicinae/vicinae.json`
- [Wallpaper Selector](https://github.com/saatvik333/niri-dotfiles/blob/main/scripts/bgselector.sh): `scripts/bgselector.sh`
- [Media Controls](https://github.com/saatvik333/niri-dotfiles/blob/main/scripts/media-control.sh): `scripts/media-control.sh`

### Dynamic Theming

- [Wallust Theme Generator](https://github.com/saatvik333/niri-dotfiles/blob/main/wallust/wallust.toml): `wallust/wallust.toml`
- [Wallpaper Collection](https://github.com/saatvik333/niri-dotfiles/tree/main/wallpapers): `wallpapers`
- [Theme Templates](https://github.com/saatvik333/niri-dotfiles/tree/main/wallust/templates): `wallust/templates`

### User Environment

- [Fish Shell](https://github.com/saatvik333/niri-dotfiles/blob/main/fish/config.fish): `fish/config.fish`
- [Zsh Shell](https://github.com/saatvik333/niri-dotfiles/blob/main/zsh/config.zsh): `zsh/config.zsh`
- [Alacritty Terminal](https://github.com/saatvik333/niri-dotfiles/blob/main/alacritty/alacritty.toml): `alacritty/alacritty.toml`
- [Kitty Terminal](https://github.com/saatvik333/niri-dotfiles/blob/main/kitty/kitty.conf): `kitty/kitty.conf`
- [Neovim Editor](https://github.com/saatvik333/niri-dotfiles/blob/main/nvim/init.lua): `nvim/init.lua`
- [Yazi File Manager](https://github.com/saatvik333/niri-dotfiles/blob/main/yazi/yazi.toml): `yazi/yazi.toml`
- [Starship Prompt](https://github.com/saatvik333/niri-dotfiles/blob/main/starship/starship.toml): `starship/starship.toml`

### Other components

- **Desktop User**

## Connections

- Desktop User → Niri Compositor: uses
- Niri Compositor → Alacritty Terminal: opens
- Niri Compositor → Kitty Terminal: opens
- Niri Compositor → Vicinae Launcher: opens
- Niri Compositor → Yazi File Manager: opens
- Niri Compositor → Wallpaper Selector: opens selector
- Wallpaper Collection → Wallust Theme Generator: provides images
- Wallust Theme Generator → Theme Templates: renders colors
