feat(shell): oh-my-bash for bash

This commit is contained in:
2023-10-19 13:27:41 +03:00
parent 25acc678d8
commit e31948dcc5
3 changed files with 102 additions and 1 deletions

80
base/bashrc Executable file → Normal file
View File

@@ -5,7 +5,7 @@
export DOTFILES="$HOME/.dotfiles"
export PATH="$HOME/.local/bin:$HOME/.dotfiles/local/bin:$HOME/.local/go/bin:$PATH"
# shellcheck source=scripts/shared.sh
source "$DOTFILES/scripts/shared.sh"
# source "$DOTFILES/scripts/shared.sh"
# Explicitly set XDG folders
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
@@ -20,3 +20,81 @@ export XDG_RUNTIME_DIR="$HOME/.local/run"
# Import ssh keys in keychain
ssh-add -A 2>/dev/null
# Enable the subsequent settings only in interactive sessions
case $- in
*i*) ;;
*) return ;;
esac
# Path to your oh-my-bash installation.
export OSH="$HOME/.local/share/oh-my-bash"
[ -d "$OSH" ] && {
export OSH_THEME="powerline-multiline"
# PowerLine theme config
export POWERLINE_LEFT_PROMPT="cwd scm"
export POWERLINE_RIGHT_PROMPT="python_venv ruby in_vim battery user_info"
# Display red dots whilst waiting for completion.
export COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
export DISABLE_UNTRACKED_FILES_DIRTY="true"
# To disable the uses of "sudo" by oh-my-bash, please set "false" to
# this variable. The default behavior for the empty value is "true".
export OMB_USE_SUDO=true
# To enable/disable display of Python virtualenv and condaenv
export OMB_PROMPT_SHOW_PYTHON_VENV=true # enable
# OMB_PROMPT_SHOW_PYTHON_VENV=false # disable
# Which completions would you like to load? (completions can be found in ~/.oh-my-bash/completions/*)
# Custom completions may be added to ~/.oh-my-bash/custom/completions/
# Example format: completions=(ssh git bundler gem pip pip3)
# Add wisely, as too many completions slow down shell startup.
export completions=(
git
composer
ssh
)
# Which aliases would you like to load? (aliases can be found in ~/.oh-my-bash/aliases/*)
# Custom aliases may be added to ~/.oh-my-bash/custom/aliases/
# Example format: aliases=(vagrant composer git-avh)
# Add wisely, as too many aliases slow down shell startup.
export aliases=(
general
)
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-bash/plugins/*)
# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
export plugins=(
git
bashmarks
)
# Which plugins would you like to conditionally load? (plugins can be found in ~/.oh-my-bash/plugins/*)
# Custom plugins may be added to ~/.oh-my-bash/custom/plugins/
# Example format:
# if [ "$DISPLAY" ] || [ "$SSH" ]; then
# plugins+=(tmux-autoattach)
# fi
source "$OSH/oh-my-bash.sh"
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
}

View File

@@ -44,6 +44,7 @@ function section_install
"nvm:Install Node Version Manager (nvm)"
"npm:Install NPM Packages"
"ntfy:Install ntfy"
"ohmybash:Install oh-my-bash"
"pip:Install pip/python packages"
"z:Install z"
)
@@ -56,6 +57,7 @@ function section_install
$0 install fonts
$0 install antigen
$0 brew install
$0 install ohmybash
$0 install pip
$0 install cargo
$0 install composer
@@ -148,6 +150,11 @@ function section_install
&& msg_yay "ntfy installed!"
;;
pip) bash "$DOTFILES/scripts/install-pip-packages.sh" ;;
ohmybash)
msg "oh-my-bash install started..."
bash "$DOTFILES/scripts/install-ohmybash.sh" \
&& msg_yay "oh-my-bash installed!"
;;
z)
bash "$DOTFILES/scripts/install-z.sh" \
&& msg_yay "z has been installed!"

16
scripts/install-ohmybash.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/usr/bin/env bash
#
# Install oh-my-bash
#
# shellcheck source=shared.sh
source "$HOME/.dotfiles/scripts/shared.sh"
export OSH="$HOME/.local/share/oh-my-bash"
if [ ! -d "$OSH" ]; then
[ -f "$HOME/.bashrc" ] && mv "$HOME/.bashrc" "$HOME/.bashrc.temp"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)" --unattended
[ -f "$HOME/.bashrc.temp" ] && mv "$HOME/.bashrc.temp" "$HOME/.bashrc"
else
msg_done "oh-my-bash ($OSH) already installed"
fi