Compare commits

..
3 Commits
Author SHA1 Message Date
xavier 649cfe25b3 feat(zsh): Add support for zsh 2026-08-03 22:36:52 +02:00
xavier 12fad1e849 test: Prepare for cloning password store 2026-08-03 22:36:52 +02:00
xavier 3af209a689 feat: Add TODO.md 2026-08-03 22:36:52 +02:00
9 changed files with 58 additions and 123 deletions
+1 -3
View File
@@ -26,7 +26,7 @@ tools:
- gh
- tea:
url: "https://gitea.com/gitea/tea/releases/download/v{{ version }}/tea-{{ version }}-{{ os() }}-{{ arch(x64='amd64') }}.xz"
version: "0.15.1"
version: "0.14.2"
dev-languages:
- python
- uv
@@ -54,8 +54,6 @@ tools:
- claude
- gemini-cli
- codex
- copilot
- opencode
# # Password managers
# # vault = "latest"
-6
View File
@@ -4,12 +4,6 @@
".config/bash":
type: git-repo
url: https://gitea.cloud.logerais.com/xavier/config-bash.git
clone:
args:
- --recurse-submodules
pull:
args:
- --recurse-submodules
refreshPeriod: 24h # Vérifie toutes les 24h
##### [ VIM ] #####
-17
View File
@@ -1,17 +0,0 @@
{{/* .chezmoitemplates/mise-toolbox-conf */}}
{{/* Expects data: (merge (dict "toolboxName" "<name>") .) */}}
{{- $toolboxName := .toolboxName -}}
{{ includeTemplate "chezmoi-managed-header" . }}
# Toolbox: {{ $toolboxName }}
[tools]
{{- $toolsList := index .tools.toolboxes $toolboxName }}
{{- range $tool := $toolsList }}
{{- if kindIs "map" $tool }}
{{- range $toolName, $params := $tool }}
{{ $toolName }} = { version = "{{ $params.version | default "latest" }}"{{ range $key, $value := omit $params "version" }}, {{ $key }} = "{{ $value }}"{{ end }} }
{{- end }}
{{- else }}
"{{ $tool }}" = "latest"
{{- end }}
{{- end }}
+24 -6
View File
@@ -10,12 +10,14 @@
{{- end }}
{{- end }}
{{- if $currentUser }}
{{- /* Les outils individuels (la liste 'tools:' de l'utilisateur) */}}
{{- if hasKey $currentUser "tools" }}
{{- if $currentUser.tools }}
{{- /* 1. Parcourir les toolboxes associées à cet hôte */}}
{{- range $toolboxName := $currentUser.toolboxes }}
{{- /* Récupérer la liste des outils pour cette toolbox dans tools.yaml */}}
{{- $toolsList := index $.tools.toolboxes $toolboxName }}
{{- if $toolsList }}
# Outils individuels
{{- range $tool := $currentUser.tools }}
# Toolbox: {{ $toolboxName }}
{{- range $tool := $toolsList }}
{{- /* Un outil est soit une chaîne ("nom"), soit un objet { nom: {version, ...params mise} } */}}
{{- if kindIs "map" $tool }}
{{- range $toolName, $params := $tool }}
@@ -27,7 +29,23 @@
{{- end }}
{{- end }}
{{- end }}
{{- /* Les toolboxes de cet utilisateur sont générées séparément dans ~/.config/mise/conf.d/<toolbox>.toml */}}
{{- /* 2. Parcourir les outils individuels (la liste 'tools:' de l'utilisateur) */}}
{{- if hasKey $currentUser "tools" }}
{{- if $currentUser.tools }}
# Outils individuels
{{- range $tool := $currentUser.tools }}
{{- if kindIs "map" $tool }}
{{- range $toolName, $params := $tool }}
{{ $toolName }} = { version = "{{ $params.version | default "latest" }}"{{ range $key, $value := omit $params "version" }}, {{ $key }} = "{{ $value }}"{{ end }} }
{{- end }}
{{- else }}
"{{ $tool }}" = "latest"
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- else if $currentHost }}
# Aucun profil trouvé dans hosts.yaml pour l'utilisateur {{ $username }} sur la machine : {{ $hostname }}
{{- else }}
+2 -2
View File
@@ -11,7 +11,7 @@ gui:
- bold
nerdFontsVersion: "3"
git:
diffRenderers:
pagers:
- colorArg: always
command: delta --paging=never
pager: delta --paging=never
parseEmoji: true
+4 -5
View File
@@ -1,4 +1,4 @@
{{ includeTemplate "chezmoi-managed-header" . }}
{{ template "chezmoi-managed-header" . }}
[settings]
experimental = true
@@ -9,7 +9,7 @@ binstall = true
######################### [ Bootstrap ] #########################
[bootstrap.packages]
{{ includeTemplate "mise-bootstrap-packages" . }}
{{ template "mise-bootstrap-packages" . }}
# coreutils grep less
# tig
@@ -35,9 +35,8 @@ chezmoi = "latest"
neovim = "latest"
tree-sitter = "latest"
# Individual tools automated with chezmoi
# (toolboxes from .chezmoidata/tools.yaml live in ~/.config/mise/conf.d/<toolbox>.toml)
{{ includeTemplate "mise-tools" . }}
# Tools automated with chezmoi
{{ template "mise-tools" . }}
# Password managers
# vault = "latest"
+20 -30
View File
@@ -6,22 +6,23 @@ $directory\
$git_branch\
$git_commit\
$git_status\
$git_state\
$direnv\
$mise\
[](fg:#394260 bg:#212736)\
$rust\
$golang\
$rust\
$python\
$nodejs\
$docker_context\
$kubernetes\
$terraform\
[](fg:#212736)\
\n$character\
"""
$character"""
right_format = """
[](fg:#a3aed2)\
$time\
[ ](fg:#a3aed2)\
[](fg:#a3aed2)\
$shell\
$username\
@@ -30,10 +31,6 @@ $os\
[](bg:#394260 fg:#a3aed2)\
$container\
$hostname\
[ ](fg:#394260)\
[](fg:#a3aed2)\
$time\
[](fg:#a3aed2)\
"""
[hostname]
@@ -47,7 +44,7 @@ format = '[$ssh_symbol]($style)[  $hostname ]($style)'
[container]
style = "bg:#394260 fg:#a3aed2"
format = '[ $symbol $name ]($style)'
format = '[ $symbol $name ]($style)'
[os]
disabled = false
@@ -89,32 +86,27 @@ format = '[ $symbol $branch ]($style)'
[git_commit]
disabled = false
style = "fg:#769ff0 bg:#394260"
tag_disabled = false
tag_symbol = '  '
only_detached = true
style = "fg:#769ff0 bg:#394260"
format = '[ $hash $tag ]($style)'
[git_status]
disabled = false
style = "fg:#769ff0 bg:#394260"
format = '[$all_status$ahead_behind]($style)'
ahead = '⇡${count}'
behind = '⇣${count}'
diverged = '[⇕⇡${ahead_count}⇣${behind_count}](fg:#FFA500 bg:#394260)'
diverged = '⇕⇡${ahead_count}⇣${behind_count}'
up_to_date = ''
modified = '[$count 󰷉 ](fg:#FFFF00 bg:#394260)'
staged = '[$count  ](fg:#00D000 bg:#394260)'
deleted = '[$count  ](fg:#FF0000 bg:#394260)'
renamed = '[$count 󱀱 ](fg:#87CEEB bg:#394260)'
untracked = '[$count 󱀶 ](fg:#CCCCCC bg:#394260)'
conflicted = '[$count 󱪘 ](fg:#FF0000 bg:#394260)'
stashed = '[$count ](fg:#FFA500 bg:#394260)' # 󱁺 
format = '[$all_status$ahead_behind ]($style)'
[git_state]
disabled = false
style = "fg:#769ff0 bg:#394260"
format = ' [$state( $progress_current/$progress_total)]($style) '
modified = '[$count󰷉 ](fg:yellow bg:#394260)'
staged = '[$count ](fg:green bg:#394260)'
deleted = '[$count ](fg:red bg:#394260)'
renamed = '[$count󱀱 ](fg:blue bg:#394260)'
untracked = '[$count󱀶 ](fg:gray bg:#394260)'
conflicted = '[$count󱪘 ](fg:red bg:#394260)'
stashed = '$count📦' # 󱁺 
[direnv]
disabled = false
@@ -173,16 +165,14 @@ format = '[[](fg:#212736 bg:#1b1028) [$symbol](fg:#7b42bc bg:#1b1028) $worksp
[time]
disabled = false
style = "fg:#212736 bg:#a3aed2"
time_format = "%R" # Hour:Minute Format
style = "fg:#ffffff bg:#a3aed2"
format = '[  $time ]($style)'
time_format = '%T  󰃶 %A %e %B %Y'
# format = '[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)'
[character]
# success_symbol = '[[](fg:#ddffdd)  [](fg:#ddffdd)](bg:#ddffdd fg:#00af5f) '
# error_symbol = '[[](fg:#ffddff) 󰚽 [](fg:#ffddff)](bg:#ffddff fg:#f44336) '
success_symbol = '[  [](fg:#ddffdd)](bg:#ddffdd fg:#00af5f) '
error_symbol = '[ 󰚽 [](fg:#ffddff)](bg:#ffddff fg:#f44336) '
success_symbol = '[[](fg:#ddffdd)  [](fg:#ddffdd)](bg:#ddffdd fg:#00af5f) '
error_symbol = '[[](fg:#ffddff) 󰚽 [](fg:#ffddff)](bg:#ffddff fg:#f44336) '
[os.symbols]
Windows = "󰍲"
+1 -1
View File
@@ -15,7 +15,7 @@ if command -v mise &>/dev/null; then
mise bootstrap --yes
fi
# 3. Installer tous les outils déclarés dans ~/.config/mise/config.toml et ~/.config/mise/conf.d/*.toml
# 3. Installer tous les outils déclarés dans ~/.config/mise/config.toml
if command -v mise &>/dev/null; then
echo "⚡ Installation des outils via Mise (dont chezmoi si désiré)..."
mise install --yes
+4 -51
View File
@@ -1,59 +1,12 @@
#!/usr/bin/env bash
# Déclencheur automatique : ce script régénère les toolboxes mise
# (~/.config/mise/conf.d/<toolbox>.toml) à partir de .chezmoidata/tools.yaml
# et .chezmoidata/hosts.yaml, puis (ré)installe les outils.
# Il se réexécute automatiquement dès que ces données changent, car la boucle
# ci-dessous fait partie du contenu templaté (donc du hash) de ce script.
# hash config.toml: {{ includeTemplate "private_dot_config/mise/config.toml.tmpl" . | sha256sum }}
set -euo pipefail
# Déclencheur automatique : ce script se réexécutera si le config.toml de mise change.
# hash: {{ include "private_dot_config/mise/config.toml.tmpl" | sha256sum }}
export PATH="${HOME}/.local/bin:$PATH"
MISE_CONF_D="${HOME}/.config/mise/conf.d"
mkdir -p "$MISE_CONF_D"
{{- $hostname := output "hostname" | trim -}}
{{- $username := .chezmoi.username -}}
{{- $currentHost := index .hosts $hostname -}}
{{- $currentUser := "" -}}
{{- if $currentHost -}}
{{- if hasKey $currentHost.users $username -}}
{{- $currentUser = index $currentHost.users $username -}}
{{- end -}}
{{- end }}
echo "✏️ Génération des toolboxes mise pour {{ $username }}@{{ $hostname }}..."
declare -A active_toolboxes=(
{{- if $currentUser }}
{{- range $toolboxName := $currentUser.toolboxes }}
["{{ $toolboxName }}"]=1
{{- end }}
{{- end }}
)
# Suppression des toolboxes qui ne sont plus assignées à cet hôte/utilisateur
for f in "$MISE_CONF_D"/*.toml; do
[ -e "$f" ] || continue
name="$(basename "$f" .toml)"
if [ -z "${active_toolboxes[$name]:-}" ]; then
echo "🗑️ Toolbox obsolète supprimée : $name"
rm -f "$f"
fi
done
{{ if $currentUser }}
{{- range $toolboxName := $currentUser.toolboxes }}
{{- $toolsList := index $.tools.toolboxes $toolboxName }}
{{- if $toolsList }}
echo " → {{ $toolboxName }}.toml"
cat > "$MISE_CONF_D/{{ $toolboxName }}.toml" <<'MISE_TOOLBOX_EOF'
{{ includeTemplate "mise-toolbox-conf" (merge (dict "toolboxName" $toolboxName) $) }}
MISE_TOOLBOX_EOF
{{- end }}
{{- end }}
{{- end }}
if command -v mise &>/dev/null; then
echo "✏️ Modification de la configuration mise détectée."
echo
echo "🚀 Mise bootstrap..."
mise bootstrap --yes