For niri I followed closely the build and "manual installation" and "example systemd setup" instructions on the website. If you do that don't forget to edit niri.service to set the correct path for the executable.
For Quickshell I basically followed the website instructions but here are my notes from when I installed on Debian Trixie:
git clone https://git.outfoxxed.me/quickshell/quickshell
sudo apt install cmake qt6-base-dev qt6-declarative-dev qt6-shadertools-dev spirv-tools pkg-config libcli11-dev qt6-wayland-private-dev qt6-svg-dev ninja-build qt6-svg-plugins libjemalloc-dev wayland-protocols libdrm-dev libqtqmlmodels-dev 'qt6-*-private-dev' libpam0g-dev
Do not install ddcutil: it prevents detection of the external monitor except if the monitor is turned off and on again.
cmake -GNinja -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCRASH_REPORTER=OFF
ignore warnings `The qml plugin 'xxx' is a dependency of 'quickshell'...`
cmake --build build
cmake --install build
For the Quickshell config I used Noctalia. This means installing some dependencies like fonts-roboto, then cloning the noctalia repository as a directory in ~/.config/quickshell/, and finally editing the quickshell systemd service to start it with the noctalia config (command "qs -c noctalia-shell").
Checkout DankMaterialShell[0], it's still in somewhat early stages of development but it supports both Niri and Hyprland. I just switched over to it from waybar in my Omarchy setup and have been loving it.