Skip to content

Commit

Permalink
feat(shell): oh my bash support
Browse files Browse the repository at this point in the history
  • Loading branch information
nandalopes committed Jun 25, 2024
1 parent a0acd5a commit 6741041
Show file tree
Hide file tree
Showing 4 changed files with 138 additions and 2 deletions.
19 changes: 19 additions & 0 deletions root/.chezmoiexternal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,22 @@
type: 'archive'
stripComponents: 1
refreshPeriod: '720h' # 30 days


#
# BASH shell
#

# Oh my Bash
'.oh-my-bash':
url: 'https://github.com/ohmybash/oh-my-bash.git'
type: 'git-repo'
refreshPeriod: '168h' # 7 days
clone:
args:
- '--depth=1'
- '--recursive'
- '--shallow-submodules'
pull:
args:
- '--recurse-submodules=yes'
42 changes: 42 additions & 0 deletions root/.chezmoitemplates/shell/ohmybash-config
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# 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.
completions=(
git
composer
chezmoi
docker{,-compose}
gh
pip{,3}
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.
aliases=(
general
ls
)

# 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.
plugins=(
fasd
chezmoi
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
72 changes: 72 additions & 0 deletions root/.chezmoitemplates/shell/ohmybash-env
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Path to your oh-my-bash installation.
export OSH=~/.oh-my-bash

# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-bash is loaded.
OSH_THEME="font"

# Uncomment the following line to use case-sensitive completion.
# OMB_CASE_SENSITIVE="true"

# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# OMB_HYPHEN_SENSITIVE="false"

# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"

# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_OSH_DAYS=13

# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"

# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
# 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.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you don't want the repository to be considered dirty
# if there are untracked files.
# SCM_GIT_DISABLE_UNTRACKED_DIRTY="true"

# Uncomment the following line if you want to completely ignore the presence
# of untracked files in the repository.
# SCM_GIT_IGNORE_UNTRACKED="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output. One of the following values can
# be used to specify the timestamp format.
# * 'mm/dd/yyyy' # mm/dd/yyyy + time
# * 'dd.mm.yyyy' # dd.mm.yyyy + time
# * 'yyyy-mm-dd' # yyyy-mm-dd + time
# * '[mm/dd/yyyy]' # [mm/dd/yyyy] + [time] with colors
# * '[dd.mm.yyyy]' # [dd.mm.yyyy] + [time] with colors
# * '[yyyy-mm-dd]' # [yyyy-mm-dd] + [time] with colors
# If not set, the default value is 'yyyy-mm-dd'.
# HIST_STAMPS='yyyy-mm-dd'

# Uncomment the following line if you do not want OMB to overwrite the existing
# aliases by the default OMB aliases defined in lib/*.sh
# OMB_DEFAULT_ALIASES="check"

# Would you like to use another custom folder than $OSH/custom?
# OSH_CUSTOM=/path/to/new-custom-folder

# 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".
OMB_USE_SUDO=false

# To enable/disable display of Python virtualenv and condaenv
# OMB_PROMPT_SHOW_PYTHON_VENV=true # enable
# OMB_PROMPT_SHOW_PYTHON_VENV=false # disable

7 changes: 5 additions & 2 deletions root/dot_bashrc.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,13 @@

# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
*i*) ;;
*) return;;
esac

{{ template "shell/ohmybash-env" }}
{{ template "shell/ohmybash-config" }}

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
Expand Down

0 comments on commit 6741041

Please sign in to comment.