diff --git a/.config/bash/.bashrc b/.config/bash/.bashrc index c9231e9..896f727 100644 --- a/.config/bash/.bashrc +++ b/.config/bash/.bashrc @@ -29,6 +29,7 @@ export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quo bind '"\C-o":"lfcd\n"' bind '"\C-t":"tms\n"' bind '"\C-n":"zk edit --interactive --sort modified-\n"' +bind '"\C-f":"$(dirname "$(fzf)")\n"' # use lf to switch directories and bind it to ctrl-o function lfcd() { @@ -37,24 +38,10 @@ function lfcd() { lf -last-dir-path="$tmp" "$@" if [ -f "$tmp" ]; then dir="$(cat "$tmp")" - [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" + [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" || return fi } -function pomo() { - arg1=$1 - shift - args="$*" - - min=${arg1:?Example: pomo 25 Take a break} - sec=$((min * 60)) - msg="${args:?Example: pomo 25 Take a break}" - - while true; do - date '+%H:%M' && sleep "${sec:?}" && notify-send -u critical -t 0 -a pomo "${msg:?}" - done -} - # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. @@ -64,7 +51,7 @@ if [ -f ~/.config/shell/aliasrc ]; then . ~/.config/shell/aliasrc fi -# enable programmable completion features (you don't need to enable +# Enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if ! shopt -oq posix; then @@ -77,21 +64,20 @@ fi set_exit_code() { exit_code=$? - [[ $exit_code -eq 0 ]] || printf "$(tput setaf 1) $exit_code $(tput sgr0)" + [[ $exit_code -eq 0 ]] || printf "%s %s %s" "$(tput setaf 1)" "$exit_code" "$(tput sgr0)" } set_prompt() { PS1_BAT="$(bash-status-bat)" PS1_GIT="$(bash-status-git)" - dir_perm=$(ls -ld | awk '{ print $3 }') - if [[ "$dir_perm" == "$USER" ]]; then + if [[ -n $(find . -user "$(id -u)" -print -prune -o -prune) ]]; then dir="\[\033[00;36m\]\w" else dir="\[\033[00;31m\]\w" fi - PS1L="\[\033[00;32m\]\u\[\033[00;34m\]@\[\033[01;32m\]\h \[\033[00m\]\$PS1_BAT $dir\[\033[00m\] $PS1_GIT" + PS1L="\[\033[00;32m\]\u\[\033[00;34m\]@\[\033[01;32m\]\h \[\033[00m\]$PS1_BAT $dir\[\033[00m\] $PS1_GIT" PS1R=$(date +"%R:%S") PS1=$(printf "%*s\r%s\n\[\033[00m\]\$(set_exit_code)-[ " "$(tput cols)" "$PS1R" "$PS1L") } diff --git a/.config/zsh/themes/inkletblotsh.zsh b/.config/zsh/themes/inkletblotsh.zsh index 07c0a17..7b4eb29 100644 --- a/.config/zsh/themes/inkletblotsh.zsh +++ b/.config/zsh/themes/inkletblotsh.zsh @@ -4,50 +4,50 @@ setopt prompt_subst () { -local PR_USER PR_USER_OP PR_PROMPT PR_HOST + local PR_USER PR_USER_OP PR_PROMPT PR_HOST -# Check the UID -if [[ $UID -ne 0 ]]; then # normal user - PR_USER='%F{green}%n%f' - PR_USER_OP='%F{green}%[ %f' - PR_PROMPT='%f[ %f' -else # root - PR_USER='%F{red}%n%f' - PR_USER_OP='%F{red}%[# %f' - PR_PROMPT='%F{red}[# %f' -fi + # Check the UID + if [[ $UID -ne 0 ]]; then # normal user + PR_USER='%F{green}%n%f' + PR_USER_OP='%F{green}%[ %f' + PR_PROMPT='%f[ %f' + else # root + PR_USER='%F{red}%n%f' + PR_USER_OP='%F{red}%[# %f' + PR_PROMPT='%F{red}[# %f' + fi -# Check if we are on SSH or not -if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then - PR_HOST='%B%F{red}%M%f%b' # SSH -else - PR_HOST='%B%F{green}%M%f%b' # no SSH -fi + # Check if we are on SSH or not + if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then + PR_HOST='%B%F{red}%M%f%b' # SSH + else + PR_HOST='%B%F{green}%M%f%b' # no SSH + fi -local return_code="%(?..%F{red}%?↵%f)" + local return_code="%(?..%F{red}%?↵%f)" -local user_host="${PR_USER}%F{blue}@${PR_HOST}" -local current_dir="%F{cyan}%~%f" -local git_branch='$(bash-status-git)' -local bat='$(bash-status-bat | sed "s/%/%%/")' + local user_host="${PR_USER}%F{blue}@${PR_HOST}" + local current_dir="%F{cyan}%~%f" + local git_branch='$(bash-status-git)' + local bat='$(bash-status-bat | sed "s/%/%%/")' -PROMPT="${user_host} ${bat} ${current_dir} ${git_branch} --$PR_PROMPT" -RPROMPT="]${return_code} %*" + PROMPT="${user_host} ${bat} ${current_dir} ${git_branch} + -$PR_PROMPT" + RPROMPT="]${return_code} %*" -# all git prompt overrides for easy modification -ZSH_THEME_GIT_PROMPT_PREFIX="(" -ZSH_THEME_GIT_PROMPT_SUFFIX="%b)" -ZSH_THEME_GIT_PROMPT_SEPARATOR="|" -ZSH_THEME_GIT_PROMPT_BRANCH="%{$fg_bold[magenta]%}" -ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[red]%}%{+%G%}" -ZSH_THEME_GIT_PROMPT_CONFLICTS="%{$fg[red]%}%{x%G%}" -ZSH_THEME_GIT_PROMPT_CHANGED="%{$fg[blue]%}%{*%G%}" -ZSH_THEME_GIT_PROMPT_BEHIND="%{↓%G%}" -ZSH_THEME_GIT_PROMPT_AHEAD="%{↑%G%}" -ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%}%{…%G%}" -ZSH_THEME_GIT_PROMPT_STASHED="%{$fg_bold[blue]%}%{s%G%}" -ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}%{~%G%}" + # all git prompt overrides for easy modification + ZSH_THEME_GIT_PROMPT_PREFIX="(" + ZSH_THEME_GIT_PROMPT_SUFFIX="%b)" + ZSH_THEME_GIT_PROMPT_SEPARATOR="|" + ZSH_THEME_GIT_PROMPT_BRANCH="%{$fg_bold[magenta]%}" + ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[red]%}%{+%G%}" + ZSH_THEME_GIT_PROMPT_CONFLICTS="%{$fg[red]%}%{x%G%}" + ZSH_THEME_GIT_PROMPT_CHANGED="%{$fg[blue]%}%{*%G%}" + ZSH_THEME_GIT_PROMPT_BEHIND="%{↓%G%}" + ZSH_THEME_GIT_PROMPT_AHEAD="%{↑%G%}" + ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%}%{…%G%}" + ZSH_THEME_GIT_PROMPT_STASHED="%{$fg_bold[blue]%}%{s%G%}" + ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}%{~%G%}" }