various improvements
authorIan Kelling <ian@iankelling.org>
Tue, 18 Jun 2024 23:29:51 +0000 (19:29 -0400)
committerIan Kelling <ian@iankelling.org>
Tue, 18 Jun 2024 23:29:51 +0000 (19:29 -0400)
.bashrc
brc
brc2
distro-end
ffs
i3-abrowser
i3-emacs
i3-konsole
i3-sway/common.conf
mail-setup
subdir_files/.local/share/konsole/profileian.profile

diff --git a/.bashrc b/.bashrc
index 814c9af63136b822811da9ba20c1af02beaa1ff4..ac78814f350e48ee565201e335e4af9f19216859 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -55,10 +55,16 @@ HISTIGNORE='pass *:otp *:oathtool *:histrm *'
 umask 022
 
 
-if [[ $EUID == 1000 && $TERM == linux && ! $DISPLAY && $(tty) = /dev/tty1 && -x /usr/bin/startx ]] && \
-     tmp=$(systemctl status |& head) && \
-     grep -qi '^ *state: running' <<<"$tmp"  && grep -qi '^ *failed: 0' <<<"$tmp" && grep -qi '^ *jobs: 0' <<<"$tmp"; then
-  startx
+if [[ $EUID == 1000 && $TERM == linux && ! $DISPLAY && $(tty) = /dev/tty1 && -x /usr/bin/startx ]]; then
+  if tmp=$(systemctl status |& head) && \
+      grep -qi '^ *state: running' <<<"$tmp"  && grep -qi '^ *failed: 0' <<<"$tmp" && grep -qi '^ *jobs: 0' <<<"$tmp"; then
+    startx
+  else
+    echo "systemctl status |& head:"
+    printf "%s\n" "$tmp"
+    echo: systemctl list-jobs:
+    systemctl list-jobs
+  fi
 fi
 
 #### if (in
diff --git a/brc b/brc
index 0745bffee49d2a6f66e484064cee697bb914cff6..d359f6535415300e9fe9746514261b2d95150645 100644 (file)
--- a/brc
+++ b/brc
@@ -354,6 +354,7 @@ mysrc() {
 
 mysrc /a/bin/small-misc-bash/ll-function
 mysrc /a/bin/distro-functions/src/package-manager-abstractions
+mysrc /a/bin/fai/fai/config/distro-install-common/bash-misc-funcs
 
 # things to remember:
 # ALT-C - cd into the selected directory
@@ -2964,33 +2965,6 @@ nonet() {
 m() { printf "%s\n" "$*";  "$@"; }
 m2() { printf "%s\n" "$*" >&2;  "$@"; }
 
-# update file. note: duplicated in mail-setup.
-# updates $ur u result to true or false
-# updates $reload to true if file updated is in /etc/systemd/system
-u() {
-  local tmp tmpdir dest="$1"
-  local base="${dest##*/}"
-  local dir="${dest%/*}"
-  if [[ $dir != "$base" ]]; then
-    # dest has a directory component
-    mkdir -p "$dir"
-  fi
-  # shellcheck disable=SC2034 # see comment at top of function
-  ur=false # u result
-  tmpdir="$(mktemp -d)"
-  cat >$tmpdir/"$base"
-  tmp=$(rsync -ic $tmpdir/"$base" "$dest")
-  if [[ $tmp ]]; then
-    printf "%s\n" "$tmp"
-    # shellcheck disable=SC2034 # see comment at top of function
-    ur=true
-    if [[ $dest == /etc/systemd/system/* ]]; then
-      # shellcheck disable=SC2034 # see comment at top of function
-      reload=true
-    fi
-  fi
-  rm -rf $tmpdir
-}
 
 
 uptime() {
diff --git a/brc2 b/brc2
index f9acadade2fb7414038b7efb6fbc797a539992b9..d6ff1a401367e8412b3cbd8d1bb90975b4f09b18 100644 (file)
--- a/brc2
+++ b/brc2
@@ -2037,12 +2037,12 @@ apache-strip() {
   for f in $(find . -type f -maxdepth 1); do if head -n1 "$f"| grep -E '^#!/bin/bash\b' &>/dev/null; then { head -n 20 $f | tac | sed '/^# limitations under the License.$/,/^# Copyright.*Ian Kelling$/d' | tac; tail -n+21 $f; } |sponge $f; fi ; done
 }
 
-chrome() {
+chro() {
   if type -p chromium &>/dev/null; then
     cmd=chromium
   else
     cd /
-    cmd="schroot -c bullseye chromium"
+    cmd="schroot -c bookworm chromium"
     CHROMIUM_FLAGS='--enable-remote-extensions' $cmd & r
   fi
 }
@@ -3033,40 +3033,59 @@ EOF
   )
 }
 
+# sudo maybe
+#
+# passes on any initial -* args to sudo.
+sudm() {
+  local arg
+  local -a sudo_opts
+  for arg; do
+    if [[ $arg == -* ]]; then
+      sudo_opts+=("$arg")
+      shift
+    else
+      break
+    fi
+  done
+  if [[ $EUID == 0 ]]; then
+    "$@"
+  else
+    sudo "${sudo_opts[@]}" "$@"
+  fi
+}
 
-mns() { # mount namespace
+mns-setup() {
+  local ns
   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
+  sudm mkdir -p /root/mount_namespaces
+  if ! sudm mountpoint /root/mount_namespaces >/dev/null; then
+    m sudm 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
+  m sudm mount --make-private /root/mount_namespaces
+  if ! sudm test -e /root/mount_namespaces/$ns; then
+    m sudm 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
+  if ! sudm mountpoint /root/mount_namespaces/$ns >/dev/null; then
+    m sudm unshare --propagation slave --mount=/root/mount_namespaces/$ns /bin/true
   fi
-  m sudo -E /usr/bin/nsenter --mount=/root/mount_namespaces/$ns "$@"
+
+}
+
+mns() { # mount namespace
+  local ns
+  ns=$1
+  shift
+  mns-setup $ns
+  m sudm -E /usr/bin/nsenter --mount=/root/mount_namespaces/$ns "$@"
 }
 
 mnsd() { # mount namespace + systemd namespace
+  local ns unit
   ns=$1
   unit=$2
   shift 2
 
-  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
+  mns-setup $ns
 
   pid=$(servicepid $unit)
   tmpf=$(mktemp --tmpdir $unit.XXXXXXXXXX)
@@ -4104,6 +4123,25 @@ sdncmdroot() { # systemd namespace root command
 }
 
 
+# systemd network namespace (not mount) cmd
+# usage: UNIT CMD...
+sdnncmd() {
+  local unit pid tmpf
+  if (( $# <= 1 )); then
+    echo $0: error wrong number of args >&2
+    return 1
+  fi
+  unit=$1
+  shift
+  pid=$(servicepid $unit)
+  tmpf=$(mktemp --tmpdir $unit.XXXXXXXXXX)
+  export -p >$tmpf
+  printf "%s " "${@@Q}" >>$tmpf
+  echo >>$tmpf
+  m sudo nsenter -t $pid -n sudo -u $USER -i bash -c ". $tmpf & rm $tmpf"
+}
+
+
 mailnnbash() {
   sdnbash mailnn
 }
index 88ff40ba4070a178b1baadfe904fec965d8bdb66..d8a6cc57d3ea62d071558fe10577d42879cd46eb 100755 (executable)
@@ -1383,7 +1383,11 @@ s DEBIAN_FRONTEND=noninteractive pi wireshark
 # listed in the default config as suggested.
 # /run/usr/1000 i noticed was missing for pulseaudio
 # /run/user/0 just seemed like a not bad idea, given the above
+#
+# /root gives us our bashrc, making various things a lot more
+# convenient
 tu /etc/schroot/desktop/fstab <<'EOF'
+/root          /root           none    rw,bind         0       0
 /p             /p              none    rw,bind         0       0
 /a             /a              none    rw,bind         0       0
 /run           /run            none    rw,bind         0       0
@@ -1420,11 +1424,11 @@ sgo schrootupdate.timer
 
 
 
-# for my roommate
+# for testing firefox specific issues
 case $distro in
-  trisquel)
+  trisquel|ubuntu)
     m mkschroot -s /a/bin/fai/fai/config/files/etc/apt/sources.list.d/bookworm.list/BOOKWORM_FREE \
-      debian bookworm firefox-esr pulseaudio chromium
+      debian bookworm chromium
     ;;
   debian)
     pi chromium
diff --git a/ffs b/ffs
index d63668b6e45b3736e479b37ba1851f32351b9df4..0570787709847c971e649a40b2612f88dca1b926 100755 (executable)
--- a/ffs
+++ b/ffs
@@ -186,11 +186,18 @@ else
   stream_res=$primary_res
 fi
 
-# for 1080p, default 256k is poor quality. 500 is ok. 1500 is a bit
-# better, so go with that.  Also, that is about 2x what is recommended
-# in https://livekit.io/webrtc/bitrate-guide (our framerate is lower).
+stream_x=${stream_res%x*}
+stream_y=${stream_res#*x}
 
-bitrate=$(( ( ${stream_res/x/*} ) / 1380 ))
+# leave out our i3 window borders
+stream_res=$(( stream_x - 4 ))x$(( stream_y - 4))
+
+
+# 1000 is a bit blury, 1500 is pretty clear
+# note https://livekit.io/webrtc/bitrate-guide (our framerate is lower)
+
+# Scale our bitrate to 1500 1080p
+bitrate=$(( ( stream_x * stream_y ) / ( (1920*1080) / 1000 ) ))
 
 # 8 seems fine. be conservative by going a bit higher.
 framerate=10
@@ -306,7 +313,7 @@ if pkill -f ^ffmpeg.\*icecast://source.\*/fsf; then
   sleep 1
 fi
 
-#echo executing: ffmpeg ${opts[@]}
+echo executing: ffmpeg ${opts[@]}
 
 #{ sleep 1; ffp &>/dev/null & }
 
@@ -455,4 +462,9 @@ fi
 # ./configure --enable-libzmq --enable-libpulse --enable-libvorbis --enable-gpl --enable-version3
 #
 
+# note: when playing back, text is going to look aliased unless you
+# watch it in a window that is exactly as bit or bigger than the
+# recording: tabbed i3 window shrinks things. or, use: mpv
+# --video-unscaled
+
 ### end background/development docs ###
index 2afbff3d2cdaafc82d147fe8f5632c8ee6e505fa..a43c21d375052b000d9bd2523c6b7cc75b0ac9d8 100755 (executable)
@@ -44,6 +44,7 @@ fi
 # spawn and mark if we dont have a mark already
 if ! /a/c/i3-focus-maybe abrowser; then
 
+  i3-msg "workspace 2"
   i3-split-maybe
   $b "$@" &
   # on a fast computer, .5 is too fast, 1 is ok. on x200, 1 is too fast, 2 is ok.
index 19fc46aa0c66f655d2d28926337143e277d16233..3337dcbdcc97dc215503443b87980ee3ab24808e 100755 (executable)
--- a/i3-emacs
+++ b/i3-emacs
@@ -27,6 +27,7 @@ if [[ $id ]]; then
   i3-msg "[con_id=\"$id\"] focus"
 else
 
+  i3-msg "workspace 2"
   i3-split-maybe
   emacsclient -c
 fi
index 92afe30ef25f9be91af00f2da8c913c7a98d120a..c18e588ef59db4ae03da343e6abfcc09764ebcfb 100755 (executable)
@@ -27,6 +27,7 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" exit status: $?, PIPESTATUS: ${P
 
 
 if ! /a/c/i3-focus-maybe term; then
+  i3-msg "workspace 2"
   i3-split-maybe
   konsole &
   sleep 1
index 435c5feda8bb0f7721b7ae623d8b3d028ec1ff22..8d0d5d94812ea8508958fe8ef38359fa20216e06 100644 (file)
@@ -194,7 +194,8 @@ bindsym $mod+shift+y $ex "/a/exe/i3-chat"
 # is used in the bar {} block below.
 font pango:monospace 7
 
-hide_edge_borders vertical
+# not helpful when i have split screen from myx
+#hide_edge_borders vertical
 
 #exec --no-startup-id /usr/lib/x86_64-linux-gnu/libexec/kdeconnectd
 
@@ -205,7 +206,7 @@ hide_edge_borders vertical
 #default_border normal 0
 
 # default border is like 2 pixels
-default_border pixel
+default_border pixel 2
 # for debugging
 #default_border normal 10
 
@@ -221,5 +222,5 @@ default_border pixel
 for_window [class="focus" instance="focus"] floating disable
 
 client.focused          #4c7899 #285577 #ffffff #2e9ef4   #ff4400
-client.focused_inactive #333333 #5f676a #ffffff #484e50   #DBEEF4
+client.focused_inactive #333333 #5f676a #ffffff #484e50   #B8C8CD
 client.unfocused        #333333 #222222 #888888 #292d2e   #B8C8CD
index 7ce6a0daeddb32bd3bcd1852227d6164b1058004..cdbf9e8ef4216f71453e4d131ee9c40706b7ec20 100755 (executable)
@@ -361,31 +361,8 @@ reload=false
 if [[ -e /var/local/mail-setup-reload ]]; then
   reload=true
 fi
-# update file.
-# if the file changed, ur=true, else false.
-# note: duplicated in brc
-u() {
-  local tmp tmpdir dest="$1"
-  local base="${dest##*/}"
-  local dir="${dest%/*}"
-  if [[ $dir != "$base" ]]; then
-    # dest has a directory component
-    mkdir -p "$dir"
-  fi
-  ur=false # u result
-  tmpdir=$(mktemp -d)
-  cat >$tmpdir/"$base"
-  tmp=$(rsync -ic $tmpdir/"$base" "$dest")
-  if [[ $tmp ]]; then
-    printf "%s\n" "$tmp"
-    ur=true
-    if [[ $dest == /etc/systemd/system/* ]]; then
-      touch /var/local/mail-setup-reload
-      reload=true
-    fi
-  fi
-  rm -rf $tmpdir
-}
+
+source /a/bin/fai/fai/config/distro-install-common/bash-misc-funcs
 setini() {
   key="$1" value="$2" section="$3"
   file="/etc/radicale/config"
index 40630262d96d25e901b43db5862e6af1196fe77f..55cd61e18db730d5864aca5d15a834b79a7d6b88 100644 (file)
@@ -5,7 +5,7 @@ Font=Noto Mono,12,-1,5,50,0,0,0,0,0
 [General]
 AlternatingBackground=0
 AlternatingBars=0
-ErrorBackground=2
+ErrorBackground=1
 LocalTabTitleFormat=%w
 Name=profileian
 Parent=FALLBACK/