commit 2d4084ead39ab0d8ceb088fd98602f19f746c693 Author: achille Date: Wed Jul 22 08:02:10 2026 +0000 Upload files to "/" diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..d342b21 --- /dev/null +++ b/.zshrc @@ -0,0 +1,211 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# .zshrc :+: :+: :+: # +# +:+ +:+ +:+ # +# By: abosc +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2026/06/15 16:19:14 by abosc #+# #+# # +# Updated: 2026/06/15 16:19:14 by abosc ### ########.fr # +# # +# **************************************************************************** # + + +# ============================================================================== +# 1. CONFIGURATION D'OH-MY-ZSH +# ============================================================================== +export ZSH="$HOME/.oh-my-zsh" + +ZSH_THEME="agnosterzak" + +plugins=( + git + archlinux + zsh-autosuggestions + zsh-syntax-highlighting + sudo + copypath +) + +source $ZSH/oh-my-zsh.sh + +# ============================================================================== +# 2. OPTIONS DE CONFIGURATION DE BASE +# ============================================================================== + +# --- Gestion de l'historique --- +HISTFILE=~/.zsh_history +HISTSIZE=10000 +SAVEHIST=10000 + +setopt SHARE_HISTORY # Partage l'historique entre toutes les sessions ouvertes +setopt HIST_IGNORE_DUPS # Ne pas enregistrer une commande si c'est la même que la précédente +setopt HIST_IGNORE_ALL_DUPS # Supprime les lignes répétées de l'historique +setopt HIST_REDUCE_BLANKS # Retire les espaces inutiles des commandes avant de les stocker +setopt HIST_IGNORE_SPACE # Ne pas enregistrer les commandes commençant par un espace + +# --- Complétion --- +zstyle ':completion:*' menu select # Améliore la complétion (plus visuelle) + +# ============================================================================== +# 3. COMPOSANTS EXTERNES & UTILITAIRES (Fastfetch, FZF, Zoxide) +# ============================================================================== + +# Affichage des infos système au démarrage +fastfetch --logo-type kitty --logo ~/.config/arch_logo.png --logo-width 30 --logo-height 14 + +# Raccourcis clavier FZF (CTRL+R pour l'historique flou) +source <(fzf --zsh) + +# Navigation intelligente avec Zoxide +eval "$(zoxide init zsh)" + +# ============================================================================== +# 4. ALIAS +# ============================================================================== + +# Remplacement de 'cd' par 'z' (Zoxide) +alias cd='z' + +# Navigation rapide +alias ..='cd ..' +alias ...='cd ../..' +alias ....='cd ../../..' +alias pedago='cd /home/achille/Documents/work/dashboard_pedago' +alias dash="cd /home/achille/Documents/work/dashboard_pedago" + +# Amélioration de 'ls' via lsd +alias ls='lsd --hyperlink=always' +alias l='ls -l' +alias la='ls -a' +alias lla='ls -la' +alias lt='ls --tree' +alias lr='ls -R' + +# Sécurité (Confirmations avant actions sensibles) +alias rm='rm -i' +alias cp='cp -i' +alias mv='mv -i' + +# Corrections de fautes de frappe courantes +alias celar=clear +alias cela=clear +alias exot=exit +alias clear='printf "\033c"' + +# Raccourcis Système & Outils (Arch / Yay) +alias up='yay -Syu' +alias zrc='source ~/.zshrc' +alias vi=vim +alias kq="pkill quickshell" +alias yays='yay -Ss' # Chercher un paquet sur les dépôts + AUR +alias yayi='yay -S' # Installer un paquet +alias yayr='yay -Rns' # Désinstaller proprement (avec dépendances et configs) +alias yayc='yay -Yc' # Nettoyer les dépendances orphelines + +# Python / Environnements virtuels +alias prc='source .venv/bin/activate' +alias p="prc && python3 src/main.py" +alias py="prc && python3" +alias convert="python3 /home/achille/Documents/work/utilities/svg_to_png.py" + +# Projets spécifiques & Scripts +alias retry="ruby /home/achille/Documents/work/Initiation/quick-retry/main.rb" + +# Connexions (VPN & VM 42) +alias vpn="sudo openvpn --config ~/Documents/VPN/nat-UDP4-1194-achille-config.ovpn" +alias 42vm="kitty +kitten ssh -i ~/Documents/important_key/ssh_key -p 4222 ansible@PointsForProjects.42lehavre.fr" +alias n8n="kitty +kitten ssh -i ~/Documents/important_key/ssh_key -p 4222 ansible@n8n.42lehavre.fr" +alias cluster="kitty +kitten ssh -i ~/Documents/important_key/ssh_key -p 4222 ansible@ansiblecluster.42lehavre.fr" +alias 42vmdb="kitty +kitten ssh -i ~/Documents/important_key/ssh_key -p 4222 -L 8000:localhost:8000 ansible@pointsforprojects.42lehavre.fr" +alias ldap="kitty +kitten ssh -i ~/Documents/important_key/ssh_key -p 4222 ansible@ldap.42lehavre.fr" + + +# ============================================================================== +# 5. FONCTIONS CUSTOM +# ============================================================================== + +# Extraction automatique d'archives +extract() { + if [ -f $1 ] ; then + case $1 in + *.tar.bz2) tar xjf $1 ;; + *.tar.gz) tar xzf $1 ;; + *.bz2) bunzip2 $1 ;; + *.rar) unrar x $1 ;; + *.gz) gunzip $1 ;; + *.tar) tar xf $1 ;; + *.tbz2) tar xjf $1 ;; + *.tgz) tar xzf $1 ;; + *.zip) unzip $1 ;; + *.Z) uncompress $1 ;; + *.7z) 7z x $1 ;; + *) echo "'$1' ne peut pas être extrait via extract()" ;; + esac + else + echo "'$1' n'est pas un fichier valide" + fi +} + +# Chercher un fichier et l'ouvrir directement dans Vim +fo() { + local file + file=$(fzf --preview 'bat --style=numbers --color=always --line-range :500 {}') && vi "$file" +} + +# Créer et activer un venv Python instantanément +mkenv() { + python3 -m venv .venv && source .venv/bin/activate && pip install --upgrade pip +} + +# Créer un dossier ET entrer dedans directement +# Plus besoin de faire 'mkdir super-projet' puis 'cd super-projet' +mkcd() { + mkdir -p "$1" && cd "$1" +} + +# Connaître instantanément ton IP publique et locale +alias myip="echo 'Interne: ' && hostname -I | awk '{print $1}' && echo 'Publique: ' && curl -s ifconfig.me && echo ''" + +# Générer un mot de passe aléatoire et sécurisé de 20 caractères (sans fioritures) +alias genpass="openssl rand -base64 15" + +# Un 'grep' amélioré qui affiche les numéros de ligne et de la couleur par défaut +alias grep="grep --color=auto -n" + +# Sauvegarde rapide : Ajoute tout, commit avec le message de ton choix, et push +# Utilisation : gsave "Correction bug typo" +gsave() { + git add -A && git commit -m "$1" && git push +} + +# Revenir en arrière proprement (Annuler le dernier commit mais GARDER les modifications dans ton éditeur) +alias undo="git reset --soft HEAD~1" + +# Nettoyer les branches locales qui ont été fusionnées et supprimées sur GitHub/GitLab +alias git-clean="git fetch -p && git branch -vv | awk '/: gone]/ {print \$1}' | xargs -r git branch -d" + +# Voir la taille des dossiers du répertoire courant triés par taille (via lsd) +# Idéal pour voir ce qui prend de la place en un coup d'œil +alias du-folders="lsd -lh --total-size" + +# Partager rapidement un fichier depuis ton terminal +# Ça génère un lien de téléchargement temporaire (valide 14 jours) +# Utilisation : share mon_rapport.pdf +share() { + curl --upload-file "$1" https://transfer.sh/$(basename "$1") && echo "" +} + +# Redémarrer Kitty proprement sans fermer toutes tes fenêtres en cours (Reload config) +alias kitty-reload="kill -SIGUSR1 $(pgrep kitty)" + +# ============================================================================== +# 6. OVERRIDES ET FORCE-PASS (Placé à la fin pour bloquer Oh My Zsh) +# ============================================================================== + +# Horloge à droite du terminal (Heure:Minute:Seconde) +RPROMPT='%F{242}%*%f' + +# Force Zsh à corriger automatiquement SANS demander la confirmation [nyae] +unsetopt correct +setopt correct_all