Upload files to "/"

This commit is contained in:
achille 2026-07-22 08:02:10 +00:00
commit 2d4084ead3

211
.zshrc Normal file
View file

@ -0,0 +1,211 @@
# **************************************************************************** #
# #
# ::: :::::::: #
# .zshrc :+: :+: :+: #
# +:+ +:+ +:+ #
# By: abosc <abosc@42lehavre.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# 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