#!/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 command -v xdg-user-dir 1> /dev/null; then 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 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'