Compare commits

..

3 Commits

Author SHA1 Message Date
Xavier Logerais
f4672019f5 feat: Add 3rd party libs 2025-01-17 09:14:43 +00:00
Xavier Logerais
a4143b9a11 feat: Ajout des répertoires rc.before.d et rc.after.d 2025-01-17 09:14:27 +00:00
Xavier Logerais
c74c820dc1 feat: Améliore la gestion pour sourcer le contenu des sous-répertoires (*.d) 2025-01-17 09:14:20 +00:00
20 changed files with 28 additions and 188 deletions

3
.gitmodules vendored
View File

@@ -4,6 +4,3 @@
[submodule "3rd-party/complete-alias"]
path = 3rd-party/complete-alias
url = https://github.com/cykerway/complete-alias.git
[submodule "3rd-party/junegunn/fzf-git.sh"]
path = 3rd-party/junegunn/fzf-git.sh
url = https://github.com/junegunn/fzf-git.sh

View File

@@ -1,7 +1,5 @@
alias cdrepo='cd ~/Repositories/'
alias cdgithub='cd ~/Repositories/Github'
alias cdgitlab='cd ~/Repositories/Gitlab'
alias cdgitea='cd ~/Repositories/Gitea'
alias cdgh=cdgithub
alias cdgithub='cd ~/Repositories/Github'
alias cdgl=cdgitlab
alias cdgt=cdgitea
alias cdgh=cdgithub

View File

@@ -1,7 +0,0 @@
#!/bin/bash
# [ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh"
if [ -n "${KITTY_INSTALLATION_DIR}" ]; then
alias ssh="kitty +kitten ssh"
alias icat="kitty +kitten icat"
fi

View File

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

9
bashrc
View File

@@ -28,7 +28,7 @@ _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/junegunn/fzf-git.sh/fzf-git.sh"
# _source_file_if_exists "${BASEDIR}/3rd-party/z/z.sh" # FIX: Problème de gestion de la variable PROMPT_COMMAND
# Early customization
_source_dir_files "${BASEDIR}"/rc.before.d
@@ -37,12 +37,6 @@ _source_dir_files "${BASEDIR}"/rc.before.d
_source_dir_files "${BASEDIR}"/rc
_source_dir_files "${BASEDIR}"/rc.d
# Source functions definitions
_source_file_if_exists ~/.bash_functions
_source_file_if_exists "${BASEDIR}"/functions
_source_dir_files "${BASEDIR}"/functions
_source_dir_files "${BASEDIR}"/functions.d
# Source alias definitions
_source_file_if_exists ~/.bash_aliases
_source_file_if_exists "${BASEDIR}"/aliases
@@ -65,3 +59,4 @@ fi
# Late customization
_source_dir_files "${BASEDIR}"/rc.after.d

View File

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

View File

@@ -1,3 +1,4 @@
#!/bin/bash
if (command -v flux &>/dev/null); then

View File

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

View File

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

View File

@@ -1,18 +0,0 @@
#!/bin/bash
function devenv() {
local status
# Get LXC container status
status=$(lxc info devenv | yq .Status)
# Start container if not running
if [ "${status}" != "RUNNING" ]; then lxc start devenv; fi
# Rename tmux window if inside tmux
if [ -n "$TMUX" ]; then tmux rename-window "devenv"; fi
# Login as user xavier
lxc exec devenv -- login -f xavier
}

View File

@@ -58,23 +58,11 @@ function echo_reverse { echo -e "\e[7m${*}\e[0m"; }
function echo_concealed { echo -e "\e[8m${*}\e[0m"; }
# Affiche un message informatif stylisé sur la sortie d'erreur
function echo_info { >&2 echo -e "\e[00;34;49m󰋼 ${*}\e[39;49;00m"; }
function echo_warning { >&2 echo -e "\e[00;33;49m ${*}\e[39;49;00m"; }
function echo_error { >&2 echo -e "\e[00;01;31;49m ${*}\e[39;49;00m"; }
function echo_success { >&2 echo -e "\e[00;01;32;49m ${*}\e[39;49;00m"; }
function echo_failed { >&2 echo -e "\e[00;01;31;49m✖ ${*}\e[39;49;00m"; }
function echo_verbose {
if [ -n "${VERBOSE}" ]; then
echo_faint "${*}" >&2
fi
}
function echo_debug {
if [ -n "${DEBUG}" ]; then
echo_faint "🐛 ${*}" >&2
fi
}
function echo_info { >&2 echo -e "\e[00;34;49m󰋼 ${*}\e[39;49;00m"; }
function echo_warning { >&2 echo -e "\e[00;33;49m ${*}\e[39;49;00m"; }
function echo_error { >&2 echo -e "\e[00;01;31;49m ${*}\e[39;49;00m"; }
function echo_success { >&2 echo -e "\e[00;01;32;49m ${*}\e[39;49;00m"; }
function echo_failed { >&2 echo -e "\e[00;01;31;49m✖ ${*}\e[39;49;00m"; }
function echo_demo {
echo_bold bold
@@ -89,5 +77,4 @@ function echo_demo {
echo_error error
echo_success success
echo_failed failed
DEBUG=true echo_debug debug
}

View File

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

View File

@@ -1,5 +1,5 @@
#!/bin/bash
if (command -v keychain &>/dev/null); then
eval "$(keychain --inherit any --quiet --noask ~/.ssh/id_{rsa,ed25519})"
eval "$(keychain --eval --noask ~/.ssh/{id_ed25519,id_rsa_native})"
fi

View File

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

View File

@@ -1,49 +0,0 @@
#!/bin/bash
# Function to update terminal/tmux title
_update_terminal_title() {
local kubecontext dir gitrepo gitremote icon title
# Detect Kubernetes context (if kubectl is available)
if [ -n "${KUBECONFIG}" ]; then
if command -v kubectl >/dev/null 2>&1; then
kubecontext=$(kubectl config current-context 2>/dev/null)
if [ -n "$kubecontext" ]; then
title="󱃾 ${kubecontext}"
fi
fi
fi
# If no title is already set, check if we're in $HOME
if [ -z "${title}" ] && [ "$PWD" = "$HOME" ]; then
title="󱂵 ~"
fi
# If we're in a git repo display repo name with a nice icon
if [ -z "${title}" ] && gitrepo=$(git rev-parse --show-toplevel 2>/dev/null); then
dir=$(basename "${gitrepo}")
# Detect host from remote URL
gitremote=$(git remote get-url origin 2>/dev/null)
case "${gitremote}" in
*github.com*) icon="" ;; # nf-fa-github
*gitlab.com*) icon="" ;; # nf-fa-gitlab
*gitea*) icon="" ;; # nf-linux-gitea
*) icon="" ;; # nf-dev-git
esac
title="${icon} ${dir}"
fi
# Set the title in tmux or terminal window
if [ -n "${title}" ]; then
if [ -n "$TMUX" ]; then
tmux rename-window "${title}"
else
printf '\033]0;%s\007' "${title}"
fi
fi
}
# Add the function to the PROMPT_COMMAND variable to have regular updates
if [ "$TERM" != "linux" ]; then _prompt_command_add "_update_terminal_title"; fi

View File

@@ -8,13 +8,13 @@ if (command -v tmux &>/dev/null); then
nb_sessions_attached=$(tmux list-session | grep -c "attached")
nb_sessions_detached=$(tmux list-session | grep -c -v "attached")
echo_info "tmux : found ${nb_sessions} session(s)"
echo_info "Found ${nb_sessions} tmux session(s)"
echo " ${nb_sessions_attached} session(s) attached"
tmux list-sessions | grep "attached" | sed -e 's/^/ /'
echo " * ${nb_sessions_attached} attached"
tmux list-sessions | grep "attached" | sed -e 's/^/ - /'
echo " ${nb_sessions_detached} session(s) detached"
tmux list-sessions | grep -v "attached" | sed -e 's/^/ /'
echo " * ${nb_sessions_detached} detached"
tmux list-sessions | grep -v "attached" | sed -e 's/^/ - /'
fi
fi

View File

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