X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=brc;h=c47fca957f6c178a767369f9ca3e8caa9595155d;hb=671538dd70b9aa0f1b38192b51dd0716e29eb6f0;hp=1f3aeeaab6660836781125fad776d9a74e947f9a;hpb=7d9ec600a5ed9f88b85e02a27ee017b85721a6ac;p=distro-setup diff --git a/brc b/brc index 1f3aeea..c47fca9 100644 --- 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 @@ -574,8 +594,12 @@ ev() { echo no args fi for arg; do - printf "%qEOL\n" "${!arg}" - printf "%s" "${!arg}" |& hexdump -C + if [[ -v $arg ]]; then + printf "%qEOL\n" "${!arg}" + printf "%s" "${!arg}" |& hexdump -C + else + echo arg $arg is unset + fi done } @@ -693,6 +717,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 @@ -1382,16 +1419,25 @@ sgu() { sk() { - # 2029: "unescaped, this expands on the client side." yes, I know how ssh works - # 2164: "Use 'cd ... || exit' or 'cd ... || return' in case cd fails." i have automatic error handling - # 2086: unquoted $var + + + # note, if you do something like this + # x=( prefix* ) + # then disable the warning with: + # shellcheck disable=SC2206 # globbing is intended + + # 2029: "unescaped, this expands on the client side.": yes, I know how ssh works + # 2164: "Use 'cd ... || exit' or 'cd ... || return' in case cd fails.": i have automatic error handling + # 2086: unquoted $var: Quoting every var I set is way too much quotes. + # 2068: Double quote array expansions to avoid re-splitting elements: same as above. + # 2033: command arg is a function name: too many false positives. + + + # these ones I had disabled, but without a good written explanation, so enabling them temporarily # 2046: unquoted $(cmd) - # 2068: Double quote array expansions to avoid re-splitting elements. # 2119: Functions with optional args get bad warnings when none are passed. - # 2033: too many false positives for thing that will never work, passing shell function to find. - # i had -x as an arg, but debian testing(stretch) doesn\'t support it - shellcheck -x -e 2029,2164,2086,2046,2068,2119,2033 "$@" || return $? - # had this before. not sure what it is 2119 + + shellcheck -W 999 -x -e 2029,2164,2086,2068,2033 "$@" || return $? } @@ -1638,7 +1684,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 +1986,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