From 4fb8226e986ca18a398eb23299354169e2ebd4f7 Mon Sep 17 00:00:00 2001 From: tosu Date: Fri, 21 Jun 2024 00:31:28 +0200 Subject: [PATCH] Update. Rename simple_timer --- .bash_xinitrc | 124 +++++++++++++++++++++---------------- .bashrc | 29 ++++++--- .local/bin/simple_timer.sh | 29 --------- 3 files changed, 90 insertions(+), 92 deletions(-) delete mode 100755 .local/bin/simple_timer.sh diff --git a/.bash_xinitrc b/.bash_xinitrc index ec0f1b8..0ae4f76 100644 --- a/.bash_xinitrc +++ b/.bash_xinitrc @@ -24,7 +24,7 @@ setxkbmap -layout us # read iid; xinput list-props $iid | # grep "Typing Enabled (" | # awk '{gsub(/\(|\)|:/,""); print $6}' | -# xargs -I 'pid' xinput set-prop $iid 'pid' 0; +# xargs -I pid xinput set-prop "$iid" pid 0; # } updatebar @@ -32,86 +32,104 @@ updatebar - ######################## More or less shell specific ##################### pathappend () { - # just works + # appending a path to the PATH variable + # if it's already in the PATH, move it to the end + # POSIX compliant version + + test -n "$1" || + { echo "Usage: pathappend PATH_TO_ADD"; return 1; } + + test "$(printf %s $- | sed s/r//)" = $- || + { echo 'Restricted shell, cannot change PATH'; return 2; } + + test -d "$1" || + { echo "PATH_TO_ADD not a directory"; return 3; } + + test "$(printf %s "$1" | sed s/://)" = "$1" || + { echo 'Cannot add path with colon'; return 4; } + + norm_path=$(printf %s "$PATH" | head -n 1 | sed 's|/\+|/|g; s|/$//') # ensure one line, deduplicate slashes, trim trailing + norm_path_to_add=$(printf %s "$1" | head -n 1 | sed 's|/\+|/|g; s|/$//') # ensure one line, deduplicate slashes, trim trailing + norm_path=$(printf %s "$norm_path" | sed "s/$(printf %s "$norm_path_to_add" | sed -f /proc/self/fd/3 3<<- 'EOF' + # escape BRE meta-characters + s/\\/\\./g # backslash first + s/\./\\./g + s/\^/\\^/g + s/\$/\\$/g + s/\*/\\*/g + s/\[/\\[/g + s|/|\\/|g # escape delimiter for outer sed + EOF + )//g") # remove all instances of PATH_TO_ADD from PATH + norm_path=$(printf %s "$norm_path" | sed 's/:\+/:/g; s/^://; s/:$//') # deduplicate colons, trim leading and trailing + PATH=$norm_path:$norm_path_to_add # append with colon +} && export -f pathappend + +ld_lib_path_append () { + # just works, posix compliant NORM_PATH=":${PATH}:" - NORM_PATH="$(printf '%s' "${NORM_PATH}" | sed 's/::/:/g')" + NORM_PATH="$(printf '%s' "${NORM_PATH}" | sed 's/:+/:/g')" # TODO: Handle Slashes NORM_PATH_TO_ADD=":${1}:" NORM_PATH_TO_ADD="$(printf '%s' "${NORM_PATH_TO_ADD}" | sed 's/::/:/g' | sed 's/::/:/g')" if [ "$(printf '%s' "${-}" | sed 's/r//')" = "${-}" ] && [ -d "${1}" ] && [ "$(printf '%s' "${NORM_PATH}" | sed "s/$(printf '%s' "${NORM_PATH_TO_ADD}" | awk '{gsub("\x2f", "\x5c\x2f"); print $0}')//")" = "${NORM_PATH}" ]; then PATH="${PATH:+"${PATH%:}"}${NORM_PATH_TO_ADD%:}" fi -} -export pathappend +} && export -f ld_lib_path_append -ld_lib_path_add () { - # just works - NORM_PATH=":${PATH}:" - NORM_PATH="$(printf '%s' "${NORM_PATH}" | sed 's/::/:/g')" - # TODO: Handle Slashes - NORM_PATH_TO_ADD=":${1}:" - NORM_PATH_TO_ADD="$(printf '%s' "${NORM_PATH_TO_ADD}" | sed 's/::/:/g' | sed 's/::/:/g')" - if [ "$(printf '%s' "${-}" | sed 's/r//')" = "${-}" ] && [ -d "${1}" ] && [ "$(printf '%s' "${NORM_PATH}" | sed "s/$(printf '%s' "${NORM_PATH_TO_ADD}" | awk '{gsub("\x2f", "\x5c\x2f"); print $0}')//")" = "${NORM_PATH}" ]; then - PATH="${PATH:+"${PATH%:}"}${NORM_PATH_TO_ADD%:}" - fi -} -export ld_lib_path_add - -eval "$(pyenv init --path)" # shellcheck disable=SC2155 -export XDG_RUNTIME_DIR=/run/user/"$(id -u)" -export SSH_AUTH_SOCK="${XDG_RUNTIME_DIR}"/ssh-agent.socket -# export SUDO_ASKPASS='/usr/bin/sudo-askpass' -# export SSH_ASKPASS='/usr/bin/sudo-askpass' -# export SSH_ASKPASS_REQUIRE='prefer' -export GIT_CONFIG_GLOBAL="${HOME}"/.gitconfig +export XDG_RUNTIME_DIR="/run/user/$(id -u)" +export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" +# export SUDO_ASKPASS="/usr/bin/sudo-askpass" +# export SSH_ASKPASS="/usr/bin/sudo-askpass" +# export SSH_ASKPASS_REQUIRE="prefer" +export GIT_CONFIG_GLOBAL="$HOME/.gitconfig" # shellcheck disable=SC2155 export GPG_TTY="$(tty)" -export _JAVA_AWT_WM_NONREPARENTING='1' +export _JAVA_AWT_WM_NONREPARENTING="1" -export USER42='tischmid' -export EMAIL42='timo42@proton.me' -export MAIL='timo42@proton.me' +export USER42="tischmid" +export EMAIL42="timo42@proton.me" +export MAIL="timo42@proton.me" -# export LANG='en_US.UTF-8' -# export LC_ALL='en_US.UTF-8' +# export LANG="en_US.UTF-8" +# export LC_ALL="en_US.UTF-8" -export GOPATH="${HOME}"/go +export GOPATH="$HOME/go" -ld_lib_path_add "${LD_LIBRARY_PATH}:${HOME}/.local/lib" +ld_lib_path_append "${LD_LIBRARY_PATH}:${HOME}/.local/lib" export LD_LIBRARY_PATH -pathappend '/bin' -pathappend '/sbin' -pathappend '/usr/bin' -pathappend '/usr/sbin' -pathappend '/usr/local/bin' -pathappend '/usr/lcoal/sbin' -pathappend '/usr/local/games' -pathappend '/usr/games' -pathappend '/snap/bin' -pathappend "${HOME}"/bin -pathappend "${HOME}"/.local/bin -pathappend "${HOME}"/.local/include -pathappend "${HOME}"/.brew/bin -pathappend "${GOPATH}"/bin +pathappend "/bin" +pathappend "/sbin" +pathappend "/usr/bin" +pathappend "/usr/sbin" +pathappend "/usr/local/bin" +pathappend "/usr/lcoal/sbin" +pathappend "/usr/local/games" +pathappend "/usr/games" +pathappend "/snap/bin" +pathappend "${HOME}/bin" +pathappend "${HOME}/.local/bin" +pathappend "${HOME}/.local/include" +pathappend "${HOME}/.brew/bin" +pathappend "${GOPATH}/bin" export PATH # add cargo bin to path -if [ -f "${HOME}"/.cargo/env ] || [ -r "${HOME}"/.cargo/env ]; then +if [ -f "$HOME/.cargo/env" ] || [ -r "$HOME/.cargo/env" ]; then # shellcheck disable=SC1091 - . "${HOME}"/.cargo/env + . "$HOME/.cargo/env" fi -export NVM_DIR="${HOME}"/.nvm +export NVM_DIR="$HOME/.nvm" # shellcheck disable=SC1091 -[ -s "${NVM_DIR}"/nvm.sh ] && . "${NVM_DIR}"/nvm.sh +[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # shellcheck disable=SC1091 -[ -s "${NVM_DIR}"/bash_completion ] && . "${NVM_DIR}"/bash_completion +[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" ######################## More or less shell specific END ##################### picom & diff --git a/.bashrc b/.bashrc index 7a0fb3b..b7a5171 100644 --- a/.bashrc +++ b/.bashrc @@ -100,11 +100,12 @@ alias colors='bash -c "$(curl --silent --location \ alias sl='sl -GwFdcal' alias cmatrix='cmatrix -u3 -Cred' alias r='ranger' -alias q='docker run --rm -it ghcr.io/natesales/q' +alias q-dig='docker run --rm -it ghcr.io/natesales/q' alias make='compiledb make' alias dotconf='git --git-dir="${HOME-}"/.dotfiles/ --work-tree="${HOME-}"' #################### CDPATHS ############################# +CDPATH="." CDPATH="${CDPATH}:${HOME}" CDPATH="${CDPATH}:${HOME}/projects" CDPATH="${CDPATH}:${HOME}/projects/aoc" @@ -194,16 +195,24 @@ function paruuu () { } function skill () { - while [ -n "${1:-}" ] ; do - # shellcheck disable=SC2046,SC2009 - 2>/dev/null kill -9 \ - -- $(ps auxww | grep -v grep | grep "${1-}" | awk '{print $2}') \ - && return 0 - ps auxww | grep -v grep | grep -q "${1-}" || { echo "Process not found"; return 2; } - 2>/dev/null sudo kill -9 \ - -- $(ps auxww | grep "${1-}" | grep -v grep | awk '{print $2}') || - { echo "Couldn't kill process"; return 3; } + exit_status=0 + while [ -n "${1-}" ] ; do + # pids="$(ps -eo pid,cmd)" + # pids="$(echo "$pids" | cut -d " " -f3- | grep -n -- "$1" | cut -d ":" -f1 | awk 'BEGIN{printf "NR=="}ORS="||NR=="' | head -n 1 | pids="$pids" xargs --no-run-if-empty -I {} bash -c 'echo "$pids" | cut -d " " -f2 | awk "${1}0"' bash {})" + pgrep -f -- "$1" | xargs -r kill -9 && return 0 || { + printf '\033[31m%s\033[m\n' "These processes couldn't be killed without sudo:" + pgrep -f "$1" | xargs ps -o user,ruser,pid,c,stime,tty,time,cmd + } + pgrep -f -- "$1" | sudo xargs -r kill -9 || { + if [ $? = 1 ]; then + printf '\033[41;30m%s\033[m\n' "These processes couldn't be killed with root:" + pgrep -f "$1" | xargs ps -o user,ruser,pid,c,stime,tty,time,cmd + fi + exit_status=1 + } + shift done + return $exit_status } function wpa_restart () { diff --git a/.local/bin/simple_timer.sh b/.local/bin/simple_timer.sh deleted file mode 100755 index 227b49c..0000000 --- a/.local/bin/simple_timer.sh +++ /dev/null @@ -1,29 +0,0 @@ -#! /bin/sh - - -min="${1-}" -sec="${2-}" - -if [ -z "${min}" ] || [ -z "${sec}" ] || [ -n "${3-}" ] ; then - printf '%s\n' "Usage: ${0-} MIN SEC" - exit 1 -fi - -print_as_minutes () { - _total_sec="${1}" - min="$((_total_sec / 60))" - sec="$((_total_sec % 60))" - clear -x - n_lines="$(($(tput lines) / 2 - 4))" - while [ "${n_lines}" -ge "0" ] ; do - printf '\n' - n_lines="$((n_lines - 1))" - done - figlet -w "$(tput cols)" -c "${min} : ${sec}" -} - -total_sec="$((min * 60 + sec))" -while [ "${total_sec}" -ge "0" ] ; do - print_as_minutes "${total_sec}" - sleep 1s - total_sec="$((total_sec - 1))" -done