misc fixes and improvements
[distro-setup] / brc
diff --git a/brc b/brc
index 1f3aeeaab6660836781125fad776d9a74e947f9a..0b89b663c9173b0f0aedb0c7cc87420bd247ce89 100644 (file)
--- a/brc
+++ b/brc
@@ -161,20 +161,31 @@ if [[ $- == *i* ]]; then
       TERM=xterm-256color
     fi
 
+    # copying from the alacritty example above,
+    if [[ $TERM == xterm-kitty ]]; then
+      if [[ ! -e /usr/share/terminfo/x/xterm-kitty ]]; then
+        TERM=xterm-256color
+      else
+        if [[ -e /a/opt/kitty/shell-integration/bash/kitty.bash ]]; then
+          KITTY_SHELL_INTEGRATION=t
+          source /a/opt/kitty/shell-integration/bash/kitty.bash
+        fi
+      fi
+    fi
 
     # todo: not sure this works in sakura
     #stty werase undef
     #bind "\C-w": kill-region
     # sakura == xterm-256color
     # konsole == xterm
-    if [[ $TERM == xterm* ]]; then
+    if [[ $TERM != xterm-kitty && $TERM == xterm* ]]; then
       # control + arrow keys. for other terminals, see http://unix.stackexchange.com/questions/10806/how-to-change-previous-next-word-shortcut-in-bash
       bind '"\e[1;5C": shell-forward-word' 2>/dev/null
       bind '"\e[1;5D": shell-backward-word' 2>/dev/null
     else
       # make ctrl-backspace work. for konsole, i fixed it through
       # /home/iank/.local/share/konsole/default.keytab
-      stty werase '^h'
+      stty werase ^h
       bind '"\eOc": shell-forward-word'
       bind '"\eOd": shell-backward-word'
     fi
@@ -216,6 +227,7 @@ if [[ -s $bashrc_dir/path-add-function ]]; then
     if grep -qF /home/iank/.iank/e/e /etc/auto.iank /etc/exports &>/dev/null; then
       export EMACSDIR=/home/iank/.iank/e/e
     fi
+    path-add $bashrc_dir
   fi
 fi
 
@@ -238,14 +250,22 @@ if [[ -s /usr/share/wcd/wcd-include.sh ]]; then
   source /usr/share/wcd/wcd-include.sh
 fi
 
-if [[ -s /a/bin/small-misc-bash/ll-function ]]; then
-  source /a/bin/small-misc-bash/ll-function
-elif [[ -s $bashrc_dir/ll-function ]]; then
-  # shellcheck source=/a/bin/small-misc-bash/ll-function
-  source $bashrc_dir/ll-function
-fi
+
+mysrc() {
+  local path dir file
+  path=$1
+  dir=${path%/*}
+  file=${path##*/}
+  if [[ -s $path ]]; then
+    source $path
+  elif [[ -s $bashrc_dir/$file ]]; then
+    source $bashrc_dir/$file
+  fi
+}
 
 
+mysrc /a/bin/small-misc-bash/ll-function
+mysrc /a/bin/distro-functions/src/package-manager-abstractions
 
 
 # * functions
@@ -693,6 +713,19 @@ faf() { # find all files. use -L to follow symlinks
        -o -name .undo-tree-history -prune \) -type f 2>/dev/null
 }
 
+# todo: id like to do maybe a daily or hourly cronjob to
+# check that my history file size is increasing. Ive had it
+# inexplicably truncated in the past.
+histrm() {
+  history -n
+  history | awk -v IGNORECASE=1 '{ a=$1; sub(/^( *[^ ]+){4} */, "") }; /'"$*"'/'
+  read -p "press anything but contrl-c to delete"
+  for entry in $(history | awk -v IGNORECASE=1 '{ a=$1; sub(/^( *[^ ]+){4} */, "") }; /'"$*"'/ { print a }' | tac); do
+    history -d $entry
+  done
+  history -w
+}
+
 # mail related
 frozen() {
   rm -rf /tmp/frozen
@@ -1638,7 +1671,7 @@ ssk() {
 ccomp ssh sl slr sss ssk
 # plain ssh
 ssh() {
-  if [[ $TERM == alacritty ]]; then
+  if [[ $TERM == alacritty || $TERM == xterm-kitty ]]; then
     TERM=xterm-256color LC_USEBASHRC=t command ssh "$@"
   else
     LC_USEBASHRC=t command ssh "$@"
@@ -1940,6 +1973,9 @@ if [[ $- == *i* ]]; then
     if [[ $EUID != 0 ]] && [[ $DID_SUDO ]]; then
       ps_char="SUDO $ps_char"
     fi
+    if [[ ! $HISTFILE ]]; then
+      ps_char="NOHIST $ps_char"
+    fi
     PS1="${PS1%"${PS1#*[wW]}"} \[$ps_color\]$ps_char\[$term_nocolor\] "
 
     # set titlebar. instead, using more advanced