include .bashrc in shell config

This commit is contained in:
2026-03-15 09:29:27 +01:00
parent d590838761
commit 6d5379278e
4 changed files with 170 additions and 62 deletions
+5
View File
@@ -6,6 +6,11 @@
GPG_SSH_SOCKET=$(gpgconf --list-dirs agent-ssh-socket) GPG_SSH_SOCKET=$(gpgconf --list-dirs agent-ssh-socket)
if [ -z "$GPG_SSH_SOCKET" ]; then
echo "Error: gpgconf did not return a valid SSH socket path." >&2
exit 1
fi
if [ -z "$SSH_AUTH_SOCK" ] || [ "$SSH_AUTH_SOCK" != "$GPG_SSH_SOCKET" ]; then if [ -z "$SSH_AUTH_SOCK" ] || [ "$SSH_AUTH_SOCK" != "$GPG_SSH_SOCKET" ]; then
echo "export SSH_AUTH_SOCK='$GPG_SSH_SOCKET';" echo "export SSH_AUTH_SOCK='$GPG_SSH_SOCKET';"
fi fi
+1
View File
@@ -17,6 +17,7 @@ if [ -z "$SSH_AUTH_SOCK" ]; then
. "$agent_file" > /dev/null 2>&1 . "$agent_file" > /dev/null 2>&1
# check if the socket is actually working # check if the socket is actually working
if [ "$(ssh-add -l > /dev/null 2>&1; echo $?)" -eq 2 ]; then if [ "$(ssh-add -l > /dev/null 2>&1; echo $?)" -eq 2 ]; then
# if not, unset it to create a new one
unset SSH_AUTH_SOCK unset SSH_AUTH_SOCK
fi fi
fi fi
+13 -61
View File
@@ -50,73 +50,25 @@ if type fnm &>/dev/null; then
eval "$(fnm env --shell bash)" eval "$(fnm env --shell bash)"
fi fi
# export ENABLE_GPG_AGENT_SSH=1 in .profile to enable GPG agent for SSH # export UY_ENABLE_GPG_AGENT_SSH=1 in .profile to enable GPG agent for SSH
if [ -x "$HOME/.local/scripts/gpg-init" ] && \ if type gpgconf &>/dev/null && type gpg-connect-agent &>/dev/null &&
[ -n "$ENABLE_GPG_AGENT_SSH" ] && [ "$ENABLE_GPG_AGENT_SSH" = "1" ] && \ [ -x "$HOME/.local/scripts/gpg-init" ] &&
type gpgconf &>/dev/null; then [ "${UY_ENABLE_GPG_AGENT_SSH:-0}" = "1" ]; then
# GPG agent for SSH # GPG agent for SSH
eval "$($HOME/.local/scripts/gpg-init 2>/dev/null)" &>/dev/null eval "$($HOME/.local/scripts/gpg-init 2>/dev/null)" &>/dev/null
elif [ -x "$HOME/.local/scripts/ssh-init" ] && type ssh-agent &>/dev/null; then fi
if type ssh-add &>/dev/null && type ssh-agent &>/dev/null &&
{ [ -z "$SSH_AUTH_SOCK" ] ||
[ "$(ssh-add -l &>/dev/null; echo $?)" -eq 2 ]; } &&
[ -x "$HOME/.local/scripts/ssh-init" ]; then
unset SSH_AUTH_SOCK
# SSH with cross-session ssh-agent # SSH with cross-session ssh-agent
eval "$($HOME/.local/scripts/ssh-init 2>/dev/null)" &>/dev/null eval "$($HOME/.local/scripts/ssh-init 2>/dev/null)" &>/dev/null
export UY_USING_SSH_AGENT=1
fi fi
# Triggered in interactive shells (e.g. ssh) [ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc"
if [[ $- == *i* ]]; then
# Set EDITOR and VISUAL, mainly for sudoedit
for app in nvim helix vim vi nano; do
if type "$app" &>/dev/null; then
EDITOR="$app"
VISUAL="$app"
break
fi
done
export EDITOR VISUAL
# Create shortcut alias for helix
if type helix &>/dev/null && ! type hx &>/dev/null; then
alias hx="helix"
fi
# For gpg
if type gpgconf &>/dev/null; then
GPG_TTY=$(tty)
export GPG_TTY
fi
if [ -x "$HOME/.local/scripts/gpg-init" ] && \
[ -n "$ENABLE_GPG_AGENT_SSH" ] && [ "$ENABLE_GPG_AGENT_SSH" = "1" ] && \
type gpgconf &>/dev/null; then
true
elif [ -x "$HOME/.local/scripts/ssh-init" ] && type ssh-add &>/dev/null; then
function sshs() {
# test if keys are added to ssh-agent
if ! ssh-add -l &>/dev/null; then
if [ -n "$ssh_keys" ]; then
ssh-add "${ssh_keys[@]}"
else
ssh-add
fi
fi
ssh "$@"
}
fi
# Shortcut alias for launching fish
if type fish &>/dev/null && ! type f &>/dev/null; then
alias f="exec fish"
fi
# Better do this manually since the automatic approach is kinda buggy.
# Add this to .bashrc to enable it anyway:
#
# if [[ $(ps --no-header --pid=$PPID --format=comm) != "fish" && -z ${BASH_EXECUTION_STRING} && ${SHLVL} == 1 ]]; then
# shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=''
# exec fish $LOGIN_OPTION
# fi
# .bashrc is not included in the repo
[ -f "$HOME/.bashrc" ] && . "$HOME/.bashrc"
fi
unset append_path unset append_path
unset prepend_path unset prepend_path
+150
View File
@@ -0,0 +1,150 @@
#!/hint/bash
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return ;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=16384
HISTFILESIZE=32768
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color | *-256color) color_prompt=yes ;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm* | rxvt*)
PS1="\[\e]0;\u@\h: \w\a\]$PS1"
;;
*) ;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
#alias fgrep='fgrep --color=auto'
#alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
# Set EDITOR and VISUAL, mainly for sudoedit
for app in nvim helix vim vi nano; do
if type "$app" &>/dev/null; then
EDITOR="$app"
VISUAL="$app"
break
fi
done
export EDITOR VISUAL
# Create shortcut alias for helix
if type helix &>/dev/null && ! type hx &>/dev/null; then
alias hx="helix"
fi
# For gpg
if type gpg &>/dev/null; then
GPG_TTY=$(tty)
export GPG_TTY
fi
if [[ ${UY_USING_SSH_AGENT:-0} == 1 ]]; then
function sshs() {
# test if keys are added to ssh-agent
if ! ssh-add -l &>/dev/null; then
if [ -n "$ssh_keys" ]; then
ssh-add "${ssh_keys[@]}"
else
ssh-add
fi
fi
ssh "$@"
}
fi
# Auto-login to fish if UY_ENABLE_FISH_AUTO_LOGIN=1 is set in .profile
if type fish &>/dev/null && [[ ${UY_ENABLE_FISH_AUTO_LOGIN:-0} == 1 ]]; then
alias f="exec fish"
if [[ $(ps --no-header --pid=$PPID --format=comm) != "fish" && -z ${BASH_EXECUTION_STRING} && ${SHLVL} == 1 ]]; then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=''
exec fish $LOGIN_OPTION
fi
fi