Compare commits

112 Commits
Author SHA1 Message Date
xavier f574984c60 Some changes for macos 2026-07-23 00:37:58 +02:00
xavier 4f004fee15 feat(rc): Improve fzf configuration 2026-07-22 23:29:41 +02:00
xavier 2d8b9a5309 feat(profile): use existing helpers to manage profile files (just like rc ones) 2026-07-22 22:19:07 +02:00
xavier ee5e92e0a4 feat(profile): change LANG value to something more standard 2026-07-22 22:17:50 +02:00
xavier 32c0b021c5 feat(rc): Add preference for starship prompt over powerline-go 2026-07-16 19:00:51 +02:00
xavier f2c78152cc feat(rc): Add support for vivid tool to beautify LS_COLORS 2026-07-16 18:54:01 +02:00
xavier 7e007b5b0d feat(rc): Fix prompt choice 2026-07-16 18:47:44 +02:00
xavier 76ce8a4758 feat(rc): Add support for vivid tool 2026-07-15 19:36:34 +02:00
xavier e8eba3619a feat: Move prefered apps logic from profile.d to rc.d
Without this, mise is not yet activated when evaluating the prefered
apps scripts and mise installed apps are considered not installed (for
exemple nvim for the EDITOR variable)
2026-07-14 18:20:41 +02:00
xavier d6290589cf feat: Remove inputrc file that is now managed by chezmoi 2026-07-14 00:31:42 +02:00
xavier e40045aa99 feat: Improve way to determine and set the path containing the bash config
Before this:
The bash config repo needed to be cloned in ~/.bash/ to work properly

After this:
The bash config repo can be move anywhere (for exemple in
~/.config/bash).
The create-links.bash helper is adapted to this new behaviour.
So you can clone anywhere and call create-links.bash from anywhere. Then
the symbolic links in your home should be good and the config would load
correctly.
2026-07-13 12:44:45 +02:00
Xavier Logerais 6f7aec9147 feat(libs): Improve colors lib 2025-11-21 19:44:12 +00:00
Xavier Logerais c4a93c7647 feat(rc): Smart titles for tmux windows 2025-11-21 19:43:35 +00:00
Xavier Logerais 8d98936961 feat: Add fzf-git as 3rd party module 2025-11-21 19:42:04 +00:00
xavier 5f8997f418 chore(rc): fzf integration config spacing rework 2025-11-03 01:34:40 +01:00
xavier 693d20f2cf feat(aliases): Improve aliases for kitty 2025-11-03 01:33:44 +01:00
xavier db981696b6 fix: activate mise early
because some tools set in rc.d (like fzf, ...) depends on it
2025-11-03 01:24:52 +01:00
xavier 594a212ebc chore(rc): rework fzf integration config 2025-11-01 12:53:41 +01:00
xavier 8fef2338eb feat(aliases): Add aliases for kitty 2025-10-24 12:48:22 +02:00
xavier ea9139f77f feat(completion): Add autocompletion for tea
`tea` is the command line tool for Gitea.
2025-10-02 22:41:47 +02:00
xavier 15a56af2c8 chores(completion): spaces 2025-10-02 22:40:57 +02:00
xavier a56929aa8b feat(aliases): Add some aliases for cd 2025-09-28 19:03:11 +02:00
xavier 526e6cae26 feat(functions): Add a function to start and log into the devenv container 2025-09-28 17:55:51 +02:00
xavier 1a003a9d72 feat(bashrc): Add management for functions 2025-09-28 17:55:51 +02:00
xavier 2b51dfd554 feat(bashrc): remove z.sh third party library
Better use zoxide (See https://github.com/ajeetdsouza/zoxide).
(It is available with mise. Just `mise use -g zoxide`.)
2025-09-28 17:52:54 +02:00
xavier d078a852df fix(profile): fix keychain inheritance 2025-09-28 17:50:30 +02:00
Xavier Logerais 2aaf279c9e feat(libs): Prise en compte de tmux dans la fonction term_change_title 2025-03-27 11:35:46 +00:00
Xavier Logerais 5b0012ffc1 feat(rc): Ajout du support de fzf 2025-03-21 09:37:27 +00:00
Xavier Logerais af4fb0e5fa feat(rc): Ajout de l'outil zoxide 2025-03-15 22:37:34 +00:00
xavier 8fc95d8e90 feat(completion): Ajout de la completion pour l'outil chezmoi 2025-03-13 00:20:24 +01:00
xavier a5dd0be77c feat(aliases): Ajout d'un alias pour lsd
Ajout de l'alias lt pour `lsd --tree` qui est un équivalent de la
commande `tree`.
2025-03-13 00:20:24 +01:00
xavier 981430eef1 feat(completion): Amélioration de la complétion pour mise 2025-03-13 00:20:24 +01:00
xavier c7be86ecb6 fix: fix submodule directory 2025-03-13 00:20:24 +01:00
Xavier Logeraisandxavier 611bab8f2f feat: Add 3rd party libs 2025-03-13 00:20:24 +01:00
Xavier Logeraisandxavier 333a7d8b46 feat: Ajout des répertoires rc.before.d et rc.after.d 2025-03-13 00:20:24 +01:00
Xavier Logeraisandxavier c53e964ce9 feat: Améliore la gestion pour sourcer le contenu des sous-répertoires (*.d) 2025-03-13 00:20:24 +01:00
xavier 5cb8b5dfaf feat(rc): Amélioration de la gestion de tmux 2025-03-13 00:19:53 +01:00
Xavier Logerais 08916f80b6 feat(completion): Ajout du support de minikube 2025-01-17 09:07:56 +00:00
Xavier Logerais 9324547f92 feat(completion): Ajout du support de k3d 2025-01-17 09:07:23 +00:00
Xavier Logerais 1c34023066 feat(completion): Ajout du support de flux 2025-01-17 09:07:04 +00:00
Xavier Logerais cd341b7d80 feat(rc): Amélioration de la gestion de anyenv 2025-01-17 09:05:56 +00:00
Xavier Logerais af5d43fb36 feat(rc): Amélioration de la gestion de tmux 2025-01-17 09:05:09 +00:00
Xavier Logerais ddd9509d74 feat(rc): Amélioration de la gestion de mcfly 2025-01-17 09:04:46 +00:00
Xavier Logerais 30597e31ed feat(profile): Amélioration de la gestion de keychain 2025-01-17 09:03:53 +00:00
Xavier Logerais ebb0139dbe feat(profile): Amélioration de la gestions des applications par défaut 2025-01-17 09:03:19 +00:00
Xavier Logerais 3759b1b0ac feat: Amélioration des aliases pour kubectl 2025-01-17 08:59:20 +00:00
Xavier Logerais 5f0ab15c42 feat: Ajout d'un alias automatique pour bat (improved cat) 2025-01-17 08:55:27 +00:00
Xavier Logerais 9e5fcc649e feat: Modification completion aws 2024-07-29 08:19:18 +00:00
Xavier Logerais 5d71c2aa96 feat: Ajout completion pour glab 2024-07-29 08:18:30 +00:00
Xavier Logerais af4807ed97 feat: Amélioration de la librairie colors 2024-07-19 10:32:08 +00:00
Xavier Logerais f41e1c2411 fix: Meilleure gestion de Nix dans le bash_profile 2024-07-18 09:26:38 +00:00
Xavier Logerais c2c0a11402 feat: Corrections shellcheck 2024-06-28 10:28:56 +00:00
Xavier Logerais 268ad94470 feat: Désactivation de librairies obsolettes 2024-06-28 10:28:18 +00:00
Xavier Logerais a6905b9489 feat: Suppression completion ssh obsolete 2024-06-28 09:44:32 +00:00
Xavier Logerais 84ffaf33d2 feat: Ajout alias pour taskwarrior-tui 2024-06-28 09:00:56 +00:00
Xavier Logerais ce15f00b6f feat: Ajout automatique de la compltetion pour les aliases si _complete_alias est disponible 2024-06-28 08:32:11 +00:00
Xavier Logerais cb323ec6c0 feat: Utilise nullglob pour éviter les erreurs de répertoires vides 2024-06-28 08:31:10 +00:00
Xavier Logerais 0c749a5fd0 feat: Définit des aliases plus génériques pour cd 2024-06-28 08:29:40 +00:00
Xavier Logerais 1338369be7 feat: Ajout completion pour kind 2024-06-24 09:24:49 +00:00
Xavier Logerais 9535c409e7 feat: Ajout completion pour podman 2024-06-24 09:24:32 +00:00
Xavier Logerais a5671801de fix: Annulation déplacement de asdf et mise vers profile.d 2024-06-21 17:15:19 +00:00
Xavier Logerais df6de3cdbb feat: Réécriture gestion des prompts dans rc.d 2024-06-21 16:49:23 +00:00
Xavier Logerais f651195b22 fix: Correction activation ble.sh 2024-06-21 16:48:06 +00:00
Xavier Logerais 640df9986c fix: Correction gestion direnv lorsqu'il n'est pas installé via asdf 2024-06-21 16:47:07 +00:00
Xavier Logerais 2140f57862 feat: Ajout support ble.sh installé depuis Nix 2024-06-21 13:23:29 +00:00
Xavier Logerais 167be1c6a1 feat: Ajout support asdf-vm installé depuis Nix 2024-06-21 13:22:52 +00:00
Xavier Logerais 0b8bba8c9b feat: Meilleure gestion des applications par défaut 2024-06-21 13:21:56 +00:00
Xavier Logerais 8fcea3473a chore: Nettoyage configuration krew dans rc.d 2024-06-20 09:51:04 +00:00
Xavier Logerais aa9835f8bd feat: shellcheck 2024-06-19 09:19:05 +00:00
Xavier Logerais c9411bb43d feat: Ajout de krew dans $PATH si nécéssaire 2024-06-18 12:45:37 +00:00
Xavier Logerais c9bb673a15 feat: Ajout completion pour mise 2024-06-18 12:44:05 +00:00
Xavier Logerais ee3626059c feat: Déplacement initialisation mise de rc.d vers profile.d 2024-06-18 12:43:23 +00:00
Xavier Logerais 9fddab2e35 feat: Déplacement initialisation asdf de rc.d vers profile.d 2024-06-18 12:42:52 +00:00
Xavier Logerais 2fa4a55223 feat: Ajout d'aliases pour kubectl 2024-06-18 12:30:05 +00:00
Xavier Logerais 7f3f24e14d feat: Ajout support outil mise-en-place (https://mise.jdx.dev/) 2024-06-13 10:57:24 +02:00
Xavier Logerais 45914bdb5a feat: Amélioration configuration McFly 2024-06-13 10:56:39 +02:00
xavier 710ad109cc feat: Amélioration configuration pour Taskwarrior 2024-02-29 15:19:54 +01:00
xavier 0b9532e95b feat(libs): Amélioration de la fonction genpasswd 2024-01-27 19:25:26 +01:00
xavier 704c4cdd9e fix(libs): Correction de la fonction _prompt_command_add 2024-01-27 19:23:31 +01:00
xavier df8172f138 feat(aliases): Amélioration des aliases pour lazygit et lsd 2024-01-27 19:14:59 +01:00
xavier 66c57a0a51 fix: Fix PROMPT_COMMAND management 2024-01-27 19:04:33 +01:00
Xavier Logerais fe6642402b Merge branch 'master' of https://github.com/xlogerais/config-bash 2023-11-02 15:19:40 +01:00
Xavier Logerais a50a9359ad feat(aliases): désactivation de l'alias vim pointant vers lvim 2023-11-02 15:14:12 +01:00
Xavier Logerais 2fe787a370 feat(rc): Ajout d'une fonction de selection des branches git avec fzf 2023-11-02 15:12:25 +01:00
Xavier Logerais d4c31d32d9 feat(aliases): Modification des aliases pour git 2023-11-02 15:11:48 +01:00
Xavier Logerais 5aad94e71b feat(aliases): Ajout alias pour lazygit 2023-11-02 15:09:54 +01:00
Xavier Logerais 33c51aa0a6 feat(aliases): Ajout alias pour lsd 2023-11-02 15:09:28 +01:00
xavier 7836bb1761 feat: Ajout alias pour gopass 2023-08-31 13:16:03 +00:00
xavier 6aec2fe66f feat(profile): Remove xdg config
Remove xdg specific config that break some apps (firefox, chromium,...)
on Ubuntu 22.04+
2023-08-27 18:16:52 +02:00
xavier 07756ac711 feat(rc): Add support for broot 2023-08-27 16:35:35 +02:00
xavier 8d5f8950db feat(aliases): Add condition for fun/starwars 2023-08-27 16:33:47 +02:00
xavier c04d8876a3 feat(rc): Improve powerline prompt 2023-08-27 16:31:17 +02:00
xavier c8442dabc0 feat(aliases): Delete obsolete aliases for mutt 2023-08-27 16:30:13 +02:00
xavier 7176baf0bc Merge branch 'master' of https://gogs.logerais.com/xavier/config-bash 2023-04-03 10:46:33 +02:00
xavier 18ce1f6d7e feat: Support completion poetry 2023-04-03 10:45:44 +02:00
xavier 058c4f473c feat: support lvim/nvim pour les alias vim 2023-04-03 10:45:05 +02:00
xavier 1e20a91e84 feat: Ajout support broot 2023-04-03 10:43:57 +02:00
xavier 0e58fa99f4 feat: refacto aliases/completion kubectl, helm, stern 2023-04-03 10:38:42 +02:00
xavier ece4edeb18 feat: Improve powerline support 2022-12-13 12:08:41 +01:00
Xavier Logerais 2cae0f7d03 feat: improve powerline support 2022-12-13 12:04:08 +01:00
xavier 217eb70b58 update 2022-09-22 18:32:56 +02:00
xavier e2920cab80 feat: Add alias for lsd 2022-05-21 15:04:45 +02:00
xavier 2ecb4c53fa feat: improve config for powerline, mcfly and (n)vim 2022-05-21 02:41:24 +02:00
xavier c58348a679 Merge branch 'master' of github.com:xlogerais/config-bash 2021-05-02 21:45:19 +02:00
xavier ba9ad2784c feat: update rc.d/prompt 2021-05-02 21:44:06 +02:00
xavier a6948a056a fix: move asdf and direnv from profile.d back to rc.d 2021-05-02 21:15:29 +02:00
xavier 554f8a4db8 feat: add direnv support 2021-05-02 00:26:45 +02:00
xavier a67d6448e9 feat: move asdf to profile.d 2021-05-02 00:26:28 +02:00
xavier 616bbba449 feat: remove unnecessary exec flag on rc.d files 2021-04-23 12:58:26 +02:00
xavier b1b8a4b3f9 feat: add support for some kubernetes tools 2021-04-23 12:57:08 +02:00
xavier 5904b2693a feat: Add asdf 2021-04-03 19:36:17 +02:00
xavier cc25e775d3 Add config for kubectl and krew 2020-11-18 12:44:46 +01:00
79 changed files with 877 additions and 348 deletions
+9
View File
@@ -0,0 +1,9 @@
[submodule "3rd-party/z"]
path = 3rd-party/z
url = https://github.com/rupa/z.git
[submodule "3rd-party/complete-alias"]
path = 3rd-party/complete-alias
url = https://github.com/cykerway/complete-alias.git
[submodule "3rd-party/junegunn/fzf-git.sh"]
path = 3rd-party/junegunn/fzf-git.sh
url = https://github.com/junegunn/fzf-git.sh
Vendored Submodule
+1
+44
View File
@@ -0,0 +1,44 @@
#!/bin/bash
function basedir() {
(cd "$(dirname \"$-2\")" && pwd)
}
function _source_file_if_exists() {
if [ -r "$1" ]; then
test -n "$DEBUG_BASHRC" && echo "-- Sourcing file $1"
source "$1"
fi
}
function _source_dir_files() {
if [ -d "$1" ]; then
test -n "$DEBUG_BASHRC" && echo "-- Sourcing files in directory $1"
# Safe loops for empty dirs
shopt -s nullglob
for file in "$1"/*; do
if [ -e "$file" ]; then
test -n "$DEBUG_BASHRC" && echo " * sourcing file $file"
source "$file"
fi
done
# Restore option nullglob to normal
shopt -u nullglob
fi
}
# Source : https://superuser.com/questions/39751/add-directory-to-path-if-its-not-already-there
_path_add() {
if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
PATH="${PATH:+"$PATH:"}$1"
fi
}
_prompt_command_add() {
if [ -n "$1" ] && [[ ":$PROMPT_COMMAND:" != *":$1:"* ]]; then
PROMPT_COMMAND="${PROMPT_COMMAND:+"$PROMPT_COMMAND;"}$1"
fi
}
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v bat &>/dev/null); then
alias cat=bat
fi
+7 -6
View File
@@ -1,6 +1,7 @@
alias cdrepo='cd ~/repositories/'
alias cddns='cd ~/repositories/dns && git pull'
alias cdfai='cd ~/repositories/fai && git pull'
alias cdpuppet='cd ~/repositories/puppet && git pull'
alias cdhiera='cd ~/repositories/hiera && git pull'
alias cdshinken='cd ~/repositories/shinken && git pull'
alias cdrepo='cd ~/Repositories/'
alias cdgithub='cd ~/Repositories/Github'
alias cdgitlab='cd ~/Repositories/Gitlab'
alias cdgitea='cd ~/Repositories/Gitea'
alias cdgh=cdgithub
alias cdgl=cdgitlab
alias cdgt=cdgitea
+1 -1
View File
@@ -1,7 +1,7 @@
#!/bin/bash
# Colors
alias ls='ls --color=auto'
alias ls='ls -G'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
+4 -1
View File
@@ -3,4 +3,7 @@
# Fun
alias matrix='tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"'
alias starwars='beep -l 350 -f 392 -D 100 --new -l 350 -f 392 -D 100 --new -l 350 -f 392 -D 100 --new -l 250 -f 311.1 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 350 -f 392 -D 100 --new -l 250 -f 311.1 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 700 -f 392 -D 100 --new -l 350 -f 587.32 -D 100 --new -l 350 -f 587.32 -D 100 --new -l 350 -f 587.32 -D 100 --new -l 250 -f 622.26 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 350 -f 369.99 -D 100 --new -l 250 -f 311.1 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 700 -f 392 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 392 -D 100 --new -l 25 -f 392 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 739.98 -D 100 --new -l 25 -f 698.46 -D 100 --new -l 25 -f 659.26 -D 100 --new -l 25 -f 622.26 -D 100 --new -l 50 -f 659.26 -D 400 --new -l 25 -f 415.3 -D 200 --new -l 350 -f 554.36 -D 100 --new -l 250 -f 523.25 -D 100 --new -l 25 -f 493.88 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 25 -f 440 -D 100 --new -l 50 -f 466.16 -D 400 --new -l 25 -f 311.13 -D 200 --new -l 350 -f 369.99 -D 100 --new -l 250 -f 311.13 -D 100 --new -l 25 -f 392 -D 100 --new -l 350 -f 466.16 -D 100 --new -l 250 -f 392 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 700 -f 587.32 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 392 -D 100 --new -l 25 -f 392 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 739.98 -D 100 --new -l 25 -f 698.46 -D 100 --new -l 25 -f 659.26 -D 100 --new -l 25 -f 622.26 -D 100 --new -l 50 -f 659.26 -D 400 --new -l 25 -f 415.3 -D 200 --new -l 350 -f 554.36 -D 100 --new -l 250 -f 523.25 -D 100 --new -l 25 -f 493.88 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 25 -f 440 -D 100 --new -l 50 -f 466.16 -D 400 --new -l 25 -f 311.13 -D 200 --new -l 350 -f 392 -D 100 --new -l 250 -f 311.13 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 300 -f 392.00 -D 150 --new -l 250 -f 311.13 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 700 -f 392'
if (command -v beep &> /dev/null)
then
alias starwars='beep -l 350 -f 392 -D 100 --new -l 350 -f 392 -D 100 --new -l 350 -f 392 -D 100 --new -l 250 -f 311.1 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 350 -f 392 -D 100 --new -l 250 -f 311.1 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 700 -f 392 -D 100 --new -l 350 -f 587.32 -D 100 --new -l 350 -f 587.32 -D 100 --new -l 350 -f 587.32 -D 100 --new -l 250 -f 622.26 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 350 -f 369.99 -D 100 --new -l 250 -f 311.1 -D 100 --new -l 25 -f 466.2 -D 100 --new -l 700 -f 392 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 392 -D 100 --new -l 25 -f 392 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 739.98 -D 100 --new -l 25 -f 698.46 -D 100 --new -l 25 -f 659.26 -D 100 --new -l 25 -f 622.26 -D 100 --new -l 50 -f 659.26 -D 400 --new -l 25 -f 415.3 -D 200 --new -l 350 -f 554.36 -D 100 --new -l 250 -f 523.25 -D 100 --new -l 25 -f 493.88 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 25 -f 440 -D 100 --new -l 50 -f 466.16 -D 400 --new -l 25 -f 311.13 -D 200 --new -l 350 -f 369.99 -D 100 --new -l 250 -f 311.13 -D 100 --new -l 25 -f 392 -D 100 --new -l 350 -f 466.16 -D 100 --new -l 250 -f 392 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 700 -f 587.32 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 392 -D 100 --new -l 25 -f 392 -D 100 --new -l 350 -f 784 -D 100 --new -l 250 -f 739.98 -D 100 --new -l 25 -f 698.46 -D 100 --new -l 25 -f 659.26 -D 100 --new -l 25 -f 622.26 -D 100 --new -l 50 -f 659.26 -D 400 --new -l 25 -f 415.3 -D 200 --new -l 350 -f 554.36 -D 100 --new -l 250 -f 523.25 -D 100 --new -l 25 -f 493.88 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 25 -f 440 -D 100 --new -l 50 -f 466.16 -D 400 --new -l 25 -f 311.13 -D 200 --new -l 350 -f 392 -D 100 --new -l 250 -f 311.13 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 300 -f 392.00 -D 150 --new -l 250 -f 311.13 -D 100 --new -l 25 -f 466.16 -D 100 --new -l 700 -f 392'
fi
+24 -24
View File
@@ -1,29 +1,29 @@
#!/bin/bash
# Git
if [ -x /usr/bin/git ]
then
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gca='git commit -a'
alias gu='git pull'
alias gp='git pull && git push'
alias gd='git diff'
alias gdc='git diff --cached'
alias gb='git branch'
alias gco='git checkout'
alias gw='git whatchanged'
alias gl='git log --graph'
if [ -x /usr/bin/git ]; then
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gca='git commit -a'
alias gf='git fetch'
alias gu='git pull'
alias gp='git pull && git push'
alias gd='git diff'
alias gdc='git diff --cached'
alias gb='git branch'
alias gco='git checkout'
alias gw='git whatchanged'
alias gl='git log --graph'
alias gstatus='git status'
alias glog='git log'
alias glast='git last'
alias gshow='git show'
alias gdiff='git diff'
alias gcommit='git commit'
alias gcommitall='git commit --all'
alias greset='git reset'
alias gpull='git pull'
alias gpush='git pull && git push'
alias gstatus='git status'
alias glog='git log'
alias glast='git last'
alias gshow='git show'
alias gdiff='git diff'
alias gcommit='git commit'
alias gcommitall='git commit --all'
alias greset='git reset'
alias gpull='git pull'
alias gpush='git pull && git push'
fi
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
if (command -v 'gopass' && ! command -v pass ) &> /dev/null
then
alias pass='gopass'
fi
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
# [ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh"
if [ -n "${KITTY_INSTALLATION_DIR}" ]; then
alias ssh="kitty +kitten ssh"
alias icat="kitty +kitten icat"
fi
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
if (command -v kubectl &>/dev/null); then
# create some usefull aliases
alias k="kubectl"
alias kg="kubectl get"
alias kd="kubectl describe"
alias ks="kubectl --namespace kube-system"
alias ksg="kubectl --namespace kube-system get"
alias ksd="kubectl --namespace kube-system describe"
alias kga="kubectl get --all-namespaces"
alias kuc="kubectl config unset current-context"
alias kun="kubectl config set-context --current --namespace="
alias kgnodes="kubectl get nodes --label-columns topology.kubernetes.io/region,topology.kubernetes.io/zone"
alias kgmasters="kubectl get nodes --selector 'node-role.kubernetes.io/control-plane' --label-columns topology.kubernetes.io/region,topology.kubernetes.io/zone"
alias kgworkers="kubectl get nodes --selector '!node-role.kubernetes.io/control-plane' --label-columns topology.kubernetes.io/region,topology.kubernetes.io/zone"
alias kgtaints="kubectl get nodes --output custom-columns=NAME:.metadata.name,TAINTS:.spec.taints"
fi
+6
View File
@@ -0,0 +1,6 @@
#/bin/bash
if (command -v lazygit &> /dev/null)
then
alias lg=lazygit
fi
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
if (command -v lsd &> /dev/null)
then
alias ls='lsd'
alias lt='lsd --tree'
fi
-9
View File
@@ -1,9 +0,0 @@
#!/bin/bash
if (which mutt &> /dev/null); then
if [ "$TERM" = "rxvt-unicode" ]; then
alias mutt="TERM=rxvt-unicode-256color SOCKS_SERVER=10.181.176.208:1080 socksify mutt"
else
alias mutt="SOCKS_SERVER=10.181.176.208:1080 socksify mutt"
fi
fi
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
# Vim Editor
if [ -x ~/AppImages/nvim.appimage ]
then
alias nvim='~/AppImages/nvim.appimage'
fi
+7 -1
View File
@@ -1,6 +1,7 @@
#
# Aliases for taskwarrior
#
if (which task &> /dev/null)
if (command -v task &> /dev/null)
then
alias t='task'
alias tl='task list'
@@ -8,3 +9,8 @@ then
alias td='task done'
alias ts='task sync'
fi
if (command -v taskwarrior-tui &> /dev/null)
then
alias tu='taskwarrior-tui'
fi
+15 -4
View File
@@ -1,9 +1,20 @@
#!/bin/bash
# Vim Editor
if [ -x /usr/bin/vim ]
if (command -v nvim &> /dev/null)
then
alias vi='vim -p'
alias view='vim -R'
alias vless='vim -u /usr/share/vim/vim74/macros/less.vim -c "colorscheme mustangpp"'
alias vim=nvim
fi
# if (command -v lvim &>/dev/null); then
# alias vim=lvim
# elif (command -v nvim &>/dev/null); then
# alias vim=nvim
# fi
# if [ -x /usr/bin/vim ]
# then
# alias vi='vim -p'
# alias view='vim -R'
# alias vless='vim -u /usr/share/vim/vim*/macros/less.vim'
# fi
+45 -3
View File
@@ -1,8 +1,50 @@
#!/bin/bash
if [ -f $HOME/.bash/profile ]; then source $HOME/.bash/profile; fi
if [ -d $HOME/.bash/profile ]; then for file in $(ls $HOME/.bash/profile/*); do source $file; done; fi
if [ -d $HOME/.bash/profile.d ]; then for file in $(ls $HOME/.bash/profile.d/*); do source $file; done; fi
if [ -f "${HOME}"/.nix-profile/etc/profile.d/hm-session-vars.sh ]; then
source "${HOME}"/.nix-profile/etc/profile.d/hm-session-vars.sh
fi
# Define the path to the directory of this file if not already set
if [ -z "${BASH_CONFIG_DIR}" ]; then
# Define a function to get the real path of a script
# (works for most cases : either sourced script or executed script, posix shells)
get_script_dir() {
local target
# Si appelé depuis un script (Bash), on regarde qui a appelé la fonction (${BASH_SOURCE[1]})
# Si la fonction est exécutée directement dans le terminal, on se rabat sur ${BASH_SOURCE[0]} ou ${0}
if [ -n "${BASH_SOURCE}" ]; then
if [ "${#BASH_SOURCE[@]}" -gt 1 ]; then
target="${BASH_SOURCE[1]}"
else
target="${BASH_SOURCE[0]}"
fi
elif [ -n "${ZSH_VERSION}" ]; then
target="${(%):-%x}"
else
target="${0}"
fi
# Résolution des liens symboliques POSIX
while [ -L "${target}" ]; do
local link
link=$(readlink "${target}")
case "${link}" in
/*) target="${link}" ;;
*) target="$(dirname "${target}")/${link}" ;;
esac
done
(cd "$(dirname "${target}")" && pwd -P)
}
BASH_CONFIG_DIR=$(get_script_dir)
fi
# Source some helpers functions
source "${BASH_CONFIG_DIR}/_helpers.bash"
_source_file_if_exists "${BASH_CONFIG_DIR}/profile"
_source_dir_files "${BASH_CONFIG_DIR}/profile"
_source_dir_files "${BASH_CONFIG_DIR}/profile.d"
# This file is sourced by bash for login shells. The following line
# runs your .bashrc and is recommended by the bash info pages.
+74 -12
View File
@@ -6,28 +6,90 @@
# Test for an interactive shell. There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
if [[ $- != *i* ]] ; then
if [[ $- != *i* ]]; then
# Shell is non-interactive. Be done now!
return
fi
# DEBUG_BASHRC=true
# Define the path to the directory of this file if not already set
if [ -z "${BASH_CONFIG_DIR}" ]; then
# Define a function to get the real path of a script
# (works for most cases : either sourced script or executed script, posix shells)
get_script_dir() {
local target
# Si appelé depuis un script (Bash), on regarde qui a appelé la fonction (${BASH_SOURCE[1]})
# Si la fonction est exécutée directement dans le terminal, on se rabat sur ${BASH_SOURCE[0]} ou ${0}
if [ -n "${BASH_SOURCE}" ]; then
if [ "${#BASH_SOURCE[@]}" -gt 1 ]; then
target="${BASH_SOURCE[1]}"
else
target="${BASH_SOURCE[0]}"
fi
elif [ -n "${ZSH_VERSION}" ]; then
target="${(%):-%x}"
else
target="${0}"
fi
# Résolution des liens symboliques POSIX
while [ -L "${target}" ]; do
local link
link=$(readlink "${target}")
case "${link}" in
/*) target="${link}" ;;
*) target="$(dirname "${target}")/${link}" ;;
esac
done
(cd "$(dirname "${target}")" && pwd -P)
}
BASH_CONFIG_DIR=$(get_script_dir)
fi
# Source some helpers functions
source "${BASH_CONFIG_DIR}/_helpers.bash"
# Source custom libs
if [ -d $HOME/.bash/libs ]; then for lib in $(ls $HOME/.bash/libs/*.bash); do source $lib; done; fi
_source_dir_files "${BASH_CONFIG_DIR}"/libs
# Source 3rd party libs if they exists
_source_file_if_exists "${BASH_CONFIG_DIR}/3rd-party/complete-alias/complete_alias"
_source_file_if_exists "${BASH_CONFIG_DIR}/3rd-party/junegunn/fzf-git.sh/fzf-git.sh"
# Early customization
_source_dir_files "${BASH_CONFIG_DIR}"/rc.before.d
# Source rc.d/*
if [ -d $HOME/.bash/rc.d ]; then for file in $(ls $HOME/.bash/rc.d/*); do source $file; done; fi
_source_dir_files "${BASH_CONFIG_DIR}"/rc
_source_dir_files "${BASH_CONFIG_DIR}"/rc.d
# Source functions definitions
_source_file_if_exists ~/.bash_functions
_source_file_if_exists "${BASH_CONFIG_DIR}"/functions
_source_dir_files "${BASH_CONFIG_DIR}"/functions
_source_dir_files "${BASH_CONFIG_DIR}"/functions.d
# Source alias definitions
if [ -f $HOME/.bash_aliases ]; then source $HOME/.bash_aliases; fi
if [ -f $HOME/.bash/aliases ]; then source $HOME/.bash/aliases; fi
if [ -d $HOME/.bash/aliases ]; then for file in $(ls $HOME/.bash/aliases/*); do source $file; done; fi
if [ -d $HOME/.bash/aliases.d ]; then for file in $(ls $HOME/.bash/aliases.d/*); do source $file; done; fi
_source_file_if_exists ~/.bash_aliases
_source_file_if_exists "${BASH_CONFIG_DIR}"/aliases
_source_dir_files "${BASH_CONFIG_DIR}"/aliases
_source_dir_files "${BASH_CONFIG_DIR}"/aliases.d
# Source bash completion definitions
for file in /etc/bash*completion /etc/profile.d/bash*completion* ; do source $file ; done
#for file in /etc/bash*completion /etc/profile.d/bash*completion* ; do source $file ; done
if [ -f $HOME/.bash_completion ]; then source $HOME/.bash_completion; fi
if [ -f $HOME/.bash/completion ]; then source $HOME/.bash/completion; fi
if [ -d $HOME/.bash/completion ]; then for file in $(ls $HOME/.bash/completion/*); do source $file; done; fi
if [ -d $HOME/.bash/completion.d ]; then for file in $(ls $HOME/.bash/completion.d/*); do source $file; done; fi
_source_file_if_exists ~/.bash_completion
_source_file_if_exists "${BASH_CONFIG_DIR}"/completion
_source_dir_files "${BASH_CONFIG_DIR}"/completion
_source_dir_files "${BASH_CONFIG_DIR}"/completion.d
_source_dir_files ~/.nix-profile/share/bash-completion/completions
if (command -v _complete_alias &>/dev/null); then
for alias in $(alias -p | awk '{print $2}' | awk -F= '{print $1}'); do complete -o default -F _complete_alias "$alias"; done
fi
# Late customization
_source_dir_files "${BASH_CONFIG_DIR}"/rc.after.d
+1 -2
View File
@@ -1,6 +1,5 @@
#!/bin/bash
if ( which aws && which aws_completer ) &> /dev/null
then
if (command -v aws && command -v aws_completer) &>/dev/null; then
complete -C aws_completer aws
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v chezmoi &>/dev/null); then
source <(chezmoi completion bash)
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v flux &>/dev/null); then
source <(flux completion bash)
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v glab &>/dev/null); then
source <(glab completion)
fi
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
if (command -v helm &> /dev/null)
then
source <( helm completion bash )
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v k3d &>/dev/null); then
source <(k3d completion bash)
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v kind &>/dev/null); then
source <(kind completion bash)
fi
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/bash
if ( which kubectl ) &> /dev/null
if (command -v kubectl &> /dev/null)
then
source <(kubectl completion bash)
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v minikube &>/dev/null); then
source <(minikube completion bash)
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v mise &>/dev/null); then
source <(mise completion bash --include-bash-completion-lib)
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v podman &>/dev/null); then
source <(podman completion bash)
fi
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
if ( command -v poetry &> /dev/null )
then
source <(poetry completions bash)
fi
+7 -7
View File
@@ -1,10 +1,10 @@
#!/bin/bash
#SSH
if [ -e ~/.ssh/config ]; then
complete -W "$(cat ~/.ssh/config | egrep -i "^\s*host\s+[a-zA-Z]" | sed -e "s/^host\s*//i")" ssh
fi
if [ -e ~/.ssh/known_hosts ]; then
complete -W "$(cat ~/.ssh/known_hosts | cut -f 1 -d ' ' | sed -e s/,.*//g | uniq | grep -v "\[")" ssh
fi
#if [ -e ~/.ssh/config ]; then
# complete -W "$(cat ~/.ssh/config | egrep -i "^\s*host\s+[a-zA-Z]" | sed -e "s/^host\s*//i")" ssh
#fi
#
#if [ -e ~/.ssh/known_hosts ]; then
# complete -W "$(cat ~/.ssh/known_hosts | cut -f 1 -d ' ' | sed -e s/,.*//g | uniq | grep -v "\[")" ssh
#fi
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
if (command -v stern &> /dev/null)
then
source <(stern --completion bash)
fi
+7
View File
@@ -0,0 +1,7 @@
#
# Completion for taskwarrior
#
if (command -v task &> /dev/null)
then
complete -o nospace -F _task t
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v tea &>/dev/null); then
source <(tea completion bash)
fi
+38 -6
View File
@@ -1,11 +1,43 @@
#!/bin/bash
cd $HOME || exit 1
# Define the path to the directory of this file if not already set
if [ -z "${BASH_CONFIG_DIR}" ]; then
# Define a function to get the real path of a script
# (works for most cases : either sourced script or executed script, posix shells)
get_script_dir() {
local target
# Si appelé depuis un script (Bash), on regarde qui a appelé la fonction (${BASH_SOURCE[1]})
# Si la fonction est exécutée directement dans le terminal, on se rabat sur ${BASH_SOURCE[0]} ou ${0}
if [ -n "${BASH_SOURCE}" ]; then
if [ "${#BASH_SOURCE[@]}" -gt 1 ]; then
target="${BASH_SOURCE[1]}"
else
target="${BASH_SOURCE[0]}"
fi
elif [ -n "${ZSH_VERSION}" ]; then
target="${(%):-%x}"
else
target="${0}"
fi
CONFDIR=.bash
# Résolution des liens symboliques POSIX
while [ -L "${target}" ]; do
local link
link=$(readlink "${target}")
case "${link}" in
/*) target="${link}" ;;
*) target="$(dirname "${target}")/${link}" ;;
esac
done
ln -sf $CONFDIR/bash_profile .bash_profile
ln -sf $CONFDIR/bashrc .bashrc
ln -sf $CONFDIR/bash_logout .bash_logout
(cd "$(dirname "${target}")" && pwd -P)
}
BASH_CONFIG_DIR=$(get_script_dir)
fi
ln -sf $CONFDIR/inputrc .inputrc
cd "${HOME}" || exit 1
ln -sf "${BASH_CONFIG_DIR}"/bash_profile .bash_profile
ln -sf "${BASH_CONFIG_DIR}"/bashrc .bashrc
ln -sf "${BASH_CONFIG_DIR}"/bash_logout .bash_logout
ln -sf "${BASH_CONFIG_DIR}"/inputrc .inputrc
+18
View File
@@ -0,0 +1,18 @@
#!/bin/bash
function devenv() {
local status
# Get LXC container status
status=$(lxc info devenv | yq .Status)
# Start container if not running
if [ "${status}" != "RUNNING" ]; then lxc start devenv; fi
# Rename tmux window if inside tmux
if [ -n "$TMUX" ]; then tmux rename-window "devenv"; fi
# Login as user xavier
lxc exec devenv -- login -f xavier
}
-65
View File
@@ -1,65 +0,0 @@
# 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,5 +1,5 @@
#!/bin/bash
function basedir() {
echo $( cd $(dirname $0) && pwd )
(cd "$(dirname \"$-2\")" && pwd)
}
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
_path_add() {
if [ -d "$1" ] && [[ ":$PATH:" != *":$1:"* ]]; then
PATH="${PATH:+"$PATH:"}$1"
fi
}
# Source : https://superuser.com/questions/39751/add-directory-to-path-if-its-not-already-there
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
_prompt_command_add() {
if [ -n "$1" ] && [[ ":$PROMPT_COMMAND:" != *":$1:"* ]]; then
PROMPT_COMMAND="${PROMPT_COMMAND:+"$PROMPT_COMMAND;"}$1"
fi
}
export PROMPT_COMMAND
@@ -1,5 +1,7 @@
#!/bin/bash
which virsh || return &> /dev/null
hypervisor_connect() {
if [ -e "${1}" ]; then echo "Usage : $0 hypervisor_name_or_ip"; return 1; fi
+72 -73
View File
@@ -1,94 +1,93 @@
#!/bin/bash
#ANSI CODES
#Code Effect
#0 All attributes off
#1 Bold
#2 Faint
#3 Italic
#4 Underline
#5 Blink
#6 Rapid blink
#7 Reverse video
#8 Concealed
#30 Black foreground
#31 Red foreground
#32 Green foreground
#33 Yellow foreground
#34 Blue foreground
#35 Magenta foreground
#36 Cyan foreground
#37 White foreground
#40 Black background
#41 Red background
#42 Green background
#43 Yellow background
#44 Blue background
#45 Magenta background
#46 Cyan background
#47 White background
#48 Subscript
#49 Superscript
#Code Effect
#0 All attributes off
#1 Bold
#2 Faint
#3 Italic
#4 Underline
#5 Blink
#6 Rapid blink
#7 Reverse video
#8 Concealed
#30 Black foreground
#31 Red foreground
#32 Green foreground
#33 Yellow foreground
#34 Blue foreground
#35 Magenta foreground
#36 Cyan foreground
#37 White foreground
#40 Black background
#41 Red background
#42 Green background
#43 Yellow background
#44 Blue background
#45 Magenta background
#46 Cyan background
#47 White background
#48 Subscript
#49 Superscript
#bold_on=`escape 1m`
#bold_off=`escape 22m`
#blink_on=`escape 5m`
#blink_off=`escape 25m`
#reset=`escape 0m`
#T_ROWS=`tput lines` # Define current terminal dimension
#T_COLS=`tput cols` #+ in rows and columns.
#_UNDERLINE_ON=`tput smul` # turn on underline
#_UNDERLINE_OFF=`tput rmul` # turn off underline
#tput setf 4 # tput setf {fg color number}
#tput setb 2 # tput setb {bg color number}
#tput setf 4 # tput setf {fg color number}
#tput setb 2 # tput setb {bg color number}
#tput bold - Bold effect
#tput tsmi - Italic
#tput rev - Display inverse colors
#tput sgr0 - Reset everything
default='\E[39;49;00m'
bold='\E[1m'
italic='\E[3m'
underline='\E[4m'
blink='\E[5m'
# Affiche un message stylisé sur la sortie standard
function echo_bold { echo -e "\e[1m${*}\e[0m"; }
function echo_faint { echo -e "\e[2m${*}\e[0m"; }
function echo_italic { echo -e "\e[3m${*}\e[0m"; }
function echo_underline { echo -e "\e[4m${*}\e[0m"; }
function echo_blink { echo -e "\e[5m${*}\e[0m"; }
function echo_reverse { echo -e "\e[7m${*}\e[0m"; }
function echo_concealed { echo -e "\e[8m${*}\e[0m"; }
blackonwhite='\E[30;47m'
# Affiche un message informatif stylisé sur la sortie d'erreur
function echo_info { >&2 echo -e "\e[00;34;49m󰋼 ${*}\e[39;49;00m"; }
function echo_warning { >&2 echo -e "\e[00;33;49m ${*}\e[39;49;00m"; }
function echo_error { >&2 echo -e "\e[00;01;31;49m ${*}\e[39;49;00m"; }
function echo_success { >&2 echo -e "\e[00;01;32;49m ${*}\e[39;49;00m"; }
function echo_failed { >&2 echo -e "\e[00;01;31;49m✖ ${*}\e[39;49;00m"; }
#reset=`escape 0m`
#black='\E[30;47m'
#red='\E[31;47m'
#green='\E[32;47m'
#yellow='\E[33;47m'
#blue='\E[34;47m'
#magenta='\E[35;47m'
#cyan='\E[36;47m'
#white='\E[37;47m'
#bold_on=`escape 1m`
#bold_off=`escape 22m`
#blink_on=`escape 5m`
#blink_off=`escape 25m`
function echo_reverse
{
echo -ne $blackonwhite
echo -ne "$*"
echo -e $default
function echo_verbose {
if [ -n "${VERBOSE}" ]; then
echo_faint "${*}" >&2
fi
}
function echo_italic
{
echo -ne $italic
echo -ne "$*"
echo -e $default
function echo_debug {
if [ -n "${DEBUG}" ]; then
echo_faint "🐛 ${*}" >&2
fi
}
function echo_bold
{
echo -ne $bold
echo -ne "$*"
echo -e $default
}
function echo_underline
{
echo -ne $underline
echo -ne "$*"
echo -e $default
function echo_demo {
echo_bold bold
echo_faint faint
echo_italic italic
echo_underline underline
echo_blink blink
echo_reverse reverse
echo_concealed concealed
echo_info info
echo_warning warning
echo_error error
echo_success success
echo_failed failed
DEBUG=true echo_debug debug
}
+5 -5
View File
@@ -1,19 +1,19 @@
#!/bin/bash
note () {
note() {
# if file doesn't exist, create it
if [[ ! -f $HOME/.notes ]]; then
touch $HOME/.notes
touch "$HOME"/.notes
fi
if [[ $# -eq 0 ]]; then
# no arguments, print file
cat $HOME/.notes
cat "$HOME"/.notes
elif [[ "$1" == "-c" ]]; then
# clear file
echo "" > $HOME/.notes
echo "" >"$HOME"/.notes
else
# add all arguments to file
echo "$@" >> $HOME/.notes
echo "$@" >>"$HOME"/.notes
fi
}
+10 -8
View File
@@ -1,21 +1,23 @@
#!/bin/bash
encpasswd() {
local password_clear=$1
local password_md5hash=$(openssl passwd -1 $password_clear)
local password_sha1=$(echo -n $password_clear | openssl dgst -sha1)
local password_clear=$1
local password_md5hash=$(openssl passwd -1 "$password_clear")
local password_sha1=$(echo -n "$password_clear" | openssl dgst -sha1)
echo "Password : $password_clear"
echo "MD5HASH : $password_md5hash"
echo "SHA1 : $password_sha1"
}
genpasswd() {
local l=$1
[ "$l" == "" ] && l=12
local password_clear=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs)
local password_md5hash=$(openssl passwd -1 $password_clear)
local password_sha1=$(echo -n $password_clear | openssl dgst -sha1)
local l=$1
[ "$l" == "" ] && l=12
local password_clear=$(tr -dc A-Za-z0-9_ </dev/urandom | head -c "${l}" | xargs)
local password_md5hash=$(openssl passwd -1 "$password_clear")
local password_sha1=$(echo -n "$password_clear" | openssl dgst -sha1)
local password_base64=$(echo -n "$password_clear" | base64)
echo "Password : $password_clear"
echo "Base64 : $password_base64"
echo "MD5HASH : $password_md5hash"
echo "SHA1 : $password_sha1"
}
+3 -5
View File
@@ -1,14 +1,12 @@
#!/bin/bash
function ssh_clean_known_hosts ()
{
if [ -z "$1" ]
then
function ssh_clean_known_hosts() {
if [ -z "$1" ]; then
echo "No arguments given. Cleaning ~/.ssh/known_hosts"
sed -i -e '/no hostip for proxy command/ d' ~/.ssh/known_hosts
else
hostname=$1
ip=$(ssh admin dig +short $1)
ip=$(ssh admin dig +short "$1")
echo "Removing host ${hostname} from ~/.ssh/known_hosts"
sed -i -e "/${hostname}/ d" ~/.ssh/known_hosts
echo "Removing ip ${ip} from ~/.ssh/known_hosts"
+9 -10
View File
@@ -1,17 +1,16 @@
#!/bin/bash
function term_change_title
{
function term_change_title {
case $TERM in
# Change the window title of X terminals
xterm*|rxvt*|urxvt*|Eterm)
echo -ne "\033]0;${1}\007"
;;
# Change the window title of X terminals
xterm* | rxvt* | urxvt* | Eterm)
echo -ne "\033]0;${1}\007"
;;
# Change the window title of screen terminals
screen*)
echo -ne "\033k${1}\033\\"
;;
# Change the window title of screen terminals
screen* | tmux*)
echo -ne "\033k${1}\033\\"
;;
esac
}
-8
View File
@@ -1,8 +0,0 @@
#!/bin/bash
# Defined prefered applications
export TERMINAL=urxvtc
export PAGER=less
export EDITOR=vim
export BROWSER=surf
+2 -3
View File
@@ -1,6 +1,5 @@
#!/bin/bash
if $(which keychain &> /dev/null)
then
eval $(keychain --agents ssh,gpg --eval)
if (command -v keychain &>/dev/null); then
eval "$(keychain --inherit any --quiet --noask ~/.ssh/id_{rsa,ed25519})"
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v krew &>/dev/null); then
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
fi
+1 -1
View File
@@ -1,4 +1,4 @@
#!/bin/bash
# Define prefered LANG
export LANG=fr_FR.utf8
export LANG=fr_FR.UTF-8
-4
View File
@@ -1,4 +0,0 @@
#!/bin/bash
# Defined prefered applications
export XDG_RUNTIME_DIR=$HOME/.cache
View File
+30
View File
@@ -0,0 +1,30 @@
#!/bin/bash
# Defined prefered applications
# EDITOR
if (command -v nvim &>/dev/null); then
export EDITOR=nvim
fi
# PAGER
if (command -v less &>/dev/null); then
export PAGER=less
fi
# MANPAGER
if (command -v nvim &>/dev/null); then
export MANPAGER='nvim +Man!'
elif (command -v bat &>/dev/null); then
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
fi
# TERMINAL
if (command -v kitty &>/dev/null); then
export TERMINAL=kitty
fi
# BROWSER
if (command -v firefox &>/dev/null); then
export BROWSER=firefox
fi
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
[[ ${BLE_VERSION-} ]] && ble-attach
View File
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
# ble.sh () installed from nix
if (command -v blesh-share &>/dev/null); then
source "$(blesh-share)"/ble.sh --attach=none # does not work currently
fi
+8
View File
@@ -0,0 +1,8 @@
#!/bin/bash
if (command -v mise &>/dev/null); then
# activate mise-en-place (https://mise.jdx.dev/)
eval "$(mise activate bash)"
fi
+1 -2
View File
@@ -4,7 +4,6 @@
# git clone https://github.com/riywo/anyenv $HOME/.anyenv
if ( which anyenv &> /dev/null )
then
if (which anyenv &>/dev/null); then
eval "$(anyenv init -)"
fi
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
if [ -f ~/.asdf/asdf.sh ]; then
# activate asdf
source ~/.asdf/asdf.sh
# activate completion
source ~/.asdf/completions/asdf.bash
fi
if [ -f "$HOME/.nix-profile/share/asdf-vm/asdf.sh" ]; then
. "$HOME/.nix-profile/share/asdf-vm/asdf.sh"
. "$HOME/.nix-profile/share/bash-completion/completions/asdf.bash"
fi
+23
View File
@@ -0,0 +1,23 @@
#!/bin/bash
if (command -v broot &>/dev/null); then
# This script was automatically generated by the broot program
# More information can be found in https://github.com/Canop/broot
# This function starts broot and executes the command
# it produces, if any.
# It's needed because some shell commands, like `cd`,
# have no useful effect if executed in a subshell.
function br {
local cmd cmd_file code
cmd_file=$(mktemp)
if broot --outcmd "$cmd_file" "$@"; then
cmd=$(<"$cmd_file")
rm -f "$cmd_file"
eval "$cmd"
else
code=$?
rm -f "$cmd_file"
return "$code"
fi
}
fi
Executable → Regular
View File
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
if (asdf which direnv &>/dev/null); then
# Hook direnv into your shell.
eval "$(asdf exec direnv hook bash)"
# A shortcut for asdf managed direnv.
direnv() { asdf exec direnv "$@"; }
return
elif (command -v direnv &>/dev/null); then
# Hook direnv into your shell.
eval "$(direnv hook bash)"
fi
+71
View File
@@ -0,0 +1,71 @@
#!/bin/bash
if (command -v fzf &>/dev/null); then
# Shell integration
source <(fzf --bash)
# Options par défaut
FZF_DEFAULT_OPTS="\
--height 60%
--border rounded
--layout reverse
--highlight-line \
--info=inline-right \
--ansi \
"
export FZF_DEFAULT_OPTS
# Navigation vers un répertoire
FZF_ALT_C_OPTS="$(
cat <<'EOF'
--prompt '󰥨 '
--pointer
--marker ✔
EOF
)"
export FZF_ALT_C_OPTS
# Selection de fichiers
FZF_CTRL_T_OPTS="$(
cat <<'EOF'
--prompt '󰈞 '
--pointer
--marker ✔
--preview="bat --color=always --style=-header {}"
EOF
)"
export FZF_CTRL_T_OPTS
# Navigation dans l'historique
FZF_CTRL_R_OPTS="$(
cat <<'EOF'
--prompt ' '
--pointer
--marker ✔
EOF
)"
export FZF_CTRL_R_OPTS
# Theme tokyonight
FZF_DEFAULT_OPTS="${FZF_DEFAULT_OPTS} \
--color=bg+:#283457 \
--color=bg:#16161e \
--color=border:#27a1b9 \
--color=fg:#c0caf5 \
--color=gutter:#16161e \
--color=header:#ff9e64 \
--color=hl+:#2ac3de \
--color=hl:#2ac3de \
--color=info:#545c7e \
--color=marker:#ff007c \
--color=pointer:#ff007c \
--color=prompt:#2ac3de \
--color=query:#c0caf5:regular \
--color=scrollbar:#27a1b9 \
--color=separator:#ff9e64 \
--color=spinner:#ff007c \
"
export FZF_DEFAULT_OPTS
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v git && command -v fzf) &>/dev/null; then
function gsb { git checkout "$(git branch --all | fzf | tr -d '[:space:]')"; }
fi
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
if (which lsd &> /dev/null)
then
# create a aliases
alias ls='lsd'
alias lt='lsd --tree'
fi
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
if (command -v mcfly &>/dev/null); then
export MCFLY_PROMPT=" "
export MCFLY_INTERFACE_VIEW=BOTTOM
export MCFLY_RESULTS=50
export MCFLY_RESULTS_SORT=LAST_RUN
# export MCFLY_KEY_SCHEME=vim
export MCFLY_FUZZY=3
eval "$(mcfly init bash)"
fi
-60
View File
@@ -1,60 +0,0 @@
#!/bin/bash
if ( ! which mcfly &> /dev/null ); then return; fi
# Avoid loading this file more than once
if [[ "$__MCFLY_LOADED" == "loaded" ]]; then
return 0
fi
__MCFLY_LOADED="loaded"
export MCFLY_SESSION_ID=$(cat /dev/urandom | env LC_ALL=C tr -dc 'a-zA-Z0-9' | fold -w 24 | head -n 1)
export MCFLY_HISTORY=$(mktemp -t mcfly.XXXX)
export HISTFILE="${HISTFILE:-$HOME/.bash_history}"
if [[ -f "$HISTFILE" ]];
then
tail -n100 "${HISTFILE}" >| ${MCFLY_HISTORY}
else
printf "Welcome to McFly\n" >| ${MCFLY_HISTORY}
fi
# Ignore commands with a leading space
#export HISTCONTROL="ignorespace"
# Append new history items to .bash_history
shopt -s histappend
# Setup a function to be used by $PROMPT_COMMAND.
function mcfly_prompt_command {
local exit_code=$? # Record exit status of previous command.
history -a ${MCFLY_HISTORY} # Append history to $MCFLY_HISTORY.
# Run mcfly with the saved code. It will:
# * append commands to $HISTFILE, (~/.bash_history by default)
# for backwards compatibility and to load in new terminal sessions;
# * find the text of the last command in $MCFLY_HISTORY and save it to the database.
mcfly add --exit ${exit_code} --append-to-histfile
# Clear the in-memory history and reload it from $MCFLY_HISTORY
# (to remove instances of '#mcfly: ' from the local session history).
history -cr ${MCFLY_HISTORY}
return ${exit_code} # Restore the original exit code by returning it.
}
# Set $PROMPT_COMMAND run mcfly_prompt_command and then any existing $PROMPT_COMMAND.
PROMPT_COMMAND="mcfly_prompt_command;$PROMPT_COMMAND"
# If this is an interactive shell, take ownership of ctrl-r.
# The logic here is:
# 1. Jump to the beginning of the edit buffer, add 'mcfly: ', and comment out the current line. We comment out the line
# to ensure that all possible special characters, including backticks, are ignored. This commented out line will
# end up as the most recent entry in the $MCFLY_HISTORY file.
# 2. Type "mcfly search" and then run the command. McFly will pull the last line from the $MCFLY_HISTORY file,
# which should be the commented-out search from step #1. It will then remove that line from the history file and
# render the search UI pre-filled with it.
if [[ $- =~ .*i.* ]]; then
if set -o | grep "vi " | grep -q on; then
bind "'\C-r': '\e0i#mcfly: \e\C-j mcfly search\C-j'"
else
bind "'\C-r': '\C-amcfly: \e# mcfly search\C-j'"
fi
fi
Executable → Regular
+46 -11
View File
@@ -2,23 +2,58 @@
# Customize the prompt
if (which powerline-go &> /dev/null); then
function _update_ps1() {
PS1="$(powerline-go -error $?)"
}
if [ "$TERM" != "linux" ] ; then
export PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi
else
# Indicate your preference order for prompt tools
# The first one found available will be used
MY_PROMPTS="starship powerline-go"
for prompt in $MY_PROMPTS; do
if (command -v "$prompt" &>/dev/null); then
USE_PROMPT="$prompt"
break
fi
done
case "${USE_PROMPT}" in
# https://starship.rs/
"starship")
if (command -v starship &>/dev/null); then
eval "$(starship init bash)"
else
echo "${USE_PROMPT} command not found"
fi
;;
# https://github.com/justjanne/powerline-go
# -modules string
# The list of modules to load, separated by ','
# (valid choices: aws, cwd, docker, dotenv, duration, exit, git, gitlite, hg, host, jobs, kube, load, newline, nix-shell, node, perlbrew, perms, root, shell-var, ssh, svn, termtitle, terraform-workspace, time, user, venv, vgo)
# (default "nix-shell,venv,user,host,ssh,cwd,perms,git,hg,jobs,exit,root,vgo")
# -modules-right string
# The list of modules to load anchored to the right, for shells that support it, separated by ','
# (valid choices: aws, cwd, docker, dotenv, duration, exit, git, gitlite, hg, host, jobs, kube, load
"powerline-go")
if (command -v powerline-go &>/dev/null); then
function _update_ps1() {
PS1=$(powerline-go -jobs "$(jobs -p | wc -l)" -error $? -modules "ssh,host,wsl,user,cwd,direnv,venv,perms,git,jobs,exit,root" -modules-right "docker,docker-context,kube,terraform-workspace,termtitle" -newline)
}
if [ "$TERM" != "linux" ]; then _prompt_command_add "_update_ps1"; fi
else
echo "${USE_PROMPT} command not found"
fi
;;
*)
# Default simple prompt
│ PROMPT_DIRTRIM=3 # Limit the path to 3 levels
if [ "$UID" -eq 0 ]; then
export PS1='\[\e[01;31m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] '
else
export PS1='\[\e[01;32m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] '
fi
fi
;;
# Limit the path to 3 levels
PROMPT_DIRTRIM=3
esac
# Add a smiley at end of prompt showing last command status code
#smiley() {
Executable → Regular
View File
+49
View File
@@ -0,0 +1,49 @@
#!/bin/bash
# Function to update terminal/tmux title
_update_terminal_title() {
local kubecontext dir gitrepo gitremote icon title
# Detect Kubernetes context (if kubectl is available)
if [ -n "${KUBECONFIG}" ]; then
if command -v kubectl >/dev/null 2>&1; then
kubecontext=$(kubectl config current-context 2>/dev/null)
if [ -n "$kubecontext" ]; then
title="󱃾 ${kubecontext}"
fi
fi
fi
# If no title is already set, check if we're in $HOME
if [ -z "${title}" ] && [ "$PWD" = "$HOME" ]; then
title="󱂵 ~"
fi
# If we're in a git repo display repo name with a nice icon
if [ -z "${title}" ] && gitrepo=$(git rev-parse --show-toplevel 2>/dev/null); then
dir=$(basename "${gitrepo}")
# Detect host from remote URL
gitremote=$(git remote get-url origin 2>/dev/null)
case "${gitremote}" in
*github.com*) icon="" ;; # nf-fa-github
*gitlab.com*) icon="" ;; # nf-fa-gitlab
*gitea*) icon="" ;; # nf-linux-gitea
*) icon="" ;; # nf-dev-git
esac
title="${icon} ${dir}"
fi
# Set the title in tmux or terminal window
if [ -n "${title}" ]; then
if [ -n "$TMUX" ]; then
tmux rename-window "${title}"
else
printf '\033]0;%s\007' "${title}"
fi
fi
}
# Add the function to the PROMPT_COMMAND variable to have regular updates
if [ "$TERM" != "linux" ]; then _prompt_command_add "_update_terminal_title"; fi
Executable → Regular
+10 -14
View File
@@ -1,25 +1,21 @@
#!/bin/bash
# GNU Screen stuff
if ( which tmux &> /dev/null )
then
if [ $(pgrep -u "$UID" "tmux" | wc -l) -gt 0 ]
then
if [[ $TERM != screen* ]]
then
if (command -v tmux &>/dev/null); then
if [ "$(pgrep -u "$UID" "tmux" | wc -l)" -gt 0 ]; then
if [[ $TERM != screen* ]]; then
nb_sessions=$(tmux list-session | wc -l)
nb_sessions_attached=$(tmux list-session | grep "attached" | wc -l)
nb_sessions_detached=$(tmux list-session | grep -v "attached" | wc -l)
nb_sessions_attached=$(tmux list-session | grep -c "attached")
nb_sessions_detached=$(tmux list-session | grep -c -v "attached")
echo_reverse "Found ${nb_sessions} tmux session(s)"
echo_info "tmux : found ${nb_sessions} session(s)"
echo " * ${nb_sessions_attached} attached"
tmux list-sessions | grep "attached" | sed -e 's/^/ - /'
echo " ${nb_sessions_attached} session(s) attached"
tmux list-sessions | grep "attached" | sed -e 's/^/ /'
echo " * ${nb_sessions_detached} detached"
tmux list-sessions | grep -v "attached" | sed -e 's/^/ - /'
echo " ${nb_sessions_detached} session(s) detached"
tmux list-sessions | grep -v "attached" | sed -e 's/^/ /'
fi
fi
fi
Executable → Regular
View File
+12
View File
@@ -0,0 +1,12 @@
#!/bin/bash
# INFO:
#  vivid is a generator for the LS_COLORS environment variable that controls the colorized output of ls, tree, fd, bfs, dust and many other tools.
# ➜ https://github.com/sharkdp/vivid
# 💡Use command `vivid themes` to see available themes
if (command -v vivid &>/dev/null); then
THEME=tokyonight-moon
LS_COLORS="$(vivid generate ${THEME})"
export LS_COLORS
fi
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
if (command -v zoxide &>/dev/null); then
eval "$(zoxide init bash)"
fi