1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#!/usr/bin/env bash
# environment variables
PROJECT_DIR=$(dirname "$(dirname "$(readlink -f "$0")")")
XDISPLAY=${XDISPLAY:-:1}
SCREEN_SIZE=${SCREEN_SIZE:-960x540}
LOG_PATH=${PROJECT_DIR}/docs/screenshots/take_all.log
GEOMETRY=${GEOMETRY:-240x135}
DELAY=${DELAY:-1x1}
BORDER_FOCUS=${BORDER_FOCUS:-#ff0000}
BORDER_NORMAL=${BORDER_NORMAL:-#000000}
BORDER_WIDTH=${BORDER_WIDTH:-8}
MARGIN=${MARGIN:-10}
if [[ -z "${PYTHON}" ]]; then
if [[ -f "${PROJECT_DIR}/venv/bin/python3" ]]; then
PYTHON="${PROJECT_DIR}/venv/bin/python3"
else
PYTHON=python3
fi
fi
# run command in nested X window with specific env vars
nested() {
env \
DISPLAY=${XDISPLAY} \
PYTHON="${PYTHON}" \
LOG_PATH="${LOG_PATH}" \
GEOMETRY="${GEOMETRY}" \
DELAY="${DELAY}" \
BORDER_FOCUS="${BORDER_FOCUS}" \
BORDER_NORMAL="${BORDER_NORMAL}" \
BORDER_WIDTH="${BORDER_WIDTH}" \
MARGIN="${MARGIN}" \
"$@"
}
rm "${LOG_PATH}" &>/dev/null
touch "${LOG_PATH}"
tail -f "${LOG_PATH}" &
TAIL_PID=$!
Xephyr +extension RANDR -screen ${SCREEN_SIZE} ${XDISPLAY} -ac &>/dev/null &
XEPHYR_PID=$!
(
sleep 1
nested "${PYTHON}" "${PROJECT_DIR}/libqtile/scripts/main.py" -l CRITICAL -c "${PROJECT_DIR}/docs/screenshots/config.py" &
QTILE_PID=$!
case $1 in
-i|--interactive)
nested xterm
;;
*)
sleep 1
nested xterm -e "${PYTHON}" "${PROJECT_DIR}/docs/screenshots/take_all.py" "$@"
kill $TAIL_PID
nested xterm -e qtile cmd-obj -o cmd -f shutdown
;;
esac
wait $QTILE_PID
kill $XEPHYR_PID
)
|