# Mayhem Party Venue `git submodule init; git pull --recurse-submodules --jobs=10; git submodule foreach git pull origin master` # Clients ## Distribute `rusty-pipe` ```bash # https://www.reddit.com/r/rust/comments/5k8uab/crosscompiling_from_ubuntu_to_windows_with_rustup/ ( echo '[target.x86_64-pc-windows-gnu]' echo 'linker = "x86_64-w64-mingw32-gcc"' echo 'ar = "x86_64-w64-mingw32-gcc-ar"' ) >> $HOME/.cargo/config sudo apt install mingw-w64 rustup target add x86_64-pc-windows-gnu echo windows cargo build --release --target x86_64-pc-windows-gnu rm target/x86_64-pc-windows-gnu/release/rusty-pipe-signed.exe read -p ".crt? " CERT osslsigncode sign \ -certs ${CERT%.crt}.crt -key ${CERT%.crt}.key \ -n Rusty-Pipe -i https://whois.home.blapointe.com \ -in target/x86_64-pc-windows-gnu/release/rusty-pipe.exe -out target/x86_64-pc-windows-gnu/release/rusty-pipe-signed.exe echo local cargo install --path ./ ``` Each client needs 1 executable and 1 config file with a unique user "name". The server cannot be a client because sending, listening, and typing keyboard is bad. Maybe a VM on the client as a server would work tho. See `./config.d/rusty-pipe.d` # Server ### Docker ```bash docker build -f Dockerfile -t mayhem-party-venue . && docker run -p 17071:17071 -p 17070:17070/udp --rm -it -v /run/user/$UID/pulse/native:/run/user/0/pulse/native -e PULSE_SERVER=unix:/run/user/0/pulse/native -v "$PWD"/mnt.d:/mnt -e DEBUG=true mayhem-party-venue ``` ## TTS `cd ./git.d/tts.d/larynx.d; bash run.sh` ## STT `cd ./git.d/stt.d/whisper-2023; HOTWORDS=../../../config.d/mayhem-party.d/v01.yaml@.users[].state.gm.alias MIC_TIMEOUT=2 URL=http://localhost:17071/gm/rpc/broadcastSomeoneSaidAlias?message={{hotword}} HEADERS=say='Eye herd {{hotword}}' python3 ./hotwords.py` ## `mayhem-party` ### Configs `cd ./config.d/mayhem-party.d/remap.d; bash ./rotate.sh` > rotate anytime via stdin or `pkill -SIGUSR1 -f rotate.sh` ### Binary `bash -c 'true; source ./config.d/mayhem-party.d/env.env; mayhem-party'` ## Game Playing Foreground