Compare commits

...
43 Commits
Author SHA1 Message Date
xavier a4e2eadbe9 feat(mise): Allow to declare bootstrap package per host
Whitout this, you can only specify packages per os (distrib).
2026-08-03 22:28:22 +02:00
xavier 06fb51ab5e feat: Add template to add an header to managed files more easily 2026-08-03 22:26:55 +02:00
xavier 28183fd943 fix(mise): Fix dependency for broot 2026-08-03 22:25:49 +02:00
xavier da24623dca feat(starship): Improve configuration for starship.rs 2026-07-17 21:48:03 +02:00
xavier 9c757fc1c8 feat(starship): Improve configuration for starship.rs 2026-07-17 21:34:27 +02:00
xavier 7932d9cc61 feat(starship): Improve configuration for starship.rs 2026-07-17 21:28:38 +02:00
xavier cc95831397 feat(starship): Improve configuration for starship.rs 2026-07-17 20:38:48 +02:00
xavier f44c6c47f3 fix(data): Fix username for the cloud server in chezmoi data
(xavier -> ubuntu)
2026-07-17 20:16:32 +02:00
xavier c0a03acfd6 feat(mise): Add dev-tools toolbox for root on all hosts 2026-07-17 01:25:24 +02:00
xavier 1d2ae95800 feat(starship): Improve prompt 2026-07-17 00:25:36 +02:00
xavier 115cc9f6b7 feat(mise): Review config for hosts/users/tools 2026-07-16 22:35:50 +02:00
xavierandClaude Sonnet 5 dd229593aa feat(mise): Support tools with custom mise params (e.g. tea)
Replace the hardcoded 'tea' special case in mise-tools with a generic
mechanism: a tool entry in tools.yaml/hosts.yaml can now be either a
plain string ("latest") or a map keyed by tool name whose value holds
mise params (version, url, asset_pattern, ...). This generalizes to
any future tool needing more than "latest", instead of requiring a
new hardcoded branch per tool.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-16 22:23:26 +02:00
xavierandClaude Sonnet 5 bbda4fdbcb feat(mise): Add per-user toolsets to hosts.yaml
Nest each host's toolboxes/tools/configs under users.<username> so
root and xavier can have different tool selections on the same
machine, instead of sharing one profile per host.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-16 22:09:18 +02:00
xavier d5a4a0d9dd feat: Improve starship prompt 2026-07-16 20:03:46 +02:00
xavier a73546bcec feat: Add config file for starship prompt utility
See https://starship.rs/config/
2026-07-16 19:10:55 +02:00
xavier 94969e12fe feat(mise): Add starship prompt utility to the terminal toolbox 2026-07-16 19:08:41 +02:00
xavier 3b3f7e60a6 chore: Small improvments... 2026-07-16 13:08:13 +02:00
xavier 80afa299b4 fix(mise): Fix script to autoinstall tools when mise config change 2026-07-16 12:54:00 +02:00
xavier 6a4e3f2699 feat: Some adaptations for termux 2026-07-16 08:29:15 +00:00
xavier c1af60939e feat(mise): Add a script to automatically run a mise install when mise config changes 2026-07-15 20:53:12 +02:00
xavier 8c82c74f58 fix(mise): Fix tool options for tea (quoting) 2026-07-15 16:06:26 +02:00
xavier e50a91edab fix(mise): Fix generation for ~/.config/mise/config.toml 2026-07-15 15:54:19 +02:00
xavier 616de6d16f feat(external): Add external repo for legacy vim configuration 2026-07-15 15:44:18 +02:00
xavier ef95b6f198 feat(mise): Automate ~/.config/mise/config.toml generation based on yaml data and some logic 2026-07-15 15:40:17 +02:00
xavier ba28af01ed feat(terminfo): Add xterm-kitty terminfo 2026-07-14 17:18:31 +02:00
xavier 9d636f2a9e feat(terminfo): Add tmux-256color terminfo 2026-07-14 17:18:08 +02:00
xavier 882fb21b1e feat: Manage screen configuration
The repository https://gitea.cloud.logerais.com/xavier/config-screen
will be archived
2026-07-14 16:32:57 +02:00
xavier 92b11c5da5 feat(ghostty): Add ghostty terminfo 2026-07-14 01:19:53 +02:00
xavier aa1720b20d feat(ghostty): Add config options to better integrates with systemd integration 2026-07-14 01:10:09 +02:00
xavier 7f29f91aa1 feat: Manage file ~/.inputrc directly from chezmoi 2026-07-14 00:25:23 +02:00
xavier d50ffe391f feat(mise): Add additional packages 2026-07-13 19:27:21 +02:00
xavier 3d5e77cfe5 fix(mise): Fix template for tea tool 2026-07-13 19:05:25 +02:00
xavier 7b9b1ecafa feat: Add .chezmoiignore file 2026-07-13 15:42:44 +02:00
xavier 6ae9f6a147 feat: Improve mise post-install script 2026-07-13 15:31:06 +02:00
xavier c755f1b768 feat: Improve mise post-install script 2026-07-13 15:25:35 +02:00
xavier 1b910353a6 feat(mise): Remove chezmoi alias
Since there is an aqua entry in registry now
2026-07-13 15:01:24 +02:00
xavier ccc7759f14 fix(symlinks): Fix symlink target for ~/.inputrc 2026-07-13 14:31:40 +02:00
xavier 47b670ba3b fix(mise): Fix manpages package name for apt package manager 2026-07-13 14:16:25 +02:00
xavier 2f85d76f7d fix: Fix bash config symlinks 2026-07-13 14:09:43 +02:00
xavier 3bc6c390c4 fix: Fix management of symlinks for bash config 2026-07-13 13:26:05 +02:00
xavier aeb9c07d72 feat: Manage symlinks for bash config 2026-07-13 13:12:01 +02:00
xavier a4df3ce0c6 feat: Update mise config (disable obsidian)
Because this was just some experiments.
2026-07-13 12:54:19 +02:00
xavier 4a4952e49f fix: Fix nvim config reop address 2026-07-13 00:59:09 +02:00
33 changed files with 849 additions and 104 deletions
+80
View File
@@ -0,0 +1,80 @@
---
hosts:
# PC perso
intel-nuc-hades-canyon:
users:
root:
toolboxes:
- terminal
- dev-tools
xavier:
toolboxes:
- terminal
- dev-tools
- dev-languages
- ai
tools:
- pipx:vit
- pipx:speedtest-cli
- pipx:asciinema
configs: {}
# Serveur dédié
cloud:
users:
root:
toolboxes:
- terminal
- dev-tools
ubuntu:
toolboxes:
- terminal
- dev-tools
- dev-languages
- ai
tools:
- pipx:vit
configs: {}
# Container de dev
devenv:
users:
root:
toolboxes:
- terminal
- dev-tools
xavier:
toolboxes:
- terminal
- dev-tools
- dev-languages
- devops
- ai
tools:
- sops
- age
- cargo:rage
configs: {}
# Termux (application de terminal pour android)
termux-debian:
packages:
- apt:zsh
users:
root:
toolboxes:
- terminal
- dev-tools
xavier:
toolboxes:
- terminal
- dev-tools
termux-ubuntu:
packages:
- apt:zsh
users:
root:
toolboxes:
- terminal
- dev-tools
xavier:
toolboxes:
- terminal
- dev-tools
+44
View File
@@ -0,0 +1,44 @@
---
packages:
debian:
common:
- tar
- zip
- unzip
- manpages
- manpages-fr
- bash
- bash-completion
- screen
- tmux
- curl
- wget
- vim
- git
- tree
- build-essential
server: []
desktop:
- zsh
- fish
ubuntu:
common:
- tar
- zip
- unzip
- manpages
- manpages-fr
- bash
- bash-completion
- screen
- tmux
- curl
- wget
- vim
- git
- tree
- build-essential
server: []
desktop:
- zsh
- fish
+65
View File
@@ -0,0 +1,65 @@
---
tools:
toolboxes:
terminal:
- starship # Fancy prompt
- powerline-go # Fancy prompt
- lsd # Fancy ls replacement
- vivid # Fancy ls colors
- bat # Fancy cat replacement
- ripgrep # Fancy grep replacement
- fd # Fancy find replacement
- gdu # Fancy du replacement
- bottom # Fancy top replacement
- dust # Fancy du replacement
- fzf # Fuzzy finder
- zoxide # Quickly jump to previouously visited directories
- broot # Navigate easily inside the file system
- glow # Render markdown on the CLI
- cargo-binstall # Needed for broot
dev-tools:
- jq
- yq
- shellcheck
- lazygit
- delta
- gh
- tea:
url: "https://gitea.com/gitea/tea/releases/download/v{{ version }}/tea-{{ version }}-{{ os() }}-{{ arch(x64='amd64') }}.xz"
version: "0.14.2"
dev-languages:
- python
- uv
- pipx
- node
- go
- rust
devops:
- docker-cli
- podman
- lazydocker
- kubectl
- krew
- k9s
- helm
- flux2
- minikube
- kind
- kwok
- dive
- trivy
- crane
- cosign
ai:
- claude
- gemini-cli
- codex
# # Password managers
# # vault = "latest"
# sops = "latest"
# age = "latest"
# # "cargo:rage" = "latest"
#
# # Desktop tools
# obsidian = { version = "latest", asset_pattern = "Obsidian-{version}.AppImage" }
+15 -1
View File
@@ -1,9 +1,23 @@
--- ---
##### [ BASH ] #####
".config/bash": ".config/bash":
type: git-repo type: git-repo
url: https://gitea.cloud.logerais.com/xavier/config-bash.git url: https://gitea.cloud.logerais.com/xavier/config-bash.git
refreshPeriod: 24h # Vérifie toutes les 24h refreshPeriod: 24h # Vérifie toutes les 24h
##### [ VIM ] #####
".config/vim":
type: git-repo
url: https://gitea.cloud.logerais.com/xavier/config-vim.git
refreshPeriod: 24h # Vérifie toutes les 24h
##### [ NVIM ] #####
".config/nvim": ".config/nvim":
type: git-repo type: git-repo
url: https://gitea.cloud.logerais.com/xavier/config-nvim.git url: https://gitea.cloud.logerais.com/xavier/config-astronvim.git
refreshPeriod: 24h # Vérifie toutes les 24h refreshPeriod: 24h # Vérifie toutes les 24h
+1
View File
@@ -0,0 +1 @@
README.md
+4
View File
@@ -0,0 +1,4 @@
#
# Ce fichier est généré automatiquement par l'outil chezmoi.
# Préférez apporter vos modification depuis chezmoi que directement ici.
#
+55
View File
@@ -0,0 +1,55 @@
{{/* .chezmoitemplates/mise-bootstrap-packages */}}
{{- $isUbuntu := false -}}
{{- $isUbuntuServer := false -}}
{{- $isUbuntuDesktop := false -}}
{{- if and (eq .chezmoi.os "linux") (hasKey .chezmoi "osRelease") (eq .chezmoi.osRelease.id "ubuntu") -}}
{{- $isUbuntu = true -}}
{{- if stat "/usr/bin/gnome-shell" }}
{{- $isUbuntuDesktop = true -}}
{{- end }}
{{- end -}}
{{/* Debian */}}
{{- if and (eq .chezmoi.os "linux") (hasKey .chezmoi "osRelease") (eq .chezmoi.osRelease.id "debian") -}}
# Debian common
{{- range .packages.debian.common }}
"apt:{{- . }}" = "latest"
{{- end }}
{{- end -}}
{{/* Ubuntu */}}
{{- if $isUbuntu }}
# Ubuntu common
{{- range .packages.ubuntu.common }}
"apt:{{- . }}" = "latest"
{{- end }}
{{- if $isUbuntuServer }}
# Ubuntu server
{{- range .packages.ubuntu.server }}
"apt:{{- . }}" = "latest"
{{- end }}
{{- end }}
{{- if $isUbuntuDesktop }}
# Ubuntu desktop
{{- range .packages.ubuntu.desktop }}
"apt:{{- . }}" = "latest"
{{- end }}
{{- end }}
{{- end }}
{{/* Host specific */}}
{{- $hostname := output "hostname" | trim -}}
{{- $currentHost := index .hosts $hostname -}}
{{- if $currentHost }}
{{- if hasKey $currentHost "packages" }}
# Paquets personnalisés pour l'hôte {{ $hostname }}
{{- range $currentHost.packages }}
"{{- . }}" = "latest"
{{- end }}
{{- end }}
{{- end }}
+53
View File
@@ -0,0 +1,53 @@
{{/* .chezmoitemplates/mise-tools */}}
{{- $hostname := output "hostname" | trim -}}
{{- $username := .chezmoi.username }}
# Configuration personnalisée pour l'utilisateur {{ $username }} et l'hôte {{ $hostname }}
{{- $currentHost := index .hosts $hostname -}}
{{- $currentUser := "" -}}
{{- if $currentHost }}
{{- if hasKey $currentHost.users $username }}
{{- $currentUser = index $currentHost.users $username -}}
{{- end }}
{{- end }}
{{- if $currentUser }}
{{- /* 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 }}
# 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 }}
{{ $toolName }} = { version = "{{ $params.version | default "latest" }}"{{ range $key, $value := omit $params "version" }}, {{ $key }} = "{{ $value }}"{{ end }} }
{{- end }}
{{- else }}
"{{ $tool }}" = "latest"
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- /* 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 }}
# Aucun profil trouvé dans hosts.yaml pour la machine : {{ $hostname }}
{{- end }}
+3
View File
@@ -1,3 +1,6 @@
# Chezmoi # Chezmoi
Ce dépôt contient ma configuration pour l'outil [chezmoi](https://www.chezmoi.io/) qui permet la gestion des fichiers dot files. Ce dépôt contient ma configuration pour l'outil [chezmoi](https://www.chezmoi.io/) qui permet la gestion des fichiers dot files.
Pour lancer un bootstrap rapide de mon environnement complet, lancer la commande suivante :
`sh -c "$(curl -fsLS get.chezmoi.io/lb)" -- init --apply https://gitea.cloud.logerais.com/xavier/config-chezmoi.git`
+65
View File
@@ -0,0 +1,65 @@
# Include system config file
$include /etc/inputrc
# do not bell on tab-completion
set bell-style none
# Disable display of ^C
set echo-control-characters off
# Completion options
set show-all-if-ambiguous on
set show-all-if-unmodified on
# History
"\e[A": history-search-backward
"\e[B": history-search-forward
# backword/forward during search history
"\eq":backward-search-history
"\es":forward-search-history
# Alt+w Alt+x for beginning/end of line
"\ew":"\C-a"
"\ex":"\C-e"
# prepend "tail -f " with Ctrl+Alt+f
"\e\C-f":"\C-atail -f "
"\ef":"\C-atail -f "
# prepend "sudo " with Ctrl+Alt+s
"\e\C-s":"\C-asudo "
"\es":"\C-asudo "
# prepend "yes | " with Ctrl+Alt+y
"\e\C-y":"\C-ayes | "
"\ey":"\C-ayes | "
# append " | grep" with Ctrl+Alt+g
"\e\C-g":"\C-e | grep "
"\eg":"\C-e | grep "
# append " | head" with Ctrl+Alt+h
"\e\C-h":"\C-e | head"
"\eh":"\C-e | head"
# append " | tail" with Ctrl+Alt+t
"\e\C-t":"\C-e | tail"
"\et":"\C-e | tail"
# append " | more" with Ctrl+Alt+m
"\e\C-m":"\C-e | more"
"\em":"\C-e | more"
# append " | less" with Ctrl+Alt+l
"\e\C-l":"\C-e | less"
"\el":"\C-e | less"
# we can add \C-m add the end to validate command too
#"\e\C-m":"\C-e | less\C-m"
# prepend "man " with F1 and validate
"\e[11~":"\C-aman \C-m"
# Launch commands with <F2> then letter
"\e[12~i":"\C-k\C-uirssi\C-m"
"\e[12~m":"\C-k\C-umutt\C-m"
+1
View File
@@ -0,0 +1 @@
../x/xterm-ghostty
Binary file not shown.
Binary file not shown.
Binary file not shown.
+5
View File
@@ -45,3 +45,8 @@
shell-integration-features = sudo shell-integration-features = sudo
gtk-titlebar-hide-when-maximized = true gtk-titlebar-hide-when-maximized = true
maximize maximize
# Systemd and D-Bus Integration
quit-after-last-window-closed = true
quit-after-last-window-closed-delay = 5m
+10 -100
View File
@@ -1,3 +1,5 @@
{{ template "chezmoi-managed-header" . }}
[settings] [settings]
experimental = true experimental = true
@@ -7,31 +9,10 @@ binstall = true
######################### [ Bootstrap ] ######################### ######################### [ Bootstrap ] #########################
[bootstrap.packages] [bootstrap.packages]
{{ template "mise-bootstrap-packages" . }}
"apt:man" = "latest" # coreutils grep less
"apt:manpages-fr" = "latest" # tig
"apt:bash" = "latest"
"apt:bash-completion" = "latest"
"apt:zsh" = "latest"
"apt:fish" = "latest"
"apt:screen" = "latest"
"apt:tmux" = "latest"
"apt:curl" = "latest"
"apt:wget" = "latest"
"apt:vim" = "latest"
{{ if (and (eq .chezmoi.os "linux") (eq .chezmoi.osRelease.name "Ubuntu")) }}
"apt:build-essential" = "latest"
{{ end }}
# coreutils grep less tar zip unzip tree
# git #tig
# vim
# openssh-server openssh-client mosh # openssh-server openssh-client mosh
# lftp fping mtr socat # lftp fping mtr socat
@@ -39,7 +20,6 @@ binstall = true
[tool_alias] [tool_alias]
"kitty" = "github:kovidgoyal/kitty" "kitty" = "github:kovidgoyal/kitty"
"chezmoi" = "github:twpayne/chezmoi"
"broot" = "cargo:broot" "broot" = "cargo:broot"
"glab" = "go:gitlab.com/gitlab-org/cli/cmd/glab" "glab" = "go:gitlab.com/gitlab-org/cli/cmd/glab"
"tea" = "http:tea" "tea" = "http:tea"
@@ -51,88 +31,18 @@ usage = "latest"
# Configuration # Configuration
chezmoi = "latest" chezmoi = "latest"
# Terminal
# kitty = { version = "latest", asset_pattern = "kitty-*-x86_64.txz" }
# Editor # Editor
neovim = "latest" neovim = "latest"
tree-sitter = "latest" tree-sitter = "latest"
# Languages # Tools automated with chezmoi
{{ template "mise-tools" . }}
# -- python --
python = "latest"
uv = "latest"
pipx = "latest"
# -- node --
node = "latest"
# -- go --
go = "latest"
# -- rust --
rust = "latest"
cargo-binstall = "latest"
# Terminal tools
powerline-go = "latest"
lsd = "latest"
bat = "latest"
ripgrep = "latest"
fd = "latest"
gdu = "latest"
bottom = "latest"
dust = "latest"
fzf = "latest"
zoxide = "latest"
broot = "latest"
glow = "latest"
# Password managers # Password managers
# vault = "latest" # vault = "latest"
sops = "latest"
age = "latest"
# "cargo:rage" = "latest"
# Dev toolbox # Terminal
lazygit = "latest" # kitty = { version = "latest", asset_pattern = "kitty-*-x86_64.txz" }
delta = "latest"
gh = "latest"
#tea = { version = "0.14.2", url = "https://gitea.com/gitea/tea/releases/download/v{{- "{{" -}} version{{- "}}" -}} /tea-{{- "{{" -}} version{{- "}}" -}} -{{- "{{" -}} os(){{- "}}" -}} -{{- "{{" -}} arch(){{- "}}" -}} .xz" }
#tea = { version = "0.14.2", url = "https://gitea.com/gitea/tea/releases/download/v{{- "{{" -}} version{{- "}}" -}} /tea-{{- "{{" -}} version{{- "}}" -}} -linux-amd64.xz" }
jq = "latest"
yq = "latest"
# DevOps toolbox
# docker-cli = "latest"
# kubectl = "latest"
# krew = "latest"
# k9s = "latest"
# helm = "latest"
# flux2 = "2.3.0"
# kind = "latest"
# crane = "latest"
# dive = "latest"
# trivy = "latest"
# podman = "latest"
# minikube = "latest"
# kwok = "latest"
# cosign = "latest"
# lazydocker = "latest"
# AI tools
# gemini-cli = "latest"
# claude = "latest"
# codex = "latest"
# Desktop tools # Desktop tools
obsidian = { version = "latest", asset_pattern = "Obsidian-{version}.AppImage" } #obsidian = { version = "latest", asset_pattern = "Obsidian-{version}.AppImage" }
shellcheck = "latest"
vivid = "latest"
"pipx:vit" = "latest"
"pipx:speedtest-cli" = "latest"
# "pipx:asciinema" = "latest"
@@ -0,0 +1,5 @@
# 256 Color
term screen-256color
terminfo rxvt-unicode 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' # tell screen how to set colors. AB = background, AF=foreground
+42
View File
@@ -0,0 +1,42 @@
#
# See https://www.gnu.org/software/screen/manual/screen.html for official documentation.
# See http://aperiodic.net/screen/ for extra documentation.
#
startup_message off
autodetach on
vbell off
defscrollback 10000
#defencoding UTF-8
#Fix for residual editor text
altscreen on
shelltitle "$ |bash"
activity "activity in %n (%t)^G"
bell_msg "/!\\ bell in %n (%t) /!\\"
sorendition "+b kr"
hardstatus off
hardstatus string "screen running on %H (%t)"
#hardstatus alwayslastline "%{= KW}%-w%{= wk}%50>%n %t%{-}%+w%<"
#hardstatus always "%{= KW}%-w%{= wk}%50>%n %t%{-}%+w%<"
#defhstatus "screen ^E (^Et) | $USER@^EH"
#caption always "%?%F%{= gk}%:%{= wk}%? %n %?%F%{= wk}%? %C%A %{= wk} %t%= "
caption always "%{= kw}Screen on %H | %{= kG}%-w%{+b GK}%50>%n %t%{-}%+w%<"
#termcapinfo xterm*|rxvt*|kterm*|Eterm* 'hs:ts=\E]0;:fs=\007:ds=\E]0;\007'
termcapinfo xterm 'hs:ts=\033]0;:fs=\007:ds=\033]0;\007'
# The vt100 description does not mention “dl”. *sigh*
termcapinfo vt100 dl=5\E[M
# Window numbering starts at 1, not 0.
bind c screen 1
bind " " screen 1 # open new tab with C-a space
bind 0 select 10
@@ -0,0 +1,66 @@
# KEY BINDINGS
# ===============================================================
#page up et page down when ^a Esc
bindkey -m “33[5~” stuff ^B
bindkey -m “33[6~” stuff ^F
# Global
bindkey '^[1' select 1
bindkey '^[2' select 2
bindkey '^[3' select 3
bindkey '^[4' select 4
bindkey '^[5' select 5
bindkey '^[6' select 6
bindkey '^[7' select 7
bindkey '^[8' select 8
bindkey '^[9' select 9
bindkey '^[0' select 10
# Experimental - must fix
#bindkey '^[&' select 1
#bindkey '^[é' select 2
#bindkey '^\"' select 3
#bindkey '^\'' select 4
#bindkey '^[(' select 5
#bindkey '^[\\-' select 6
#bindkey '^[è' select 7
#bindkey '^[_' select 8
#bindkey '^[ç' select 9
#bindkey '^[à' select 10
# Xterm
bindkey "^[[1;5C" next # ctrl ->
bindkey "^[[1;5D" prev # ctrl <-
bindkey "^[[1;5P" select 1 # ctrl F1
bindkey "^[[1;5Q" select 2 # ctrl F2
bindkey "^[[1;5R" select 3 # ctrl F3
bindkey "^[[1;5S" select 4 # ctrl F4
bindkey "^[[15;5~" select 5 # ctrl F5
bindkey "^[[17;5~" select 6 # ctrl F6
bindkey "^[[18;5~" select 7 # ctrl F7
bindkey "^[[19;5~" select 8 # ctrl F8
bindkey "^[[20;5~" select 9 # ctrl F9
bindkey "^[[21;5~" select 10 # ctrl F10
# Urxvt
bindkey "^[Oc" next # change window with ctrl-right
bindkey "^[Od" prev # change window with ctrl-left
bindkey "^[[11\^" select 1 # ctrl F1
bindkey "^[[12\^" select 2 # ctrl F2
bindkey "^[[13\^" select 3 # ctrl F3
bindkey "^[[14\^" select 4 # ctrl F4
bindkey "^[[15\^" select 5 # ctrl F5
bindkey "^[[17\^" select 6 # ctrl F6
bindkey "^[[18\^" select 7 # ctrl F7
bindkey "^[[19\^" select 8 # ctrl F8
bindkey "^[[20\^" select 9 # ctrl F9
bindkey "^[[21\^" select 10 # ctrl F10
#bindkey -k k8 hardstatus alwayslastline
#bindkey -k k9 hardstatus alwaysignore
# Putty
#bindkey "^[[C" next # change window with ctrl-right
#bindkey "^[[D" prev # change window with ctrl-left
@@ -0,0 +1,3 @@
idle 3600 lockscreen
#idle 300 eval "screen cmatrix -f -o -u 10" "idle 0"
+3
View File
@@ -0,0 +1,3 @@
# auto-log
logfile $HOME/logs/screen/%Y%m%d-%n.log
deflog on
+38
View File
@@ -0,0 +1,38 @@
# XTERM TWEAKS
# ===============================================================
# xterm understands both im/ic and doesn't have a status line.
# Note: Do not specify im and ic in the real termcap/info file as
# some programs (e.g. vi) will not work anymore.
#termcap xterm hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l
#terminfo xterm hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l
# 80/132 column switching must be enabled for ^AW to work
# change init sequence to not switch width
#termcapinfo xterm Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l
# Make the output buffer large for (fast) xterms.
# termcapinfo xterm* OL=10000
#termcapinfo xterm* OL=100
# tell screen that xterm can switch to dark background and has function keys.
#termcapinfo xterm 'VR=\E[?5h:VN=\E[?5l'
#termcapinfo xterm 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~'
#termcapinfo xterm 'kh=\EOH:kI=\E[2~:kD=\E[3~:kH=\EOF:kP=\E[5~:kN=\E[6~'
# special xterm hardstatus: use the window title.
#termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
#terminfo xterm 'vb=\E[?5h$<200/>\E[?5l'
#termcapinfo xterm 'vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l'
# Make shift-PgUp and shift-PgDn work like they do in xterm. (Note that this
# requires xterm to be configured to pass those keys through, and not try to
# act on them itself.)
#bindkey "^[[5;2~" eval "copy" "stuff ^u"
#bindkey -m "^[[5;2~" stuff ^u
#bindkey -m "^[[6;2~" stuff ^d
# scrolling
termcapinfo xterm* ti@:te@
termcapinfo rxvt* ti@:te@
+8
View File
@@ -0,0 +1,8 @@
source {{ .chezmoi.homeDir }}/.config/screen/conf.d/common
source {{ .chezmoi.homeDir }}/.config/screen/conf.d/keybindings
source {{ .chezmoi.homeDir }}/.config/screen/conf.d/logging
source {{ .chezmoi.homeDir }}/.config/screen/conf.d/xterm
source {{ .chezmoi.homeDir }}/.config/screen/conf.d/256color
source {{ .chezmoi.homeDir }}/.config/screen/conf.d/lockscreen
screen 1 bash
+242
View File
@@ -0,0 +1,242 @@
"$schema" = 'https://starship.rs/config-schema.json'
format = """
$hostname\
$container\
[](fg:#212736 bg:#394260)\
$os\
[](fg:#394260 bg:#a3aed2)\
$username\
$shell\
[](fg:#a3aed2 bg:#769ff0)\
$directory\
[](fg:#769ff0 bg:#394260)\
$git_branch\
$git_commit\
$git_status\
$direnv\
$mise\
[](fg:#394260 bg:#212736)\
$golang\
$rust\
$python\
$nodejs\
$docker_context\
$kubernetes\
$terraform\
[](fg:#212736)\
\n$time\
$character"""
right_format = """
[](fg:#212736 bg:#1d2230)\
\n$time\
"""
[hostname]
disabled = false
ssh_only = false
style = "bg:#212736 fg:#a3aed2"
format = '[$ssh_symbol]($style)[  $hostname ]($style)'
# detect_env_vars = ['!TMUX', 'SSH_CONNECTION']
# trim_at = '.companyname.com'
# aliases = { "Max's MacBook Pro" = "home" }
[container]
style = "bg:#212736 fg:#a3aed2"
format = '[ $symbol $name ]($style)'
[os]
disabled = false
style = "bg:#394260 fg:#a3aed2"
format = "[ $symbol ]($style)"
[username]
show_always = true
style_user = "bg:#a3aed2 fg:#212736"
style_root = "bg:#a3aed2 fg:#990000 bold"
format = '[  $user ]($style)'
[shell]
disabled = false
bash_indicator = ' '
zsh_indicator = ' '
fish_indicator = '󰈺 '
powershell_indicator = '_'
unknown_indicator = 'unknown shell'
style = "bg:#a3aed2 fg:#212736"
format = '[[](fg:#394260 bg:#a3aed2) $indicator]($style)'
[sudo]
disabled = false
[directory]
disabled = false
style = "fg:#e3e5e5 bg:#769ff0"
format = "[  $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"
[git_branch]
disabled = false
symbol = ""
style = "fg:#769ff0 bg:#394260"
format = '[ $symbol $branch ]($style)'
[git_commit]
disabled = false
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}'
up_to_date = ''
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
[mise]
disabled = true
[nodejs]
symbol = ""
style = "bg:#212736"
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
[bun]
symbol = ""
style = "bg:#212736"
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
[rust]
symbol = ""
style = "bg:#212736"
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
[golang]
symbol = ""
style = "bg:#212736"
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
[php]
symbol = ""
style = "bg:#212736"
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
[python]
symbol = ""
style = "bg:#212736"
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
[docker_context]
disabled = false
only_with_files = false
symbol = " "
style = "fg:#2560ff bg:#ffffff"
format = '[[](fg:#212736 bg:#ffffff) $symbol $context [](fg:#ffffff bg:#212736)]($style)'
[kubernetes]
disabled = false
symbol = " "
style = "bg:#316ce6 fg:#a3aed2"
format = '[[](fg:#212736 bg:#316ce6) $symbol $context (\($namespace\))[](fg:#316ce6 bg:#212736)]($style)'
[terraform]
disabled = false
symbol = " "
style = "bg:#1b1028 fg:#7b42bc"
format = '[[](fg:#212736 bg:#1b1028) [$symbol](fg:#7b42bc bg:#1b1028) $workspace [](fg:#1b1028 bg:#212736)]($style)'
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "fg:#a3aed2"
format = '[  $time ]($style)'
# format = '[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)'
[character]
success_symbol = '[ ](bold green) '
error_symbol = '[󰚽 ](bold red) '
[os.symbols]
Windows = "󰍲"
Ubuntu = "󰕈"
SUSE = ""
Raspbian = "󰐿"
Mint = "󰣭"
Macos = "󰀵"
Manjaro = ""
Linux = "󰌽"
Gentoo = "󰣨"
Fedora = "󰣛"
Alpine = ""
Amazon = ""
Android = ""
AOSC = ""
Arch = "󰣇"
Artix = "󰣇"
EndeavourOS = ""
CentOS = ""
Debian = "󰣚"
Redhat = "󱄛"
RedHatEnterprise = "󱄛"
Pop = ""
[directory.substitutions]
"Documents" = "󰈙 "
"Pictures" = " "
"Images" = " "
"Music" = " "
"Musique" = " "
"Downloads" = " "
"Téléchargements" = " "
"Developer" = "󰲋 "
# Nerdfont symbols
# 󰚽 󰗖 󰗠 󰅙 󰀨  󰅚
#   ✓ ✗ ✔ ✘
# ❬ ❭ ❮ ❯ ❰ ❱ ❲ ❳ ❴ ❵
# ➛ ➜ ➝ ➞ ➢ ➣ ➤
# Powerline colorsheme (from powerline source file colorsheme.py)
# 0x000000, 0xc00000, 0x008000, 0x804000, 0x0000c0, 0xc000c0, 0x008080, 0xc0c0c0, 0x808080, 0xff6060, # 0
# 0x00ff00, 0xffff00, 0x8080ff, 0xff40ff, 0x00ffff, 0xffffff, 0x000000, 0x00005f, 0x000087, 0x0000af, # 1
# 0x0000d7, 0x0000ff, 0x005f00, 0x005f5f, 0x005f87, 0x005faf, 0x005fd7, 0x005fff, 0x008700, 0x00875f, # 2
# 0x008787, 0x0087af, 0x0087d7, 0x0087ff, 0x00af00, 0x00af5f, 0x00af87, 0x00afaf, 0x00afd7, 0x00afff, # 3
# 0x00d700, 0x00d75f, 0x00d787, 0x00d7af, 0x00d7d7, 0x00d7ff, 0x00ff00, 0x00ff5f, 0x00ff87, 0x00ffaf, # 4
# 0x00ffd7, 0x00ffff, 0x5f0000, 0x5f005f, 0x5f0087, 0x5f00af, 0x5f00d7, 0x5f00ff, 0x5f5f00, 0x5f5f5f, # 5
# 0x5f5f87, 0x5f5faf, 0x5f5fd7, 0x5f5fff, 0x5f8700, 0x5f875f, 0x5f8787, 0x5f87af, 0x5f87d7, 0x5f87ff, # 6
# 0x5faf00, 0x5faf5f, 0x5faf87, 0x5fafaf, 0x5fafd7, 0x5fafff, 0x5fd700, 0x5fd75f, 0x5fd787, 0x5fd7af, # 7
# 0x5fd7d7, 0x5fd7ff, 0x5fff00, 0x5fff5f, 0x5fff87, 0x5fffaf, 0x5fffd7, 0x5fffff, 0x870000, 0x87005f, # 8
# 0x870087, 0x8700af, 0x8700d7, 0x8700ff, 0x875f00, 0x875f5f, 0x875f87, 0x875faf, 0x875fd7, 0x875fff, # 9
# 0x878700, 0x87875f, 0x878787, 0x8787af, 0x8787d7, 0x8787ff, 0x87af00, 0x87af5f, 0x87af87, 0x87afaf, # 10
# 0x87afd7, 0x87afff, 0x87d700, 0x87d75f, 0x87d787, 0x87d7af, 0x87d7d7, 0x87d7ff, 0x87ff00, 0x87ff5f, # 11
# 0x87ff87, 0x87ffaf, 0x87ffd7, 0x87ffff, 0xaf0000, 0xaf005f, 0xaf0087, 0xaf00af, 0xaf00d7, 0xaf00ff, # 12
# 0xaf5f00, 0xaf5f5f, 0xaf5f87, 0xaf5faf, 0xaf5fd7, 0xaf5fff, 0xaf8700, 0xaf875f, 0xaf8787, 0xaf87af, # 13
# 0xaf87d7, 0xaf87ff, 0xafaf00, 0xafaf5f, 0xafaf87, 0xafafaf, 0xafafd7, 0xafafff, 0xafd700, 0xafd75f, # 14
# 0xafd787, 0xafd7af, 0xafd7d7, 0xafd7ff, 0xafff00, 0xafff5f, 0xafff87, 0xafffaf, 0xafffd7, 0xafffff, # 15
# 0xd70000, 0xd7005f, 0xd70087, 0xd700af, 0xd700d7, 0xd700ff, 0xd75f00, 0xd75f5f, 0xd75f87, 0xd75faf, # 16
# 0xd75fd7, 0xd75fff, 0xd78700, 0xd7875f, 0xd78787, 0xd787af, 0xd787d7, 0xd787ff, 0xd7af00, 0xd7af5f, # 17
# 0xd7af87, 0xd7afaf, 0xd7afd7, 0xd7afff, 0xd7d700, 0xd7d75f, 0xd7d787, 0xd7d7af, 0xd7d7d7, 0xd7d7ff, # 18
# 0xd7ff00, 0xd7ff5f, 0xd7ff87, 0xd7ffaf, 0xd7ffd7, 0xd7ffff, 0xff0000, 0xff005f, 0xff0087, 0xff00af, # 19
# 0xff00d7, 0xff00ff, 0xff5f00, 0xff5f5f, 0xff5f87, 0xff5faf, 0xff5fd7, 0xff5fff, 0xff8700, 0xff875f, # 20
# 0xff8787, 0xff87af, 0xff87d7, 0xff87ff, 0xffaf00, 0xffaf5f, 0xffaf87, 0xffafaf, 0xffafd7, 0xffafff, # 21
# 0xffd700, 0xffd75f, 0xffd787, 0xffd7af, 0xffd7d7, 0xffd7ff, 0xffff00, 0xffff5f, 0xffff87, 0xffffaf, # 22
# 0xffffd7, 0xffffff, 0x080808, 0x121212, 0x1c1c1c, 0x262626, 0x303030, 0x3a3a3a, 0x444444, 0x4e4e4e, # 23
# 0x585858, 0x626262, 0x6c6c6c, 0x767676, 0x808080, 0x8a8a8a, 0x949494, 0x9e9e9e, 0xa8a8a8, 0xb2b2b2, # 24
# 0xbcbcbc, 0xc6c6c6, 0xd0d0d0, 0xdadada, 0xe4e4e4, 0xeeeeee # 25
+15 -3
View File
@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
# 1. Installer Mise s'il n'est pas présent # 1. Installer Mise s'il n'est pas présent
if ! command -v mise &>/dev/null; then if ! command -v mise &>/dev/null; then
@@ -6,7 +6,7 @@ if ! command -v mise &>/dev/null; then
curl https://mise.run | sh curl https://mise.run | sh
# S'assurer que mise est immédiatement accessible dans la session du script # S'assurer que mise est immédiatement accessible dans la session du script
export PATH="$HOME/.local/bin:$PATH" export PATH="${HOME}/.local/bin:$PATH"
fi fi
# 2. Lancer le bootstrap # 2. Lancer le bootstrap
@@ -17,6 +17,18 @@ fi
# 3. Installer tous les outils déclarés dans ~/.config/mise/config.toml # 3. Installer tous les outils déclarés dans ~/.config/mise/config.toml
if command -v mise &>/dev/null; then if command -v mise &>/dev/null; then
echo "⚙️ Installation des outils via Mise (dont chezmoi si désiré)..." echo " Installation des outils via Mise (dont chezmoi si désiré)..."
mise install --yes mise install --yes
fi fi
# 4. Nettoyage du binaire chezmoi (maintenant géré par mise)
CURRENT_CHEZMOI="$CHEZMOI_EXECUTABLE" # Chezmoi expose la variable $CHEZMOI_EXECUTABLE pointant vers le binaire en cours d'exécution
MISE_CHEZMOI_BIN="$(mise where chezmoi)/chezmoi"
if [ "$CURRENT_CHEZMOI" != "$MISE_CHEZMOI_BIN" ]; then
echo "🧹 Nettoyage du binaire chezmoi temporaire ($CURRENT_CHEZMOI)..."
rm -fv "$CURRENT_CHEZMOI"
echo "✅ Désormais, seul le chezmoi de mise est actif."
else
echo "✅ La commande chezmoi est déjà gérée par mise."
fi
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/env bash
# 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"
if command -v mise &>/dev/null; then
echo "✏️ Modification de la configuration mise détectée."
echo
echo "🚀 Mise bootstrap..."
mise bootstrap --yes
echo
echo "⚡ Mise install..."
mise install --yes
else
echo "⚠️ mise n'est pas installé sur ce système. Impossible de lancer l'installation automatique des outils."
fi
+1
View File
@@ -0,0 +1 @@
{{ .chezmoi.homeDir }}/.config/bash/bash_logout
+1
View File
@@ -0,0 +1 @@
{{ .chezmoi.homeDir }}/.config/bash/bash_profile
+1
View File
@@ -0,0 +1 @@
{{ .chezmoi.homeDir }}/.config/bash/bashrc
+1
View File
@@ -0,0 +1 @@
{{ .chezmoi.homeDir }}/.config/vim/gvimrc
+1
View File
@@ -0,0 +1 @@
{{ .chezmoi.homeDir }}/.config/screen/screenrc
+1
View File
@@ -0,0 +1 @@
{{ .chezmoi.homeDir }}/.config/vim/vimpagerrc
+1
View File
@@ -0,0 +1 @@
{{ .chezmoi.homeDir }}/.config/vim/vimrc