first commit
This commit is contained in:
21
bash/.bashrc
Normal file
21
bash/.bashrc
Normal file
@@ -0,0 +1,21 @@
|
||||
# Put all the commands here that should run regardless of whether
|
||||
# this is an interactive or non-interactive shell.
|
||||
|
||||
# Example command:
|
||||
umask 0027
|
||||
|
||||
# test if the prompt var is not set and also to prevent failures
|
||||
# when `$PS1` is unset and `set -u` is used
|
||||
if [ -z "${PS1:-}" ]; then
|
||||
# prompt var is not set, so this is *not* an interactive shell
|
||||
return
|
||||
fi
|
||||
|
||||
# If we reach this line of code, then the prompt var is set, so
|
||||
# this is an interactive shell.
|
||||
# Put all the commands here that should run only if this is an
|
||||
# interactive shell.
|
||||
|
||||
# Example command:
|
||||
source ~/dotfiles/sh_personal #added by 6500gitsetup
|
||||
alias clear="TERM=xterm /usr/bin/clear"
|
||||
50
bash/bash_personal
Normal file
50
bash/bash_personal
Normal file
@@ -0,0 +1,50 @@
|
||||
#---------------------------------- Alias -----------------------------------------
|
||||
alias tmux='tmux -u'
|
||||
alias cht="cht.sh"
|
||||
# alias ls="exa --group-directories-first --icons -T -L1 -l"
|
||||
# alias lt="exa --group-directories-first --icons -T -L1"
|
||||
# alias ll="ls -lagh"
|
||||
alias ls="lsd"
|
||||
alias bless="bat --paging=auto"
|
||||
alias cat="bat -pf"
|
||||
|
||||
#--------------------------------- Exports ---------------------------------------
|
||||
export EDITOR='nvim'
|
||||
# export MANPAGER="sh -c 'col -bx | bat -l man -pfn --paging always'"
|
||||
export MANPAGER='nvim +Man!'
|
||||
export MANROFFOPT="-c"
|
||||
|
||||
#--------------------------------- Set bash prompt -------------------------------
|
||||
# export PS1="\e[1;32m\h\e[0m:\e[1;34m\w\e[0m\n$ "
|
||||
#
|
||||
#
|
||||
#--- DevOps Shell
|
||||
# Key bindings
|
||||
# bind '"\C-f":"tmux-sessionizer\n"'
|
||||
|
||||
eval "$(starship init bash)"
|
||||
|
||||
if [[ $- =~ i ]] && [[ -z "$TMUX" ]] && [[ -n "$SSH_TTY" ]]; then
|
||||
tmux attach-session -t 0|| tmux new-session -s 0
|
||||
fi
|
||||
#
|
||||
# [ -f ~/.fzf.bash ] && source ~/.fzf.bash
|
||||
# Set up fzf key bindings and fuzzy completion
|
||||
eval "$(fzf --bash)"
|
||||
|
||||
# alias f="fzf --preview 'fzf-preview.sh {}'"
|
||||
# alias t="fzf-tmux"
|
||||
|
||||
# alias tfn="~/scripts/nvim-fzf.sh"
|
||||
# export FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS'
|
||||
# --multi
|
||||
# --color=fg:-1,fg+:#d0d0d0,bg:-1,bg+:#262626
|
||||
# --color=hl:#5f87af,hl+:#5fd7ff,info:#afaf87,marker:#87ff00
|
||||
# --color=prompt:#d7005f,spinner:#af5fff,pointer:#af5fff,header:#87afaf
|
||||
# --color=border:#262626,label:#aeaeae,query:#d9d9d9
|
||||
# --border="rounded"
|
||||
# --border-label="" --preview-window="border-rounded" --prompt="> "
|
||||
# --info="inline" --marker=">" --pointer="◆" --separator="─" --scrollbar="│"'
|
||||
|
||||
# colorscript -r
|
||||
# neofetch
|
||||
82
bash/starship.toml
Executable file
82
bash/starship.toml
Executable file
@@ -0,0 +1,82 @@
|
||||
format = """
|
||||
$conda$username$hostname$directory$git_branch$git_state$git_status$python$cmd_duration$line_break\
|
||||
$character"""
|
||||
|
||||
# Wait 10 milliseconds for starship to check files under the current directory.
|
||||
scan_timeout = 10
|
||||
|
||||
# Disable the blank line at the start of the prompt
|
||||
add_newline = true
|
||||
|
||||
# # Define custom colors
|
||||
# [palettes.foo]
|
||||
# # Overwrite existing color
|
||||
# blue = '21'
|
||||
# # Define new color
|
||||
# mustard = '#af8700'
|
||||
|
||||
[directory]
|
||||
style = "purple"
|
||||
truncation_length = 3
|
||||
format = ': [$path]($style)[$read_only]($read_only_style) '
|
||||
truncation_symbol = ".../"
|
||||
truncate_to_repo =true
|
||||
|
||||
[character]
|
||||
success_symbol = '[❯](bold green)'
|
||||
# success_symbol = '[➜](bold green)'
|
||||
error_symbol = '[✗](bold purple) '
|
||||
vimcmd_symbol = "[❮](green)"
|
||||
|
||||
[git_branch]
|
||||
symbol = '🌱 '
|
||||
# truncation_length = 4
|
||||
truncation_symbol = ''
|
||||
format = '[$symbol$branch]($style) '
|
||||
|
||||
[git_status]
|
||||
conflicted = '🏳'
|
||||
ahead = '🏎💨'
|
||||
behind = '😰'
|
||||
diverged = '😵'
|
||||
up_to_date = '✓'
|
||||
untracked = '🤷'
|
||||
stashed = '📦'
|
||||
modified = '📝'
|
||||
staged = '[++\($count\)](green)'
|
||||
renamed = '👅'
|
||||
deleted = '🗑'
|
||||
|
||||
[git_state]
|
||||
format = '[\($state( $progress_current of $progress_total)\)]($style) '
|
||||
cherry_pick = '[🍒 PICKING](bold red)'
|
||||
|
||||
[cmd_duration]
|
||||
min_time = 100
|
||||
format = 'underwent [$duration](bold yellow)'
|
||||
|
||||
[os]
|
||||
disabled = false
|
||||
[username]
|
||||
style_user = 'white bold'
|
||||
style_root = 'black bold'
|
||||
format = '[$user]($style) '
|
||||
disabled = false
|
||||
show_always = true
|
||||
|
||||
[hostname]
|
||||
ssh_only = false
|
||||
format = '@(bold blue) [$hostname](bold red) '
|
||||
trim_at = '.ciena.com'
|
||||
disabled = false
|
||||
|
||||
[status]
|
||||
style = 'bg:blue'
|
||||
symbol = '🔴 '
|
||||
success_symbol = '🟢 SUCCESS'
|
||||
format = '[\[$symbol$common_meaning$signal_name$maybe_int\]]($style) '
|
||||
map_symbol = true
|
||||
disabled = false
|
||||
|
||||
[conda]
|
||||
format = "[$symbol$environment]($style) "
|
||||
127
bash/zoxide
Normal file
127
bash/zoxide
Normal file
@@ -0,0 +1,127 @@
|
||||
# =============================================================================
|
||||
#
|
||||
# Utility functions for zoxide.
|
||||
#
|
||||
|
||||
# pwd based on the value of _ZO_RESOLVE_SYMLINKS.
|
||||
function __zoxide_pwd() {
|
||||
\builtin pwd -L
|
||||
}
|
||||
|
||||
# cd + custom logic based on the value of _ZO_ECHO.
|
||||
function __zoxide_cd() {
|
||||
# shellcheck disable=SC2164
|
||||
\builtin cd -- "$@"
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
#
|
||||
# Hook configuration for zoxide.
|
||||
#
|
||||
|
||||
# Hook to add new entries to the database.
|
||||
__zoxide_oldpwd="$(__zoxide_pwd)"
|
||||
|
||||
function __zoxide_hook() {
|
||||
\builtin local -r retval="$?"
|
||||
\builtin local pwd_tmp
|
||||
pwd_tmp="$(__zoxide_pwd)"
|
||||
if [[ ${__zoxide_oldpwd} != "${pwd_tmp}" ]]; then
|
||||
__zoxide_oldpwd="${pwd_tmp}"
|
||||
\command zoxide add -- "${__zoxide_oldpwd}"
|
||||
fi
|
||||
return "${retval}"
|
||||
}
|
||||
|
||||
# Initialize hook.
|
||||
if [[ ${PROMPT_COMMAND:=} != *'__zoxide_hook'* ]]; then
|
||||
PROMPT_COMMAND="__zoxide_hook;${PROMPT_COMMAND#;}"
|
||||
fi
|
||||
|
||||
# =============================================================================
|
||||
#
|
||||
# When using zoxide with --no-cmd, alias these internal functions as desired.
|
||||
#
|
||||
|
||||
__zoxide_z_prefix='z#'
|
||||
|
||||
# Jump to a directory using only keywords.
|
||||
function __zoxide_z() {
|
||||
# shellcheck disable=SC2199
|
||||
if [[ $# -eq 0 ]]; then
|
||||
__zoxide_cd ~
|
||||
elif [[ $# -eq 1 && $1 == '-' ]]; then
|
||||
__zoxide_cd "${OLDPWD}"
|
||||
elif [[ $# -eq 1 && -d $1 ]]; then
|
||||
__zoxide_cd "$1"
|
||||
elif [[ ${@: -1} == "${__zoxide_z_prefix}"?* ]]; then
|
||||
# shellcheck disable=SC2124
|
||||
\builtin local result="${@: -1}"
|
||||
__zoxide_cd "${result:${#__zoxide_z_prefix}}"
|
||||
else
|
||||
\builtin local result
|
||||
# shellcheck disable=SC2312
|
||||
result="$(\command zoxide query --exclude "$(__zoxide_pwd)" -- "$@")" &&
|
||||
__zoxide_cd "${result}"
|
||||
fi
|
||||
}
|
||||
|
||||
# Jump to a directory using interactive search.
|
||||
function __zoxide_zi() {
|
||||
\builtin local result
|
||||
result="$(\command zoxide query --interactive -- "$@")" && __zoxide_cd "${result}"
|
||||
}
|
||||
|
||||
# =============================================================================
|
||||
#
|
||||
# Commands for zoxide. Disable these using --no-cmd.
|
||||
#
|
||||
|
||||
\builtin unalias z &>/dev/null || \builtin true
|
||||
function z() {
|
||||
__zoxide_z "$@"
|
||||
}
|
||||
|
||||
\builtin unalias zi &>/dev/null || \builtin true
|
||||
function zi() {
|
||||
__zoxide_zi "$@"
|
||||
}
|
||||
|
||||
# Load completions.
|
||||
# - Bash 4.4+ is required to use `@Q`.
|
||||
# - Completions require line editing. Since Bash supports only two modes of
|
||||
# line editing (`vim` and `emacs`), we check if either them is enabled.
|
||||
# - Completions don't work on `dumb` terminals.
|
||||
if [[ ${BASH_VERSINFO[0]:-0} -eq 4 && ${BASH_VERSINFO[1]:-0} -ge 4 || ${BASH_VERSINFO[0]:-0} -ge 5 ]] &&
|
||||
[[ :"${SHELLOPTS}": =~ :(vi|emacs): && ${TERM} != 'dumb' ]]; then
|
||||
# Use `printf '\e[5n'` to redraw line after fzf closes.
|
||||
\builtin bind '"\e[0n": redraw-current-line' &>/dev/null
|
||||
|
||||
function __zoxide_z_complete() {
|
||||
# Only show completions when the cursor is at the end of the line.
|
||||
[[ ${#COMP_WORDS[@]} -eq $((COMP_CWORD + 1)) ]] || return
|
||||
|
||||
# If there is only one argument, use `cd` completions.
|
||||
if [[ ${#COMP_WORDS[@]} -eq 2 ]]; then
|
||||
\builtin mapfile -t COMPREPLY < <(
|
||||
\builtin compgen -A directory -- "${COMP_WORDS[-1]}" || \builtin true
|
||||
)
|
||||
# If there is a space after the last word, use interactive selection.
|
||||
elif [[ -z ${COMP_WORDS[-1]} ]] && [[ ${COMP_WORDS[-2]} != "${__zoxide_z_prefix}"?* ]]; then
|
||||
\builtin local result
|
||||
# shellcheck disable=SC2312
|
||||
result="$(\command zoxide query --exclude "$(__zoxide_pwd)" --interactive -- "${COMP_WORDS[@]:1:${#COMP_WORDS[@]}-2}")" &&
|
||||
COMPREPLY=("${__zoxide_z_prefix}${result}/")
|
||||
\builtin printf '\e[5n'
|
||||
fi
|
||||
}
|
||||
|
||||
\builtin complete -F __zoxide_z_complete -o filenames -- z
|
||||
\builtin complete -r zi &>/dev/null || \builtin true
|
||||
fi
|
||||
|
||||
# =============================================================================
|
||||
#
|
||||
# To initialize zoxide, add this to your configuration (usually ~/.bashrc):
|
||||
#
|
||||
eval "$(zoxide init bash)"
|
||||
Reference in New Issue
Block a user