dotfiles/bin/screen-share-sway

59 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# Screen Sharing with OBS Studio on Fedora and Sway
# ref: https://github.com/hw0lff/screen-share-sway
grep -q "alias obs" ~/.zshrc || echo 'alias obs="QT_QPA_PLATFORM=xcb obs"' >> ~/.zshrc
V4L2_VERSION="0.12.5"
U="$HOME/utils"
MAKEFLAGS="$MAKEFLAGS -j$(nproc)" # take the honeybadger approach
printf '*- MAKEFLAGS: %s\n*- v4l2 version: %s\n' "$MAKEFLAGS" "$V4L2_VERSION"
# grab and build latest v4l2 module
"$U"/dotfiles/bin/v4l2pls "$V4L2_VERSION"
# ref: https://github.com/obsproject/obs-studio/wiki/Install-Instructions#red-hatfedora-based-build-directions
if [ ! -d "$U/obs-studio" ]; then
cd "$U" || exit
git clone --recursive https://github.com/obsproject/obs-studio.git
fi
cd "$U"/obs-studio || exit
git pull
git submodule update --recursive
mkdir -pv build && cd build
cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..
make clean
sudo make install
if [ ! -d "$U/obs-v4l2sink" ]; then
cd "$U" || exit
git clone https://github.com/CatxFish/obs-v4l2sink.git
fi
cd "$U"/obs-v4l2sink || exit
git pull
mkdir -pv build && cd build
cmake -DLIBOBS_INCLUDE_DIR="$HOME/utils/obs-studio/libobs" -DCMAKE_INSTALL_PREFIX="$HOME/.local" ..
make
make install
if [ ! -d "$U/wlrobs" ]; then
cd "$U" || exit
hg clone https://hg.sr.ht/~scoopta/wlrobs
fi
cd "$U"/wlrobs || exit
hg pull
hg update
if [ ! -d build ]; then
mkdir -pv build
meson build
fi
meson --reconfigure build
ninja -C build
TGT="$HOME/.config/obs-studio/plugins/wlrobs/bin/64bit"
mkdir -pv "$TGT"
cp -v build/libwlrobs.so "$TGT"