Compare commits

..

2 commits

Author SHA1 Message Date
367b3ca5bb
Add better-completion setting 2024-06-04 20:53:47 +02:00
081cf16acc
Move settings to settings.d directory 2024-06-04 20:53:38 +02:00
7 changed files with 39 additions and 26 deletions

View file

@ -0,0 +1,3 @@
#!/usr/bin/env bash
[[ "${CONFIG_AUTOSAVE_HISTORY}" == "1" ]] && export "PROMPT_COMMAND=history -a"

View file

@ -0,0 +1,6 @@
#!/usr/bin/env bash
if [ "${CONFIG_BETTER_COMPLETION}" == "1" ]; then
bind 'set show-all-if-ambiguous on'
bind 'TAB:menu-complete'
fi

View file

@ -0,0 +1,7 @@
#!/usr/bin/env bash
if [[ "${CONFIG_CUSTOM_PROMPT}" == "1" ]]; then
export "PS1=\[\033[38;5;33m\][\[$(tput sgr0)\]\[\033[38;5;38m\]\u\[$(tput sgr0)\]\[\033[38;5;33m\]@\[$(tput sgr0)\]\[\033[38;5;38m\]\H\[$(tput sgr0)\]\[\033[38;5;33m\]:\[$(tput sgr0)\]\[\033[38;5;38m\]\W\[$(tput sgr0)\] \[$(tput sgr0)\]\[\033[38;5;214m\]\$?\[$(tput sgr0)\]\[\033[38;5;33m\]]\\$\[$(tput sgr0)\] "
export "PS2=\[\033[38;5;196m\][incomplete]: \033[0;10m"
export "PS4=\${0}:\${LINENO}+ "
fi

3
settings.d/editor.sh Normal file
View file

@ -0,0 +1,3 @@
#!/usr/bin/env bash
export "EDITOR=${CONFIG_EDITOR}"

View file

@ -0,0 +1,4 @@
#!/usr/bin/env bash
[[ "${CONFIG_FLOW_CONTROl}" == "0" ]] && stty -ixon
[[ "${CONFIG_FLOW_CONTROL}" == "1" ]] && stty ixon

View file

@ -0,0 +1,6 @@
#!/usr/bin/env bash
if [ -n "${CONFIG_REPLACE_PKGMGR_ORIGINAL}" ] && [ -n "${CONFIG_REPLACE_PKGMGR_REPLACEMENT}" ]; then
# shellcheck disable=SC2139
alias "${CONFIG_REPLACE_PKGMGR_ORIGINAL}=${CONFIG_REPLACE_PKGMGR_REPLACEMENT}"
fi

View file

@ -32,17 +32,20 @@ cd "${BASHRCD_HOMEDIR}" || (
[[ -f "init.d/aliases.sh" ]] && source "init.d/aliases.sh" [[ -f "init.d/aliases.sh" ]] && source "init.d/aliases.sh"
[[ -f "init.d/functions.sh" ]] && source "init.d/functions.sh" [[ -f "init.d/functions.sh" ]] && source "init.d/functions.sh"
# Create new configuration file # Create default configuration file
if [ ! -f "config.sh" ]; then if [ ! -f "config.sh" ]; then
if [ -n "${BASHRCD_SYSTEM}" ] && [ "${UID}" != "0" ]; then if [ -n "${BASHRCD_SYSTEM}" ] && [ "${UID}" != "0" ]; then
echo ":: Warning: Can't create system-wide configuration file as normal user." echo ":: Warning: Can't create system-wide configuration file as normal user."
else else
$(which cat) << EOF >> config.sh $(which cat) << EOF >> config.sh
#!/usr/bin/env bash #!/usr/bin/env bash
CONFIG_FLOW_CONTROL=0 # Example configuration
CONFIG_AUTOSAVE_HISTORY=1 CONFIG_AUTOSAVE_HISTORY=1
CONFIG_BETTER_COMPLETION=1
CONFIG_CUSTOM_PROMPT=1 CONFIG_CUSTOM_PROMPT=1
CONFIG_EDITOR=nano CONFIG_EDITOR=nano
CONFIG_FLOW_CONTROL=0
CONFIG_REPLACE_PKGMGR_ORIGINAL=pacman CONFIG_REPLACE_PKGMGR_ORIGINAL=pacman
CONFIG_REPLACE_PKGMGR_REPLACEMENT=paru CONFIG_REPLACE_PKGMGR_REPLACEMENT=paru
EOF EOF
@ -52,30 +55,11 @@ fi
# Load configuration file # Load configuration file
[[ -f "config.sh" ]] && source "config.sh" [[ -f "config.sh" ]] && source "config.sh"
# Process configuration changes # Run settings scripts
# -> Flow control for file in settings.d/*; do
[[ "${CONFIG_FLOW_CONTROl}" == "0" ]] && stty -ixon # shellcheck disable=SC1090
[[ "${CONFIG_FLOW_CONTROL}" == "1" ]] && stty ixon source "${file}"
done
# -> Autosave history
[[ "${CONFIG_AUTOSAVE_HISTORY}" == "1" ]] && export "PROMPT_COMMAND=history -a"
# -> Custom prompt
if [[ "${CONFIG_CUSTOM_PROMPT}" == "1" ]]; then
export "PS1=\[\033[38;5;33m\][\[$(tput sgr0)\]\[\033[38;5;38m\]\u\[$(tput sgr0)\]\[\033[38;5;33m\]@\[$(tput sgr0)\]\[\033[38;5;38m\]\H\[$(tput sgr0)\]\[\033[38;5;33m\]:\[$(tput sgr0)\]\[\033[38;5;38m\]\W\[$(tput sgr0)\] \[$(tput sgr0)\]\[\033[38;5;214m\]\$?\[$(tput sgr0)\]\[\033[38;5;33m\]]\\$\[$(tput sgr0)\] "
export "PS2=\[\033[38;5;196m\][incomplete]: \033[0;10m"
export "PS4=\${0}:\${LINENO}+ "
fi
# -> Editor
export "EDITOR=${CONFIG_EDITOR}"
# -> Package manager replacement
if [ -n "${CONFIG_REPLACE_PKGMGR_ORIGINAL}" ] && [ -n "${CONFIG_REPLACE_PKGMGR_REPLACEMENT}" ]; then
# shellcheck disable=SC2139
alias "${CONFIG_REPLACE_PKGMGR_ORIGINAL}=${CONFIG_REPLACE_PKGMGR_REPLACEMENT}"
fi
# Initialize shell programs # Initialize shell programs
for file in programs.d/*; do for file in programs.d/*; do