feat: violet-chaton v2 — palette originale, kitty, AGS, Maple Mono NF
Refonte complete du rice. Palette 100% originale (Mitsuri Kanroji inspired), zero emprunt Dracula/Catppuccin. 50 fichiers, 3200+ lignes. Palette v2: - palette.sh source de verite unique (dark + light) - 5 accents (magenta, lilac, mitsuri, lavande, champagne) - 4 semantiques derivees, 4 niveaux texte, 6 fonds - Gradient signature: magenta → lilac → lavande → mitsuri - Variante Light: fonds lavande, accents assombris WCAG Terminal: - kitty (remplace COSMIC Term comme principal) - Maple Mono NF (cursive italics, ligatures) - Cursor trail magenta, splits/layouts tiling, undercurl - Vi-mode zsh avec cursor shape adaptatif Shell: - starship 3 lignes (palette nommee, brain_name, battery, sudo) - zshrc v2 (nouveaux outils, fzf pimp, shell functions, vi-mode) - Commandes custom: proj, glog, fkill, colors, hotkeys, weather, y Desktop: - AGS config (bar 3-pills, OSD gradient, launcher, notifications) - COSMIC Dark + Light v2 (7 fichiers RON chacun) - COSMIC Term v2 (color schemes dark/light, Maple Mono NF) - GTK3/GTK4 dark + light css - Vivaldi theme v2 Outils: - +kitty +dust +procs +tokei +sd +hyperfine +gping +Maple Mono NF - Propagation palette sur: bat, btop, cava, yazi, lazygit, rofi, delta, fastfetch, atuin, ls-colors, vivaldi - Claude Code statusline brain-aware Docs: - README v2 complet (palette, structure, raccourcis, commandes) - help.md v2 (reference exhaustive)
This commit is contained in:
@@ -17,19 +17,22 @@ zinit light zsh-users/zsh-completions
|
||||
export PATH="/usr/local/bin:$HOME/.local/bin:/usr/bin:$HOME/.atuin/bin:$PATH"
|
||||
|
||||
# ── Historique ────────────────────────────────────────────────────────────────
|
||||
HISTSIZE=10000
|
||||
HISTFILESIZE=20000
|
||||
HISTSIZE=50000
|
||||
HISTFILESIZE=100000
|
||||
HISTFILE=~/.zsh_history
|
||||
setopt HIST_IGNORE_DUPS
|
||||
setopt HIST_IGNORE_SPACE
|
||||
setopt HIST_FIND_NO_DUPS
|
||||
setopt SHARE_HISTORY
|
||||
setopt APPEND_HISTORY
|
||||
setopt EXTENDED_HISTORY
|
||||
|
||||
# ── Options zsh ───────────────────────────────────────────────────────────────
|
||||
setopt AUTO_CD # cd en tapant juste le nom du dossier
|
||||
setopt CORRECT # correction de typos
|
||||
setopt GLOB_DOTS # inclure fichiers cachés dans les globs
|
||||
setopt GLOB_DOTS # inclure fichiers caches dans les globs
|
||||
setopt NO_BEEP # silence
|
||||
setopt INTERACTIVE_COMMENTS # commentaires en mode interactif
|
||||
|
||||
# ── Completion ────────────────────────────────────────────────────────────────
|
||||
autoload -Uz compinit && compinit
|
||||
@@ -37,44 +40,46 @@ zstyle ':completion:*' menu select
|
||||
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
||||
zstyle ':completion:*' group-name ''
|
||||
zstyle ':completion:*:descriptions' format '%F{#e79cfe}── %d ──%f'
|
||||
zstyle ':completion:*:descriptions' format '%F{#c9a0ff}── %d ──%f'
|
||||
|
||||
# ── Couleurs grep ─────────────────────────────────────────────────────────────
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
|
||||
# ── eza (remplace ls) ─────────────────────────────────────────────────────────
|
||||
# ── eza (remplace ls) ────────────────────────────────────────────────────────
|
||||
alias ls='eza --icons --color=always --group-directories-first'
|
||||
alias ll='eza -l --icons --git --group-directories-first'
|
||||
alias lt='eza --tree --icons'
|
||||
alias la='eza -la --icons --git --group-directories-first'
|
||||
alias lt='eza --tree --icons --level=3'
|
||||
export LS_COLORS="$(bash ~/.local/share/violet-chaton/violet-chaton-ls-colors.sh)"
|
||||
|
||||
# ── bat (remplace cat) ────────────────────────────────────────────────────────
|
||||
# ── bat (remplace cat) ───────────────────────────────────────────────────────
|
||||
alias bat='batcat'
|
||||
alias cat='batcat --paging=never'
|
||||
export MANPAGER="sh -c 'col -bx | batcat -l man -p'"
|
||||
|
||||
# ── fd (remplace find) ────────────────────────────────────────────────────────
|
||||
# ── fd (remplace find) ───────────────────────────────────────────────────────
|
||||
alias fd='fdfind'
|
||||
|
||||
# ── Nouveaux outils ───────────────────────────────────────────────────────────
|
||||
alias lg='lazygit' # git TUI
|
||||
alias rg='rg --color=always' # ripgrep avec couleurs
|
||||
alias disk='ncdu' # analyse disque
|
||||
alias man='tldr' # man pages simplifiées
|
||||
alias pipes='pipes.sh' # animation pipes
|
||||
fuck() { eval "$(thefuck --alias 2>/dev/null)"; fuck "$@"; } # init paresseux
|
||||
# ── Outils modernes ──────────────────────────────────────────────────────────
|
||||
alias lg='lazygit'
|
||||
alias rg='rg --color=always'
|
||||
alias disk='dust' # analyse disque (remplace ncdu)
|
||||
alias tl='tldr' # man pages simplifiees (man reste intact)
|
||||
alias pipes='pipes.sh'
|
||||
alias top='btop'
|
||||
fuck() { eval "$(thefuck --alias 2>/dev/null)"; fuck "$@"; }
|
||||
|
||||
# ── fzf ───────────────────────────────────────────────────────────────────────
|
||||
# ── fzf ──────────────────────────────────────────────────────────────────────
|
||||
[ -f /usr/share/doc/fzf/examples/key-bindings.zsh ] && source /usr/share/doc/fzf/examples/key-bindings.zsh
|
||||
[ -f /usr/share/doc/fzf/examples/completion.zsh ] && source /usr/share/doc/fzf/examples/completion.zsh
|
||||
|
||||
# Raccourcis fzf personnalisés
|
||||
bindkey -r '^T' # libère Ctrl+T
|
||||
bindkey -r '\ec' # libère Alt+C
|
||||
bindkey '^G' fzf-file-widget # Ctrl+G → chercher un fichier
|
||||
bindkey '^F' fzf-cd-widget # Ctrl+F → chercher un dossier
|
||||
# Raccourcis fzf
|
||||
bindkey -r '^T'
|
||||
bindkey -r '\ec'
|
||||
bindkey '^G' fzf-file-widget
|
||||
bindkey '^F' fzf-cd-widget
|
||||
export FZF_DEFAULT_COMMAND='fdfind --type f --hidden --follow --exclude .git --exclude .cache --search-path $HOME'
|
||||
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
|
||||
export FZF_ALT_C_COMMAND='fdfind --type d --hidden --follow --exclude .git --exclude .cache --search-path $HOME'
|
||||
@@ -82,39 +87,188 @@ export FZF_DEFAULT_OPTS="
|
||||
--height 40% --layout=reverse --border rounded --info=hidden
|
||||
--preview 'batcat --color=always --style=plain --line-range=:80 {}'
|
||||
--preview-window 'right:50%:wrap'
|
||||
--color=bg+:#3d2454,bg:#341c4a,spinner:#ff79c6,hl:#8be9fd
|
||||
--color=fg:#f8f8f2,header:#ff79c6,info:#e79cfe,pointer:#ff79c6
|
||||
--color=marker:#a6e3a1,fg+:#f8f8f2,prompt:#e79cfe,hl+:#8be9fd"
|
||||
--color=bg+:#5a3875,bg:#261537,spinner:#ff4da6,hl:#a4b4ff
|
||||
--color=fg:#f0eaf8,header:#ff4da6,info:#c9a0ff,pointer:#ff4da6
|
||||
--color=marker:#9adba8,fg+:#f0eaf8,prompt:#c9a0ff,hl+:#a4b4ff"
|
||||
|
||||
# ── zoxide (remplace cd) ──────────────────────────────────────────────────────
|
||||
# ── zoxide (remplace cd) ────────────────────────────────────────────────────
|
||||
eval "$(zoxide init zsh --cmd cd)"
|
||||
|
||||
# ── Fastfetch ─────────────────────────────────────────────────────────────────
|
||||
alias fetch='fastfetch --config ~/.config/fastfetch/config.jsonc --raw <(chafa --size 44x22 --symbols vhalf --color-space rgb "$HOME/.config/fastfetch/violet-chaton-logo.png") --logo-width 52'
|
||||
fetch
|
||||
# ── direnv (charge .envrc automatiquement) ───────────────────────────────────
|
||||
command -v direnv &>/dev/null && eval "$(direnv hook zsh)"
|
||||
|
||||
# ── zsh-autosuggestions ───────────────────────────────────────────────────────
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#6c7086"
|
||||
# ── fnm (Node.js version manager — lazy load) ───────────────────────────────
|
||||
if [ -d "$HOME/.local/share/fnm" ]; then
|
||||
export PATH="$HOME/.local/share/fnm:$PATH"
|
||||
eval "$(fnm env --use-on-cd --shell zsh)"
|
||||
fi
|
||||
|
||||
# ── Fastfetch ────────────────────────────────────────────────────────────────
|
||||
alias fetch='fastfetch --config ~/.config/fastfetch/config.jsonc --raw <(chafa --size 44x22 --symbols vhalf --color-space rgb "$HOME/.config/fastfetch/violet-chaton-logo.png") --logo-width 52'
|
||||
[[ -z "$TMUX" && -z "$INSIDE_EMACS" && -z "$VSCODE_INJECTION" ]] && fetch
|
||||
|
||||
# ── zsh-autosuggestions ──────────────────────────────────────────────────────
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#716686"
|
||||
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
|
||||
ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20
|
||||
bindkey '^ ' autosuggest-accept # Ctrl+Space pour accepter la suggestion
|
||||
bindkey '^ ' autosuggest-accept
|
||||
|
||||
# ── zsh-syntax-highlighting (couleurs violet-chaton) ─────────────────────────
|
||||
ZSH_HIGHLIGHT_STYLES[command]='fg=#8be9fd'
|
||||
ZSH_HIGHLIGHT_STYLES[builtin]='fg=#ff79c6'
|
||||
ZSH_HIGHLIGHT_STYLES[alias]='fg=#e79cfe'
|
||||
ZSH_HIGHLIGHT_STYLES[function]='fg=#8be9fd'
|
||||
ZSH_HIGHLIGHT_STYLES[string]='fg=#e79cfe'
|
||||
ZSH_HIGHLIGHT_STYLES[path]='fg=#f8f8f2,underline'
|
||||
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=#f38ba8,bold'
|
||||
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=#ff79c6'
|
||||
ZSH_HIGHLIGHT_STYLES[comment]='fg=#6c7086,italic'
|
||||
ZSH_HIGHLIGHT_STYLES[globbing]='fg=#f9e2af'
|
||||
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=#f9e2af'
|
||||
# ── zsh-syntax-highlighting (couleurs violet-chaton v2) ──────────────────────
|
||||
ZSH_HIGHLIGHT_STYLES[command]='fg=#a4b4ff'
|
||||
ZSH_HIGHLIGHT_STYLES[builtin]='fg=#ff4da6'
|
||||
ZSH_HIGHLIGHT_STYLES[alias]='fg=#c9a0ff'
|
||||
ZSH_HIGHLIGHT_STYLES[function]='fg=#a4b4ff'
|
||||
ZSH_HIGHLIGHT_STYLES[string]='fg=#9adba8'
|
||||
ZSH_HIGHLIGHT_STYLES[path]='fg=#f0eaf8,underline'
|
||||
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=#f25c7a,bold,standout'
|
||||
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=#ff4da6'
|
||||
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=#e8c87a'
|
||||
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=#e8c87a'
|
||||
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=#c9a0ff'
|
||||
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]='fg=#9adba8'
|
||||
ZSH_HIGHLIGHT_STYLES[assign]='fg=#f0eaf8'
|
||||
ZSH_HIGHLIGHT_STYLES[redirection]='fg=#ff4da6,bold'
|
||||
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=#ff4da6'
|
||||
|
||||
# ── atuin (remplace Ctrl+R) ───────────────────────────────────────────────────
|
||||
# ── Vi-mode — cursor shape adaptatif ────────────────────────────────────────
|
||||
bindkey -v
|
||||
export KEYTIMEOUT=1
|
||||
|
||||
# Beam en insert, block en normal
|
||||
zle-keymap-select() {
|
||||
case $KEYMAP in
|
||||
vicmd) echo -ne '\e[1 q' ;; # block clignotant
|
||||
viins|main) echo -ne '\e[5 q' ;; # beam clignotant
|
||||
esac
|
||||
}
|
||||
zle -N zle-keymap-select
|
||||
|
||||
# Reset beam au demarrage de chaque prompt
|
||||
zle-line-init() { echo -ne '\e[5 q' }
|
||||
zle -N zle-line-init
|
||||
|
||||
# Garder les keybindings essentiels en mode insert
|
||||
bindkey '^A' beginning-of-line
|
||||
bindkey '^E' end-of-line
|
||||
bindkey '^K' kill-line
|
||||
bindkey '^U' backward-kill-line
|
||||
bindkey '^W' backward-kill-word
|
||||
bindkey '^Y' yank
|
||||
bindkey '^R' history-incremental-search-backward
|
||||
bindkey '^P' up-line-or-history
|
||||
bindkey '^N' down-line-or-history
|
||||
bindkey '^?' backward-delete-char
|
||||
bindkey '^H' backward-delete-char
|
||||
ZSH_HIGHLIGHT_STYLES[comment]='fg=#716686,italic'
|
||||
ZSH_HIGHLIGHT_STYLES[globbing]='fg=#e8c87a'
|
||||
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=#e8c87a'
|
||||
|
||||
# ── fzf pimped — git log picker, process killer ─────────────────────────────
|
||||
|
||||
# Git log browser — Ctrl+L en mode normal
|
||||
fzf-git-log() {
|
||||
git log --oneline --color=always --decorate --graph 2>/dev/null |
|
||||
fzf --ansi --no-sort --reverse --preview \
|
||||
'git show --color=always $(echo {} | grep -oP "[a-f0-9]{7,}" | head -1)' \
|
||||
--preview-window='right:60%:wrap' \
|
||||
--bind='enter:execute(echo {} | grep -oP "[a-f0-9]{7,}" | head -1 | tr -d "\n" | xclip -selection clipboard)+abort'
|
||||
}
|
||||
alias glog='fzf-git-log'
|
||||
|
||||
# Process killer — fzf powered
|
||||
fkill() {
|
||||
local pid
|
||||
pid=$(procs --color=always 2>/dev/null || ps aux) |
|
||||
fzf --ansi --header="Select process to kill" \
|
||||
--preview-window='hidden' |
|
||||
awk '{print $1}'
|
||||
[ -n "$pid" ] && kill -9 "$pid" && echo "Killed $pid"
|
||||
}
|
||||
|
||||
# ── Shell functions — violet-chaton toolkit ──────────────────────────────────
|
||||
|
||||
# mkcd — creer un dossier et y aller
|
||||
mkcd() { mkdir -p "$1" && cd "$1" }
|
||||
|
||||
# Project switcher — fzf dans ~/Dev
|
||||
proj() {
|
||||
local dir
|
||||
dir=$(find ~/Dev -maxdepth 3 -name ".git" -type d 2>/dev/null | sed 's|/.git$||' |
|
||||
fzf --preview 'eza -la --icons --color=always --group-directories-first {}' \
|
||||
--preview-window='right:50%')
|
||||
[ -n "$dir" ] && cd "$dir"
|
||||
}
|
||||
|
||||
# Palette preview — affiche violet-chaton v2 dans le terminal
|
||||
colors() {
|
||||
echo ""
|
||||
echo -e " \033[1mviolet-chaton v2\033[0m"
|
||||
echo ""
|
||||
echo -e " \033[38;2;255;77;166m████\033[0m magenta #ff4da6"
|
||||
echo -e " \033[38;2;201;160;255m████\033[0m lilac #c9a0ff"
|
||||
echo -e " \033[38;2;154;219;168m████\033[0m mitsuri #9adba8"
|
||||
echo -e " \033[38;2;164;180;255m████\033[0m lavande #a4b4ff"
|
||||
echo -e " \033[38;2;232;200;122m████\033[0m champagne #e8c87a"
|
||||
echo ""
|
||||
echo -e " \033[38;2;242;92;122m████\033[0m danger #f25c7a"
|
||||
echo -e " \033[38;2;232;200;122m████\033[0m warning #e8c87a"
|
||||
echo -e " \033[38;2;154;219;168m████\033[0m success #9adba8"
|
||||
echo -e " \033[38;2;164;180;255m████\033[0m info #a4b4ff"
|
||||
echo ""
|
||||
echo -e " \033[38;2;240;234;248m████\033[0m text #f0eaf8"
|
||||
echo -e " \033[38;2;196;184;212m████\033[0m subtext1 #c4b8d4"
|
||||
echo -e " \033[38;2;154;143;173m████\033[0m subtext0 #9a8fad"
|
||||
echo -e " \033[38;2;113;102;134m████\033[0m muted #716686"
|
||||
echo ""
|
||||
echo -e " Gradient: \033[38;2;255;77;166m██\033[38;2;226;118;212m██\033[38;2;201;160;255m██\033[38;2;182;168;255m██\033[38;2;164;180;255m██\033[38;2;159;200;212m██\033[38;2;154;219;168m██\033[38;2;130;232;160m██\033[0m"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Yazi — wrapper qui cd dans le dernier dossier visite
|
||||
y() {
|
||||
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
|
||||
yazi "$@" --cwd-file="$tmp"
|
||||
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
||||
cd "$cwd"
|
||||
fi
|
||||
rm -f "$tmp"
|
||||
}
|
||||
|
||||
# Weather — meteo rapide
|
||||
weather() { curl -s "wttr.in/${1:-Paris}?format=3" }
|
||||
|
||||
# Cheatsheet — raccourcis violet-chaton
|
||||
hotkeys() {
|
||||
echo ""
|
||||
echo -e " \033[38;2;255;77;166m\033[1m── kitty ──\033[0m"
|
||||
echo -e " \033[38;2;201;160;255mCtrl+Shift+\\\033[0m split vertical"
|
||||
echo -e " \033[38;2;201;160;255mCtrl+Shift+-\033[0m split horizontal"
|
||||
echo -e " \033[38;2;201;160;255mCtrl+Shift+Z\033[0m zoom (stack toggle)"
|
||||
echo -e " \033[38;2;201;160;255mCtrl+Shift+←→↑↓\033[0m naviguer splits"
|
||||
echo -e " \033[38;2;201;160;255mCtrl+Shift+1-5\033[0m layouts (tall/fat/grid/h/v)"
|
||||
echo -e " \033[38;2;201;160;255mCtrl+Shift+T\033[0m nouvel onglet"
|
||||
echo ""
|
||||
echo -e " \033[38;2;255;77;166m\033[1m── zsh ──\033[0m"
|
||||
echo -e " \033[38;2;154;219;168mEsc\033[0m vi normal mode (hjkl, w, b)"
|
||||
echo -e " \033[38;2;154;219;168mi\033[0m retour insert"
|
||||
echo -e " \033[38;2;154;219;168mCtrl+G\033[0m fzf fichier"
|
||||
echo -e " \033[38;2;154;219;168mCtrl+F\033[0m fzf dossier"
|
||||
echo -e " \033[38;2;154;219;168mCtrl+Space\033[0m accepter suggestion"
|
||||
echo ""
|
||||
echo -e " \033[38;2;255;77;166m\033[1m── commandes ──\033[0m"
|
||||
echo -e " \033[38;2;164;180;255mproj\033[0m project switcher fzf"
|
||||
echo -e " \033[38;2;164;180;255mglog\033[0m git log fzf"
|
||||
echo -e " \033[38;2;164;180;255mfkill\033[0m process killer fzf"
|
||||
echo -e " \033[38;2;164;180;255my\033[0m yazi (cd au dossier visite)"
|
||||
echo -e " \033[38;2;164;180;255mcolors\033[0m palette violet-chaton v2"
|
||||
echo -e " \033[38;2;164;180;255mweather [ville]\033[0m meteo rapide"
|
||||
echo -e " \033[38;2;164;180;255mhotkeys\033[0m cette aide"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# ── atuin (remplace Ctrl+R) ──────────────────────────────────────────────────
|
||||
[[ -f ~/.atuin/bin/env ]] && source ~/.atuin/bin/env
|
||||
command -v atuin &>/dev/null && eval "$(atuin init zsh --disable-up-arrow)"
|
||||
|
||||
# ── starship ──────────────────────────────────────────────────────────────────
|
||||
# ── starship ─────────────────────────────────────────────────────────────────
|
||||
command -v starship &>/dev/null && eval "$(starship init zsh)"
|
||||
|
||||
Reference in New Issue
Block a user