diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-12-07 18:16:05 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-12-07 18:16:05 +0900 |
| commit | 5ff02959d3069923bca63cb54c4bb246b86bf20d (patch) | |
| tree | 7ef1b56fb85a48c563bb3af51c26f181741282be /fedora/.config/bash/bashrc | |
| parent | f65fe7591c18d6c8f4ecac5f379407a910aba1bc (diff) | |
deleted .gnupg/gpg-agent.conf, created .gnupg/, created .config/, created .local/, created .gnupg/
Diffstat (limited to 'fedora/.config/bash/bashrc')
| -rw-r--r-- | fedora/.config/bash/bashrc | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/fedora/.config/bash/bashrc b/fedora/.config/bash/bashrc new file mode 100644 index 0000000..2c60286 --- /dev/null +++ b/fedora/.config/bash/bashrc @@ -0,0 +1,169 @@ +#!/bin/bash + +[[ $- != *i* ]] && return + +####################################################### +# SET OPTIONS +####################################################### +# history +HISTCONTROL=erasedups:ignoredups:ignorespace +HISTFILESIZE=10000 +HISTSIZE=500 + +# Allow ctrl-S for history navigation (with ctrl-R) +stty -ixon +PROMPT_COMMAND="history -a" +unset GREP_OPTIONS + +set -o vi +shopt -s autocd # goto without cd +shopt -s direxpand # expend directory name +shopt -s cdspell # ignore case cd +shopt -s checkwinsize # Check the window size after each command and, if necessary, update the values of LINES and COLUMNS +shopt -s histappend # Causes bash to append to history instead of overwriting it so if you start a new terminal, you have old session history + +# Completion settings +# Ignore case on auto-completion +# Note: bind used instead of sticking these in .inputrc +bind "set completion-ignore-case on" +# Show auto-completion list automatically, without double tab +bind "set show-all-if-ambiguous on" + +####################################################### +# Set command prompt +####################################################### +alias cpu="grep 'cpu ' /proc/stat | awk '{usage=(\$2+\$4)*100/(\$2+\$4+\$5)} END {print usage}' | awk '{printf(\"%.1f\n\", \$1)}'" +function __setprompt { + local LAST_COMMAND=$? # Must come first! + + # Define colors + local LIGHTGRAY="\033[0;37m" + local WHITE="\033[1;37m" + local BLACK="\033[0;30m" + local DARKGRAY="\033[1;30m" + local RED="\033[0;31m" + local LIGHTRED="\033[1;31m" + local GREEN="\033[0;32m" + local LIGHTGREEN="\033[1;32m" + local BROWN="\033[0;33m" + local YELLOW="\033[1;33m" + local BLUE="\033[0;34m" + local LIGHTBLUE="\033[1;34m" + local MAGENTA="\033[0;35m" + local LIGHTMAGENTA="\033[1;35m" + local CYAN="\033[0;36m" + local LIGHTCYAN="\033[1;36m" + local NOCOLOR="\033[0m" + + # Show error exit code if there is one + if [[ $LAST_COMMAND != 0 ]]; then + # PS1="\[${RED}\](\[${LIGHTRED}\]ERROR\[${RED}\])-(\[${LIGHTRED}\]Exit Code \[${WHITE}\]${LAST_COMMAND}\[${RED}\])-(\[${LIGHTRED}\]" + PS1="\[${DARKGRAY}\](\[${LIGHTRED}\]ERROR\[${DARKGRAY}\])-(\[${RED}\]Exit Code \[${LIGHTRED}\]${LAST_COMMAND}\[${DARKGRAY}\])-(\[${RED}\]" + if [[ $LAST_COMMAND == 1 ]]; then + PS1+="General error" + elif [ $LAST_COMMAND == 2 ]; then + PS1+="Missing keyword, command, or permission problem" + elif [ $LAST_COMMAND == 126 ]; then + PS1+="Permission problem or command is not an executable" + elif [ $LAST_COMMAND == 127 ]; then + PS1+="Command not found" + elif [ $LAST_COMMAND == 128 ]; then + PS1+="Invalid argument to exit" + elif [ $LAST_COMMAND == 129 ]; then + PS1+="Fatal error signal 1" + elif [ $LAST_COMMAND == 130 ]; then + PS1+="Script terminated by Control-C" + elif [ $LAST_COMMAND == 131 ]; then + PS1+="Fatal error signal 3" + elif [ $LAST_COMMAND == 132 ]; then + PS1+="Fatal error signal 4" + elif [ $LAST_COMMAND == 133 ]; then + PS1+="Fatal error signal 5" + elif [ $LAST_COMMAND == 134 ]; then + PS1+="Fatal error signal 6" + elif [ $LAST_COMMAND == 135 ]; then + PS1+="Fatal error signal 7" + elif [ $LAST_COMMAND == 136 ]; then + PS1+="Fatal error signal 8" + elif [ $LAST_COMMAND == 137 ]; then + PS1+="Fatal error signal 9" + elif [ $LAST_COMMAND -gt 255 ]; then + PS1+="Exit status out of range" + else + PS1+="Unknown error code" + fi + PS1+="\[${DARKGRAY}\])\[${NOCOLOR}\]\n" + else + PS1="" + fi + + # Date + PS1+="\[${DARKGRAY}\](\[${CYAN}\]\$(date +%a) $(date +%b-'%-m')" # Date + PS1+="${BLUE} $(date +'%-I':%M:%S%P)\[${DARKGRAY}\])-" # Time + + # CPU + PS1+="(\[${MAGENTA}\]CPU $(cpu)%" + + # Jobs + PS1+="\[${DARKGRAY}\]:\[${MAGENTA}\]\j" + + # Network Connections (for a server - comment out for non-server) + PS1+="\[${DARKGRAY}\]:\[${MAGENTA}\]Net $(awk 'END {print NR}' /proc/net/tcp)" + + PS1+="\[${DARKGRAY}\])-" + + # User and server + local SSH_IP=$(echo $SSH_CLIENT | awk '{ print $1 }') + local SSH2_IP=$(echo $SSH2_CLIENT | awk '{ print $1 }') + if [ $SSH2_IP ] || [ $SSH_IP ]; then + PS1+="(\[${RED}\]\u@\h" + else + PS1+="(\[${RED}\]\u" + fi + + # Current directory + PS1+="\[${DARKGRAY}\]:\[${BROWN}\]\w\[${DARKGRAY}\])-" + + # Total size of files in current directory + PS1+="(\[${GREEN}\]$(/bin/ls -lah | /bin/grep -m 1 total | /bin/sed 's/total //')\[${DARKGRAY}\]:" + + # Number of files + PS1+="\[${GREEN}\]\$(/bin/ls -A -1 | /usr/bin/wc -l)\[${DARKGRAY}\])" + + # Skip to the next line + PS1+="\n" + + if [[ $EUID -ne 0 ]]; then + PS1+="\[${GREEN}\]>\[${NOCOLOR}\] " # Normal user + else + PS1+="\[${RED}\]>\[${NOCOLOR}\] " # Root user + fi + + # PS2 is used to continue a command using the \ character + PS2="\[${DARKGRAY}\]>\[${NOCOLOR}\] " + + # PS3 is used to enter a number choice in a script + PS3='Please enter a number from above list: ' + + # PS4 is used for tracing a script in debug mode + PS4='\[${DARKGRAY}\]+\[${NOCOLOR}\] ' +} +# PROMPT_COMMAND='__setprompt' +PS1="\[\e[1m\]\[\e[31m\][\[\e[33m\]\u\[\e[32m\]@\[\e[34m\]\h \[\e[35m\]\W\[\e[31m\]]\[\e[37m\]\\$ \[\e[0m\]" + +####################################################### +# KEY BINDING +####################################################### + +bind '"\C-l":clear-screen' +bind '"\C-g":"lfcd\n"' + +####################################################### +# SOURCE +####################################################### + +eval "$(dircolors)" + +[ -f "${XDG_SCRIPTS_HOME:-${HOME}/.local/bin}/bash-preexec" ] && . "${XDG_SCRIPTS_HOME:-${HOME}/.local/bin}/bash-preexec" +[ -f "${XDG_CONFIG_HOME:-${HOME}/.config}/shell/rootshortcutrc" ] && . "${XDG_CONFIG_HOME:-${HOME}/.config}/shell/rootshortcutrc" +[ -f "${XDG_CONFIG_HOME:-${HOME}/.config}/shell/rootzshnameddirrc" ] && . "${XDG_CONFIG_HOME:-${HOME}/.config}/shell/rootzshnameddirrc" |
