Compare commits

..

21 Commits

Author SHA1 Message Date
2aaf279c9e feat(libs): Prise en compte de tmux dans la fonction term_change_title 2025-03-27 11:35:46 +00:00
5b0012ffc1 feat(rc): Ajout du support de fzf 2025-03-21 09:37:27 +00:00
af4fb0e5fa feat(rc): Ajout de l'outil zoxide 2025-03-15 22:37:34 +00:00
8fc95d8e90 feat(completion): Ajout de la completion pour l'outil chezmoi 2025-03-13 00:20:24 +01:00
a5dd0be77c feat(aliases): Ajout d'un alias pour lsd
Ajout de l'alias lt pour `lsd --tree` qui est un équivalent de la
commande `tree`.
2025-03-13 00:20:24 +01:00
981430eef1 feat(completion): Amélioration de la complétion pour mise 2025-03-13 00:20:24 +01:00
c7be86ecb6 fix: fix submodule directory 2025-03-13 00:20:24 +01:00
611bab8f2f feat: Add 3rd party libs 2025-03-13 00:20:24 +01:00
333a7d8b46 feat: Ajout des répertoires rc.before.d et rc.after.d 2025-03-13 00:20:24 +01:00
c53e964ce9 feat: Améliore la gestion pour sourcer le contenu des sous-répertoires (*.d) 2025-03-13 00:20:24 +01:00
5cb8b5dfaf feat(rc): Amélioration de la gestion de tmux 2025-03-13 00:19:53 +01:00
08916f80b6 feat(completion): Ajout du support de minikube 2025-01-17 09:07:56 +00:00
9324547f92 feat(completion): Ajout du support de k3d 2025-01-17 09:07:23 +00:00
1c34023066 feat(completion): Ajout du support de flux 2025-01-17 09:07:04 +00:00
cd341b7d80 feat(rc): Amélioration de la gestion de anyenv 2025-01-17 09:05:56 +00:00
af5d43fb36 feat(rc): Amélioration de la gestion de tmux 2025-01-17 09:05:09 +00:00
ddd9509d74 feat(rc): Amélioration de la gestion de mcfly 2025-01-17 09:04:46 +00:00
30597e31ed feat(profile): Amélioration de la gestion de keychain 2025-01-17 09:03:53 +00:00
ebb0139dbe feat(profile): Amélioration de la gestions des applications par défaut 2025-01-17 09:03:19 +00:00
3759b1b0ac feat: Amélioration des aliases pour kubectl 2025-01-17 08:59:20 +00:00
5f0ab15c42 feat: Ajout d'un alias automatique pour bat (improved cat) 2025-01-17 08:55:27 +00:00
25 changed files with 197 additions and 64 deletions

6
.gitmodules vendored Normal file
View File

@ -0,0 +1,6 @@
[submodule "3rd-party/z"]
path = 3rd-party/z
url = https://github.com/rupa/z.git
[submodule "3rd-party/complete-alias"]
path = 3rd-party/complete-alias
url = https://github.com/cykerway/complete-alias.git

1
3rd-party/complete-alias vendored Submodule

44
_helpers.bash Normal file
View File

@ -0,0 +1,44 @@
#!/bin/bash
function basedir() {
(cd "$(dirname \"$-2\")" && pwd)
}
function _source_file_if_exists() {
if [ -r "$1" ]; then
test -n "$DEBUG_BASHRC" && echo "-- Sourcing file $1"
source "$1"
fi
}
function _source_dir_files() {
if [ -d "$1" ]; then
test -n "$DEBUG_BASHRC" && echo "-- Sourcing files in directory $1"
# Safe loops for empty dirs
shopt -s nullglob
for file in "$1"/*; do
if [ -e "$file" ]; then
test -n "$DEBUG_BASHRC" && echo " * sourcing file $file"
source "$file"
fi
done
# Restore option nullglob to normal
shopt -u nullglob
fi
}
# Source : https://superuser.com/questions/39751/add-directory-to-path-if-its-not-already-there
_path_add() {
if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
PATH="${PATH:+"$PATH:"}$1"
fi
}
_prompt_command_add() {
if [ -n "$1" ] && [[ ":$PROMPT_COMMAND:" != *":$1:"* ]]; then
PROMPT_COMMAND="${PROMPT_COMMAND:+"$PROMPT_COMMAND;"}$1"
fi
}

5
aliases.d/bat Normal file
View File

@ -0,0 +1,5 @@
#!/bin/bash
if (command -v bat &>/dev/null); then
alias cat=bat
fi

View File

@ -6,10 +6,16 @@ if (command -v kubectl &>/dev/null); then
alias k="kubectl"
alias kg="kubectl get"
alias kd="kubectl describe"
alias ks="kubectl --namespace kube-system"
alias ksg="kubectl --namespace kube-system get"
alias ksd="kubectl --namespace kube-system describe"
alias kga="kubectl get --all-namespaces"
alias kuc="kubectl config unset current-context"
alias kun="kubectl config set-context --current --namespace="
alias kgworkers="kubectl get nodes --selector '!node-role.kubernetes.io/control-plane' --label-columns heat,topology.kubernetes.io/zone,topology.kubernetes.io/region --sort-by metadata.labels.heat"
alias kgnodes="kubectl get nodes --label-columns topology.kubernetes.io/region,topology.kubernetes.io/zone"
alias kgmasters="kubectl get nodes --selector 'node-role.kubernetes.io/control-plane' --label-columns topology.kubernetes.io/region,topology.kubernetes.io/zone"
alias kgworkers="kubectl get nodes --selector '!node-role.kubernetes.io/control-plane' --label-columns topology.kubernetes.io/region,topology.kubernetes.io/zone"
alias kgtaints="kubectl get nodes --output custom-columns=NAME:.metadata.name,TAINTS:.spec.taints"
fi

View File

@ -2,5 +2,6 @@
if (command -v lsd &> /dev/null)
then
alias ls=lsd
alias ls='lsd'
alias lt='lsd --tree'
fi

56
bashrc
View File

@ -11,37 +11,51 @@ if [[ $- != *i* ]]; then
return
fi
# Safe loops for empty dirs
shopt -s nullglob
# DEBUG_BASHRC=true
# Determine path to directory of this file (FIX: remove dependency to readlink for posix compliance)
BASEDIR=$(
source_file=$(readlink -f "${BASH_SOURCE[0]}")
source_dir=$(dirname "${source_file}")
cd "${source_dir}" && pwd
)
# Source some helpers functions
source "${BASEDIR}/_helpers.bash"
# Source custom libs
if [ -d "$HOME"/.bash/libs ]; then for lib in "$HOME"/.bash/libs/*.bash; do source "$lib"; done; fi
_source_dir_files "${BASEDIR}"/libs
# Source 3rd party libs if they exists
_source_file_if_exists "${BASEDIR}/3rd-party/complete-alias/complete_alias"
# _source_file_if_exists "${BASEDIR}/3rd-party/z/z.sh" # FIX: Problème de gestion de la variable PROMPT_COMMAND
# Early customization
if [ -d "$HOME"/.bash/rc.before.d ]; then for file in "$HOME"/.bash/rc.before.d/*; do source "$file"; done; fi
_source_dir_files "${BASEDIR}"/rc.before.d
# Source rc.d/*
if [ -d "$HOME"/.bash/rc.d ]; then for file in "$HOME"/.bash/rc.d/*; do source "$file"; done; fi
_source_dir_files "${BASEDIR}"/rc
_source_dir_files "${BASEDIR}"/rc.d
# Source alias definitions
if [ -f "$HOME"/.bash_aliases ]; then source "$HOME"/.bash_aliases; fi
if [ -f "$HOME"/.bash/aliases ]; then source "$HOME"/.bash/aliases; fi
if [ -d "$HOME"/.bash/aliases ]; then for file in "$HOME"/.bash/aliases/*; do source "$file"; done; fi
if [ -d "$HOME"/.bash/aliases.d ]; then for file in "$HOME"/.bash/aliases.d/*; do source "$file"; done; fi
_source_file_if_exists ~/.bash_aliases
_source_file_if_exists "${BASEDIR}"/aliases
_source_dir_files "${BASEDIR}"/aliases
_source_dir_files "${BASEDIR}"/aliases.d
# Source bash completion definitions
# TODO: Améliorer cette partie pour éviter les erreurs quand aucun fichier n'existe
for file in /etc/bash*completion /etc/profile.d/bash*completion*; do source "$file"; done
_source_file_if_exists ~/.bash_completion
_source_file_if_exists "${BASEDIR}"/completion
_source_dir_files "${BASEDIR}"/completion
_source_dir_files "${BASEDIR}"/completion.d
_source_dir_files ~/.nix-profile/share/bash-completion/completions
if (command -v _complete_alias &>/dev/null); then
for alias in $(alias -p | awk '{print $2}' | awk -F= '{print $1}'); do complete -o default -F _complete_alias "$alias"; done
fi
# Source bash completion definitions
for file in /etc/bash*completion /etc/profile.d/bash*completion*; do source "$file"; done
if [ -f "$HOME"/.bash_completion ]; then source "$HOME"/.bash_completion; fi
if [ -f "$HOME"/.bash/completion ]; then source "$HOME"/.bash/completion; fi
if [ -d "$HOME"/.bash/completion ]; then for file in "$HOME"/.bash/completion/*; do source "$file"; done; fi
if [ -d "$HOME"/.bash/completion.d ]; then for file in "$HOME"/.bash/completion.d/*; do source "$file"; done; fi
# Late customization
if [ -d "$HOME"/.bash/rc.after.d ]; then for file in "$HOME"/.bash/rc.after.d/*; do source "$file"; done; fi
# Restore option nullglob to normal
shopt -u nullglob
_source_dir_files "${BASEDIR}"/rc.after.d

5
completion.d/chezmoi Normal file
View File

@ -0,0 +1,5 @@
#!/bin/bash
if (command -v chezmoi &>/dev/null); then
source <(chezmoi completion bash)
fi

6
completion.d/flux Normal file
View File

@ -0,0 +1,6 @@
#!/bin/bash
if (command -v flux &>/dev/null); then
source <(flux completion bash)
fi

5
completion.d/k3d Normal file
View File

@ -0,0 +1,5 @@
#!/bin/bash
if (command -v k3d &>/dev/null); then
source <(k3d completion bash)
fi

5
completion.d/minikube Normal file
View File

@ -0,0 +1,5 @@
#!/bin/bash
if (command -v minikube &>/dev/null); then
source <(minikube completion bash)
fi

View File

@ -1,5 +1,5 @@
#!/bin/bash
if (command -v mise &>/dev/null); then
source <(mise completion bash)
source <(mise completion bash --include-bash-completion-lib)
fi

View File

@ -1,7 +1,6 @@
#!/bin/bash
function term_change_title
{
function term_change_title {
case $TERM in
# Change the window title of X terminals
xterm* | rxvt* | urxvt* | Eterm)
@ -9,7 +8,7 @@ function term_change_title
;;
# Change the window title of screen terminals
screen*)
screen* | tmux*)
echo -ne "\033k${1}\033\\"
;;
esac

View File

@ -8,7 +8,9 @@ if (command -v nvim &>/dev/null); then
fi
# PAGER
if (command -v less &>/dev/null); then
export PAGER=less
fi
# MANPAGER
if (command -v nvim &>/dev/null); then
@ -18,7 +20,11 @@ elif (command -v bat &>/dev/null); then
fi
# TERMINAL
if (command -v kitty &>/dev/null); then
export TERMINAL=kitty
fi
# BROWSER
if (command -v firefox &>/dev/null); then
export BROWSER=firefox
fi

View File

@ -1,6 +1,5 @@
#!/bin/bash
if $(which keychain &> /dev/null)
then
eval $(keychain --agents ssh,gpg --eval)
if (command -v keychain &>/dev/null); then
eval "$(keychain --eval --noask ~/.ssh/{id_ed25519,id_rsa_native})"
fi

0
rc.after.d/.keep Normal file
View File

0
rc.before.d/.keep Normal file
View File

View File

@ -4,7 +4,6 @@
# git clone https://github.com/riywo/anyenv $HOME/.anyenv
if ( which anyenv &> /dev/null )
then
if (which anyenv &>/dev/null); then
eval "$(anyenv init -)"
fi

31
rc.d/fzf Normal file
View File

@ -0,0 +1,31 @@
#!/bin/bash
if (command -v fzf &>/dev/null); then
source <(fzf --bash)
# Selection de fichiers
export FZF_CTRL_T_OPTS="--height 60% \
--border sharp \
--layout reverse \
--prompt '󰈞 ' \
--pointer \
--marker ✔"
# Navigation vers un répertoire
export FZF_ALT_C_OPTS="--height 60% \
--border sharp \
--layout reverse \
--prompt '󰥨 ' \
--pointer \
--marker ✔"
# Navigation dans l'historique
export FZF_CTRL_R_OPTS="--height 60% \
--border sharp \
--layout reverse \
--prompt ' ' \
--pointer \
--marker ✔"
fi

View File

@ -1,6 +1,6 @@
#!/bin/bash
if (which mcfly &>/dev/null); then
if (command -v mcfly &>/dev/null); then
export MCFLY_PROMPT=" "
export MCFLY_INTERFACE_VIEW=BOTTOM
export MCFLY_RESULTS=50

View File

@ -1,25 +1,21 @@
#!/bin/bash
# GNU Screen stuff
if ( which tmux &> /dev/null )
then
if [ $(pgrep -u "$UID" "tmux" | wc -l) -gt 0 ]
then
if [[ $TERM != screen* ]]
then
if (command -v tmux &>/dev/null); then
if [ "$(pgrep -u "$UID" "tmux" | wc -l)" -gt 0 ]; then
if [[ $TERM != screen* ]]; then
nb_sessions=$(tmux list-session | wc -l)
nb_sessions_attached=$(tmux list-session | grep "attached" | wc -l)
nb_sessions_detached=$(tmux list-session | grep -v "attached" | wc -l)
nb_sessions_attached=$(tmux list-session | grep -c "attached")
nb_sessions_detached=$(tmux list-session | grep -c -v "attached")
echo_reverse "Found ${nb_sessions} tmux session(s)"
echo_info "tmux : found ${nb_sessions} session(s)"
echo " * ${nb_sessions_attached} attached"
tmux list-sessions | grep "attached" | sed -e 's/^/ - /'
echo " ${nb_sessions_attached} session(s) attached"
tmux list-sessions | grep "attached" | sed -e 's/^/ /'
echo " * ${nb_sessions_detached} detached"
tmux list-sessions | grep -v "attached" | sed -e 's/^/ - /'
echo " ${nb_sessions_detached} session(s) detached"
tmux list-sessions | grep -v "attached" | sed -e 's/^/ /'
fi
fi
fi

5
rc.d/zoxide Normal file
View File

@ -0,0 +1,5 @@
#!/bin/bash
if (command -v zoxide &>/dev/null); then
eval "$(zoxide init bash)"
fi