Here is my desktop configuration for the Niri wayland compositor.

# Notes
- Everything under [.config/noctalia](home/aiden/.config/noctalia) and most of what's under [.config/nvim](home/aiden/.config/nvim) was generated by Noctalia and Lazyvim respectively.
  - Everything else I've created or edited extensively myself.
- [niri/outputs.kdl](home/aiden/.config/niri/outputs.kdl) will always need to be edited to your monitor configuration 

# Dependencies
## Required
- Niri
  - Version 25.11 or higher (config is split into multiple files)
- [Noctalia's Dependencies](https://docs.noctalia.dev/getting-started/installation/#dependencies-explained) Including Optional (except matugen)
  - Noctalia itself is included in these files
- polkit-kde-agent
- gnome-keyring
- pipewire
  - wireplumber
  - pipwire-pulse
- swayidle
  - to trigger sleep/lock after inactivity
- power-profiles-daemon

## Choice (will require editing configs to change)
- Void Linux
  - The only void-specific config I'm aware of is the Update Count plugin for Noctalia
  - On systemd systems you may want to change some spawn-at-startup items to be systemd services
- Alacritty
  - Terminal Emulator of choice
  - [niri/binds.kdl](home/aiden/.config/niri/binds.kdl)
  - Noctalia Settings
    - Launcher -> Terminal Command
    - Plugins -> Update Count Settings -> Terminal Emulatorpolkit-kde-agent
- SDDM
  - [cron.hourly/sddm-background.sh](etc/cron.hourly/sddm-background.sh) and [sddm-random-background.sh](home/aiden/sddm-random-background.sh) won't work without SDDM but otherwise feel free to use any (or no) login manager
- zfs-auto-snaphot
  - the zfs-auto-snaphot is setup to use zrep following [this guide](https://www.reddit.com/r/voidlinux/comments/hu1ron/simple_backup_with_zfsautosnapshot/)
  - Either set it up if you're using zfs or remove the cron files under [/etc](etc)
  - requires cron (see below)
- Nemo
  - File Manager of choice
  - [niri/binds.kdl](home/aiden/.config/niri/binds.kdl)
  - [xdg-desktop-portal](usr/share/xdg-desktop-portal/niri-portals.conf) (FileChooser)
- Firefox
  - Browser of choice
  - [niri/binds.kdl](home/aiden/.config/niri/binds.kdl)
- Element
  - Matrix client
  - [niri/startup.kdl](home/aiden/.config/niri/startup.kdl)
- Discord (flatpak)
  - [niri/startup.kdl](home/aiden/.config/niri/startup.kdl)
  - [discord-delay.sh](usr/local/bin/discord-delay.sh)
    - Audio seems to not work for discord if it's started too soon

## Optional
- Neovim
  - [.config/nvim](home/aiden/.config/nvim) will do nothing if nvim is not installed
- Seahorse
  - GUI to Manage gnome-keyring
- Evolution
  - Needed to add calendars to evolution-data-server, which Noctalia uses to show calendar events
- GNOME Calendar
  - GUI to view calendar, but is solely a calendar unlike Evolution
- A cron implementation
  - I use snooze on void, you may want to convert the cron files to systemd timers if that is an option for you. 
