X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=brc2;h=7d94df1fc12e1011bc08fe6adaf3078fbad89a78;hb=774fe9ab8c8d5c71614feda5a283b4a91fb3f145;hp=491dcada8e562e33990a96b50427ab9cf1af16a2;hpb=01ccff895787ca94ad37d11cb93f0440a29edd7c;p=distro-setup diff --git a/brc2 b/brc2 index 491dcad..7d94df1 100644 --- a/brc2 +++ b/brc2 @@ -6,7 +6,9 @@ # * settings -HISTFILE=$HOME/.bh +if [[ $HISTFILE ]]; then + HISTFILE=$HOME/.bh +fi source /a/bin/distro-setup/path-add-function path-add /a/exe @@ -1074,9 +1076,11 @@ jrf() { journalctl -n 200 -f "$@" ; } ccomp journalctl jtail jr jrf -kff() { # keyboardio firmware flash - pushd /a/bin/distro-setup/Arduino/Model01-Firmware - yes $'\n' | make flash +kff() { # keyboardio firmware flash. you must hold down the tilde key + pushd /a/opt/Model01-Firmware + # if we didn't want this yes hack, then remove "shell read" from + # /a/opt/Kaleidoscope/etc/makefiles/sketch.mk + yes $'\n' | VERBOSE=1 make flash popd } @@ -1134,11 +1138,37 @@ EOF } +mns() { # mount namespace + ns=$1 + shift + s mkdir -p /root/mount_namespaces + if ! sudo mountpoint /root/mount_namespaces >/dev/null; then + m sudo mount --bind /root/mount_namespaces /root/mount_namespaces + fi + m sudo mount --make-private /root/mount_namespaces + if [[ ! -e /root/mount_namespaces/$ns ]]; then + m sudo touch /root/mount_namespaces/$ns + fi + if ! sudo mountpoint /root/mount_namespaces/$ns >/dev/null; then + m sudo unshare --propagation slave --mount=/root/mount_namespaces/$ns /bin/true + fi + m sudo -E /usr/bin/nsenter --mount=/root/mount_namespaces/$ns "$@" +} + +mnsnonet() { + ns=$1 + if ! s ip netns list | grep -Fx nonet &>/dev/null; then + s ip netns add nonet + fi + mns $ns --net=/var/run/netns/nonet sudo -E -u iank /bin/bash +} + + lom() { local l base if [[ $1 == /* ]]; then base=${1##*/} - if mountpoint -q /mnt/$base; then + if mns $base mountpoint -q /mnt/$base; then return 0 fi l=$(losetup -j $1 | sed -rn 's/^([^ ]+): .*/\1/p' | head -n1 ||:) @@ -1153,12 +1183,12 @@ lom() { fi fi m sudo mkdir -p /mnt/$base - m sudo mount /dev/mapper/$base /mnt/$base - m sudo chown $USER:$USER /mnt/$base + m mns $base mount /dev/mapper/$base /mnt/$base + m mns $base chown $USER:$USER /mnt/$base else base=$1 - if mountpoint /mnt/$base &>/dev/null; then - m sudo umount /mnt/$base + if mns $base mountpoint /mnt/$base &>/dev/null; then + m mns $base umount /mnt/$base fi if sudo cryptsetup status /dev/mapper/$base &>/dev/null; then if ! m sudo cryptsetup luksClose /dev/mapper/$base; then @@ -1249,6 +1279,54 @@ mo() { xset dpms force off; } # monitor off mpvd() { mpv --profile=d "$@"; } +# mpv all media files in . or $1 +mpvm() { + local -a extensions arg + # get page source of https://en.wikipedia.org/w/index.php?title=Video_file_format&action=edit + # into /a/x.log, then + # grep '^| *\.' /a/x.log | sed 's/| *//;s/,//g' + extensions=( + .webm + .mkv + .flv + .flv + .vob + .ogv .ogg + .drc + .gif + .gifv + .mng + .avi + .MTS .M2TS .TS + .mov .qt + .wmv + .yuv + .rm + .rmvb + .viv + .asf + .amv + .mp4 .m4p .m4v + .mpg .mp2 .mpeg .mpe .mpv + .mpg .mpeg .m2v + .m4v + .svi + .3gp + .3g2 + .mxf + .roq + .nsv + ) + arg=("(" -iname "*${extensions[0]}") + for (( i=1 ; i < ${#extensions[@]}; i++ )); do + arg+=(-o -iname "*${extensions[i]}") + done + arg+=(")") + dir=${1:-.} + # debug: + #find $dir "${arg[@]}" -size +1M + find $dir "${arg[@]}" -size +1M -exec mpv --profile=d '{}' + +} mpvs() { mpv --profile=s "$@"; } @@ -1754,14 +1832,9 @@ mailnncheck() { vpncmd() { - m sudo -E env "PATH=$PATH" nsenter -t $(pgrep -f "/usr/sbin/openvpn .* --config /etc/openvpn/.*client.conf") -n -m "$@" -} -vpnf() { - sudo -v - vpncmd sudo -E -u iank env "PATH=$PATH" abrowser -no-remote -P vpn & - sleep 5 - r + m sudo -E env "PATH=$PATH" nsenter -t $(pgrep -f "/usr/sbin/openvpn .* --config /etc/openvpn/.*client.conf") -n "$@" } + vpn2f() { sudo -v vpncmd sudo -u iank env "PATH=$PATH" abrowser -no-remote -P vpn2 & r @@ -2018,7 +2091,9 @@ path-add /usr/local/go/bin # I have both because I was trying to solve an issue that # turned out to be unrelated. # ARDUINO_PATH=/a/opt/Arduino/build/linux/work -export ARDUINO_PATH=/a/opt/arduino-1.8.15 + +## i should have documented this... +# based on https://github.com/keyboardio/Kaleidoscope export KALEIDOSCOPE_DIR=/a/opt/Kaleidoscope # They want to be added to the start, but i think