X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=brc;h=dc32a10de59354e13627c631abd2b4c6e11c51c4;hb=b714b0dde29aaf5e44d628c1d723077465e9c488;hp=3f4d9f9c8ebe535c2c10bc3479ba2b21e4502f06;hpb=1689909e66f73f779c4e13458d713a2ef517c9f5;p=distro-setup diff --git a/brc b/brc index 3f4d9f9..dc32a10 100644 --- a/brc +++ b/brc @@ -774,6 +774,50 @@ EOF done } +screenrtp() { + + local ip port xoffset + read -r ip port xoffset <<<"$@" + + setxenv + + if [[ ! $port ]]; then + port=9999 + fi + + while true; do + # By default, plugged in screen goes to the right side, so we need an + # offset that is the same as the laptop's x resolution. If we are in + # mirror mode, then we don't need an offset. + if [[ ! $xoffset ]]; then + xoffset=0 + laptop_x=$(xrandr | awk '$1 == "LVDS-1" {print $4}' | sed 's/x.*//') || { sleep 1; continue; } + total_x=$(xdpyinfo| awk '$1 == "dimensions:" {print $2}' | sed 's/x.*//') || { sleep 1; continue; } + screen2_res=$(xrandr | awk '$2 == "connected" && $1 != "LVDS-1" { print $3 }' | sed 's/+.*//') + if (( laptop_x < total_x )); then + xoffset=$laptop_x + fi + fi + + m ffmpeg -probesize 50M -thread_queue_size 50 \ + -video_size $screen2_res -f x11grab -framerate 30 -i :0.0+$xoffset.0 \ + -vcodec libx264 -g 1 -tune zerolatency -preset ultrafast -pix_fmt yuv420p -x264-params repeat-headers=1 \ + -f rtp_mpegts rtp://$ip:$port ||: + + + sleep 1 + done +} + +setxenv() { + if [[ ! $DISPLAY ]]; then + export DISPLAY=:0.0 + fi + if [[ ! $XAUTHORITY ]]; then + export XAUTHORITY=$HOME/.Xauthority + fi +} + #### end fsf section @@ -1390,6 +1434,7 @@ fa() { done < <(find "$@" -print0); } +# shellcheck disable=SC2120 faf() { # find all files. use -L to follow symlinks find "$@" -not \( -name .svn -prune -o -name .git -prune \ -o -name .hg -prune -o -name .editor-backups -prune \ @@ -2045,9 +2090,9 @@ nags() { /usr/bin/nagstamon & } -# profanity screen +# profanity tmux profsrc() { - screen -RD -S profanity + screen -L profanity a } # i dont want to wait for konsole to exit... @@ -2436,19 +2481,24 @@ sgu() { systemctl list-unit-files | rg "$@" } +# check whether we generally want to do sk on the file +sk-p() { + [[ ! -L $f ]] && istext "$1" && [[ $(head -n1 "$1" 2>/dev/null) == '#!/bin/bash'* ]] +} sk() { # see https://savannah.gnu.org/maintenance/fsf/bash-style-guide/ for justifications local quotes others ret quotes=2048,2068,2086,2206,2254 - others=2029,2032,2033,2054,2164, - shellcheck -W 999 -x -e $quotes,$others "$@" || ret=$? + others=2029,2032,2033,2054,2164 + shellcheck -x -W 999 -e $quotes,$others "$@" || ret=$? if (( ret >= 1 )); then echo "A template comment to disable is now in clipboard. eg: # shellcheck disable=SC2206 # reason" cbs "# shellcheck disable=SC" return $ret fi } + # sk with quotes. For checking scripts that we expect to take untrusted # input in order to verify we quoted vars. skq() { @@ -2461,44 +2511,31 @@ skq() { skmodified() { local f for f in $(i s | awk '$1 == "modified:" {print $2}'); do - if [[ ! -L $f ]] && istext "$f" && [[ $(head -n1 "$f" 2>/dev/null) == '#!/bin/bash'* ]]; then + if sk-p "$f"; then sk $f ||: fi done } -# sk on all the files in current git repo (except those excluded) + +# sk on all the files in current git repo skgit() { - local f toplevel orig_dir tmp skip e - local -a ls_files excludes + local f toplevel orig_dir tmp + local -a ls_files sk_files toplevel=$(git rev-parse --show-toplevel) if [[ $PWD != "$toplevel" ]]; then orig_dir=$PWD cd $toplevel fi - excludes=( - 'disabled/*' - # included from another file and checked there - beet-data - brc - brc2 - ) - tmp=$(git ls-files) + # tracked & untracked files + tmp=$(git ls-files && git ls-files --others --exclude-standard) mapfile -t ls_files <<<"$tmp" for f in "${ls_files[@]}"; do - skip=false - for e in "${excludes[@]}"; do - if [[ $f == $e ]]; then - skip=true - break - fi - done - if $skip; then continue; fi - - if istext "$f" && [[ $(head -n1 "$f" 2>/dev/null) == '#!/bin/bash'* ]]; then - sk $f ||: + if sk-p "$f"; then + sk_files+=("$f") fi done + sk "${sk_files[@]}" if [[ $orig_dir ]]; then cd $orig_dir fi @@ -3126,8 +3163,9 @@ n() { } catnew() { - local dir file + local dir file _ dir="$1" + # shellcheck disable=SC2030 inotifywait -m "$dir" -e create -e moved_to | while read -r _ _ file; do hr cat "$dir/$file" @@ -3381,6 +3419,35 @@ if [[ $- == *i* ]]; then fi + +lp22viewers() { + v=0 + roomv=(0 0) + rooms=(jupiter saturn) + for ip in 209.51.188.25 live.fsf.org; do + out=$(curl -sS --insecure https://$ip/) + for i in 0 1 2; do + room=${rooms[i]} + while read -r n; do + v=$((v+n)) + roomv[$i]=$(( ${roomv[$i]} + n )) + done < <(printf "%s\n" "$out" | grep -Po "$room.*?current[^0-9]*[0-9]*" | grep -o '[0-9]*$' ) + done + done + printf "total: %s " $v + for i in 0 1; do + room=${rooms[i]} + printf "$room: %s " "${roomv[$i]}" + done + echo +} + +arpflush() { + local default_route_dev + default_route_dev=$(ip r show default | sed 's/.*dev \([^ ]*\).*/\1/' | head -n1) + m s ip n flush dev "$default_route_dev" +} + # * stuff that makes sense to be at the end