161 lines
4.6 KiB
Bash
161 lines
4.6 KiB
Bash
#!/usr/bin/env bash
|
||
# executed by bash(1) for non-login shells.
|
||
|
||
# ==============================
|
||
# ENV
|
||
# ==============================
|
||
|
||
# ==============================
|
||
# System
|
||
# ==============================
|
||
|
||
# Expanding PATH with system's bins
|
||
if [[ -d "/usr/sbin" ]] ; then
|
||
export PATH="/usr/sbin:$PATH"
|
||
fi
|
||
if [[ -d "/usr/local/sbin" ]] ; then
|
||
export PATH="/usr/local/sbin:$PATH"
|
||
fi
|
||
|
||
# Expanding PATH with users bin
|
||
if [[ -d "$HOME/.local/bin" ]] ; then
|
||
export PATH="$HOME/.local/bin:$PATH"
|
||
fi
|
||
|
||
# Check if XDG environment variables are set or set them to default
|
||
if [[ -z "$XDG_DATA_HOME" ]]; then
|
||
export XDG_DATA_HOME=$HOME/.local/share
|
||
fi
|
||
if [[ -z "$XDG_CONFIG_HOME" ]]; then
|
||
export XDG_CONFIG_HOME=$HOME/.config
|
||
fi
|
||
if [[ -z "$XDG_STATE_HOME" ]]; then
|
||
export XDG_STATE_HOME=$HOME/.local/state
|
||
fi
|
||
if [[ -z "$XDG_CACHE_HOME" ]]; then
|
||
export XDG_CACHE_HOME=$HOME/.cache
|
||
fi
|
||
|
||
# Check presence of locale Download folder or create a default one
|
||
if [[ "$(xdg-user-dir DOWNLOAD)" == "$(xdg-user-dir)" ]]; then
|
||
mkdir -p "$HOME/Downloads"
|
||
export XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||
else
|
||
XDG_DOWNLOAD_DIR="$(xdg-user-dir DOWNLOAD)"
|
||
export XDG_DOWNLOAD_DIR
|
||
fi
|
||
|
||
# ==============================
|
||
# Shell
|
||
# ==============================
|
||
|
||
# add a preview for commands and a toggle bind for FZF's history
|
||
if command -v fzf 1> /dev/null; then
|
||
export FZF_CTRL_R_OPTS="--preview 'echo {}' --preview-window down:4:wrap --bind 'ctrl-p:toggle-preview'"
|
||
fi
|
||
|
||
# vim a global text editor
|
||
if command -v vim 1> /dev/null; then
|
||
export EDITOR=vim
|
||
fi
|
||
|
||
# ==============================
|
||
# Languages
|
||
# ==============================
|
||
|
||
# Cargo env config
|
||
if [[ -d "$HOME/.cargo/bin" ]]; then
|
||
export PATH="$HOME/.cargo/bin:$PATH"
|
||
fi
|
||
|
||
# Nim env config
|
||
if [[ -d "$HOME/.nimble/bin" ]]; then
|
||
export PATH="$HOME/.nimble/bin:$PATH"
|
||
fi
|
||
|
||
# Go env config
|
||
if [[ -d "$HOME/go/bin" ]]; then
|
||
export PATH="$HOME/go/bin:$PATH"
|
||
fi
|
||
|
||
# Deno env config
|
||
if [[ -f "$HOME/.deno/bin/deno" ]]; then
|
||
export DENO_INSTALL="$HOME/.deno"
|
||
export PATH="$DENO_INSTALL/bin:$PATH"
|
||
fi
|
||
|
||
# Expanding PYTHONPATH for PDM
|
||
if command -v pdm 1> /dev/null; then
|
||
# update with output from here when upgrading Python : eval "$(pdm --pep582)"
|
||
if [[ -n "$PYTHONPATH" ]] && [[ -d "/usr/lib/python3/dist-packages/pdm/pep582" ]]; then
|
||
export PYTHONPATH='/usr/lib/python3/dist-packages/pdm/pep582':$PYTHONPATH
|
||
elif [[ -d "/usr/lib/python3/dist-packages/pdm/pep582" ]]; then
|
||
export PYTHONPATH='/usr/lib/python3/dist-packages/pdm/pep582'
|
||
fi
|
||
fi
|
||
|
||
# PIPX env config
|
||
if command -v pipx 1> /dev/null; then
|
||
eval "$(register-python-argcomplete pipx)"
|
||
fi
|
||
|
||
# refuser l'adhésion à la télémétrie .NET
|
||
if command -v dontnet 1> /dev/null; then
|
||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||
fi
|
||
|
||
# ==============================
|
||
# Applications
|
||
# ==============================
|
||
|
||
# Enable key bindings for fzf
|
||
if command -v fzf 1> /dev/null && [[ -f "/usr/share/doc/fzf/examples/key-bindings.bash" ]]; then
|
||
source /usr/share/doc/fzf/examples/key-bindings.bash
|
||
fi
|
||
|
||
# Let gpg-agent know from which terminal its has been called.
|
||
if command -v gpg 1> /dev/null; then
|
||
export GPG_TTY=$(tty)
|
||
fi
|
||
|
||
# set SSH Agent socket for KeepassXC
|
||
if [[ -z "$SSH_CONNECTION" ]] && command -v keepassxc 1> /dev/null; then
|
||
SSH_AUTH_SOCK=$(find /tmp/ -path "/tmp/ssh-*/agent.*" -printf "%TY-%Tm-%Td_%TH:%TM:%TS %p\n" 2>/dev/null | sort -n | tail -1 | awk '{print $2}')
|
||
export SSH_AUTH_SOCK
|
||
fi
|
||
|
||
# preprocessor for less used in neomutt
|
||
if command -v lesspipe.sh 1> /dev/null; then
|
||
export LESSOPEN="|LESSQUIET=1 /usr/local/bin/lesspipe.sh %s"
|
||
export MAGIC="/usr/share/file/magic:$HOME/.local/share/file/magic"
|
||
fi
|
||
|
||
# additional cfgs for hl
|
||
if command -v hl 1> /dev/null; then
|
||
export HL_CONF=$HOME/.config/hl/config.d:/etc/hl/config.d
|
||
fi
|
||
|
||
# used by functions mark/unmark/marks/jump
|
||
if [[ -d "$HOME/.marks" ]]; then
|
||
export MARKPATH="$HOME/.marks"
|
||
else
|
||
mkdir "$HOME/.marks"
|
||
export MARKPATH="$HOME/.marks"
|
||
fi
|
||
|
||
# ==============================
|
||
# DISPLAY
|
||
# ==============================
|
||
|
||
#some fancy, colorful manpages
|
||
export LESS_TERMCAP_so=$(printf '\e[01;33m') # enter standout mode – yellow
|
||
export LESS_TERMCAP_se=$(printf '\e[0m') # leave standout mode
|
||
export LESS_TERMCAP_us=$(printf '\e[04;36m') # enter underline mode – cyan
|
||
export LESS_TERMCAP_ue=$(printf '\e[0m') # leave underline mode
|
||
export LESS_TERMCAP_mb=$(printf '\e[05;31m') # enter blinking mode – red
|
||
export LESS_TERMCAP_md=$(printf '\e[01;35m') # enter double-bright mode – bold, magenta
|
||
export LESS_TERMCAP_me=$(printf '\e[0m') # turn off all appearance modes (mb, md, so, us)
|
||
|
||
# colored GCC warnings and errors
|
||
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|