# PeerSpeak + PixelPass — CachyOS/Arch test pack A single **split PKGBUILD** that builds the latest code from the public gitbutter repos and installs **both** programs at once: - `peerspeak` — decentralized P2P voice chat - `pixelpass` — P2P screen sharing (peerspeak launches it for the screen-share button) ## Build & install (one command) ```sh git clone https://gitbutter.xyz/mollusk/peerspeak.git cd peerspeak/packaging/test-pack makepkg -si ``` `makepkg -si` auto-installs every dependency via pacman before building — including the Rust toolchain itself (the `cargo` makedepend is provided by the `rust` package), `git`, `pkgconf`, pipewire + opus for peerspeak, and the gstreamer/VA-API stack for pixelpass. The only prerequisite is the `base-devel` group (which provides `makepkg`). If you already use `rustup`, that satisfies the `cargo` makedepend and the `rust` package won't be pulled in — no conflict. When it finishes you'll have `peerspeak` and `pixelpass` on your PATH at `/usr/bin`. To rebuild later with fresh upstream code, re-run `makepkg -si`; the git sources re-pull `main` and the version bumps automatically. > Skip the test step with `makepkg -si --nocheck` for a faster build. ## Running the cross-internet test 1. Launch `peerspeak` on both machines. 2. One person **creates** a room and shares the room code/ticket with the other. 3. The other **joins** with that code. 4. iroh does NAT hole-punching automatically; if a direct path can't be made it falls back to a public n0 relay — **no port forwarding required**. 5. Allow the app through any local firewall if prompted (outbound UDP / QUIC; nothing needs to be opened inbound for relay mode). ### What we're smoke-testing - Two real humans, two networks, over the internet. - Mic capture + remote playback both directions, no crackle/dropouts. - Mute / deafen, push-to-talk. - Text chat in-room. - Avatars (presets + custom upload) show up on the other side. - Screen share: click the screen-share control → it launches `pixelpass`; the viewer opens in `mpv` on the receiving side. - Notification chimes (join/leave/etc.). - Leave / rejoin cleanly. If anything misbehaves, grab the log path peerspeak prints on startup and the exact repro steps.