summaryrefslogtreecommitdiffstats
path: root/.bashrc
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-01-17 17:37:55 +0100
committerAhmed Abdelhalim <[email protected]>2026-01-17 17:37:55 +0100
commit1aacb642be4fab0758d3356a0c7b5a8fac306fe1 (patch)
treebbf8227d04750bc8d1ac1d6e8f7690560dc2e1ce /.bashrc
parentc11fce2b693fc3fdf74a91490d4a7650122042b6 (diff)
Create simpler bash_profile and move everything to bashrc
This is more compatible with Linux and still works perfectly on the Mac
Diffstat (limited to '.bashrc')
-rw-r--r--.bashrc131
1 files changed, 131 insertions, 0 deletions
diff --git a/.bashrc b/.bashrc
new file mode 100644
index 0000000..f590ed4
--- /dev/null
+++ b/.bashrc
@@ -0,0 +1,131 @@
+#!/bin/bash
+# shellcheck disable=SC1091
+
+export CLICOLOR=1
+# Unix/Bash Readline custom colors (created by dircolors in bashrc)
+# export LS_COLORS="$LS_COLORS:di=00;36:ln=00;35:ex=00;31"
+
+export IGNOREEOF=42 # Ignore Ctrl+D logout terminal session
+export HISTSIZE=1000 # Num commands to remmember in a terminal session
+export HISTFILESIZE=10000 # Max number of linse in history file
+export HISTFILE="$HOME/.bash_history"
+export HISTCONTROL=ignoredups:erasedups
+
+export EDITOR='vim'
+export TERM="xterm-256color"
+export GREP_OPTIONS="--color=auto"
+export PS1="[\h]: \W \$ "
+export LC_ALL=en_US.UTF-8
+export LANG=en_US.UTF-8
+
+# ==== GPG Config
+GPG_TTY=$(tty)
+export GPG_TTY
+unset SSH_AGENT_PID
+
+# macOS locally: SSH_AUTH_SOCK is empty (FALSE) || SSH_CONNECTION is empty (TRUE) = uses gpg-agent
+# Linux locally: SSH_AUTH_SOCK might be empty (TRUE) || SSH_CONNECTION is empty (TRUE) = uses gpg-agent
+# SSH session: SSH_AUTH_SOCK is empty (FALSE) || SSH_CONNECTION is empty (FALSE) = keep forwarded agent
+if [ -z "$SSH_AUTH_SOCK" ] || [ -z "$SSH_CONNECTION" ]; then
+ SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
+ export SSH_AUTH_SOCK
+fi
+
+# ==== Shell Opts
+# check the window size after each command and, if necessary, update LINES/COLUMNS
+shopt -s checkwinsize
+
+# ==== Aliases
+alias spc="cd ~/Work/Space/"
+alias mb="cd ~/Work/MBition/"
+alias la='ls -a'
+alias dirs="dirs -v"
+alias srv="python3 -m http.server" # start simple server
+alias tagme='ctags -R --languages=ruby --exclude=.git --exclude=log . $(bundle list --paths)'
+alias gpgkill='(
+ pkill pinentry-tty
+ pkill pinentry-curses
+ gpg-connect-agent killagent /bye
+ gpg-connect-agent updatestartuptty /bye
+ gpg-connect-agent /bye
+)'
+alias cgit='docker run --name cgit -v $(pwd):/srv -p 1313:80 --rm -it cgit'
+alias hi!='fortune | cowsay | lolcat'
+
+# ==== Functions
+# get app ID to add to amethyst (example appid /Applications/Spotify.app/)
+appid() {
+ codesign -dr - "$@"
+}
+
+homebrew_token() {
+ HOMEBREW_GITHUB_API_TOKEN=$(pass personal/github | grep homebrew_token | awk '{ print $NF}')
+ export HOMEBREW_GITHUB_API_TOKEN
+}
+
+if command -v neomutt 1>/dev/null 2>&1; then
+ # Fixes the pinentry-tty error https://github.com/neomutt/neomutt/issues/1014
+ mutt() {
+ PINENTRY_USER_DATA=curses neomutt "$@"
+ }
+fi
+
+# ==== include local bin in path
+if [ -d "$HOME/.local/bin" ]; then
+ export PATH="$HOME/.local/bin:$PATH"
+fi
+
+# ==== go config.
+if command -v go 1>/dev/null 2>&1; then
+ export PATH="$HOME/go/bin:$PATH"
+fi
+
+# ==== rust config
+if command -v cargo 1>/dev/null 2>&1; then
+ source "$HOME/.cargo/env"
+fi
+
+# ==== rbenv config.
+if command -v rbenv 1>/dev/null 2>&1; then
+ export PATH="$HOME/.rbenv/bin:$PATH"
+ eval "$(rbenv init -)"
+fi
+
+# ==== NVM config
+if [ -f "$HOME/.nvm/nvm.sh" ]; then
+ export NVM_DIR=~/.nvm
+ source "$HOME/.nvm/nvm.sh"
+fi
+
+# ==== k8s/ktx/kns completeion
+if command -v kubectl 1>/dev/null 2>&1; then
+ alias k='kubectl'
+ complete -F __start_kubectl k
+ alias ktx='kubectx'
+ complete -F _kube_contexts ktx
+ alias kns='kubens'
+ complete -F _kube_namespaces kns
+fi
+
+# ==== zoxide (smarter cd command)
+if command -v zoxide 1>/dev/null 2>&1; then
+ eval "$(zoxide init bash --cmd cd)"
+fi
+
+# ==== Work config ===========================================================
+# ==== Aliases
+alias assume=". assume"
+
+# ==== Functions
+gitlab_token() {
+ GITLAB_TOKEN=$(pass mbition/git | grep token | awk '{ print $NF}')
+ export GITLAB_TOKEN
+}
+gitlab_su_token() {
+ GITLAB_TOKEN=$(pass mbition/git | grep su_token | awk '{ print $NF}')
+ export GITLAB_TOKEN
+}
+gitlab_baas_token() {
+ GITLAB_TOKEN=$(pass mbition/git | grep baas_token | awk '{ print $NF}')
+ export GITLAB_TOKEN
+}