# Les fichiers de configuration d'Olivier

Cf. https://medium.com/toutsbrasil/how-to-manage-your-dotfiles-with-git-f7aeed8adf8b
et https://news.ycombinator.com/item?id=11070797

La première fois ça donne : 

```bash
git init --bare $HOME/.dotfiles
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
dotfiles config --local status.showUntrackedFiles no
dotfiles remote add origin gitea@forge.o9.re:olivier/dotfiles.git
dotfiles push origin master
```

et on utilise la commande `dotfiles` (inclure dans .zshrc) pour ajouter des fichiers : 

```bash
dotfiles add .zshrc
```

Les autres fois : 

```bash
git clone --bare gitea@forge.o9.re:olivier/dotfiles.git $HOME/.dotfiles
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
dotfiles config --local status.showUntrackedFiles no
dotfiles checkout
source ~/.zshrc
```

Ce qui relance zsh pour rendre la commande `dotfiles` active !

## Après un script Ansible

Cf. https://www.atlassian.com/git/tutorials/dotfiles

Puis ssh@maMachine et : 

```
function config {
   /usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME $@
}
mkdir -p .config-backup
config checkout
if [ $? = 0 ]; then
  echo "Checked out config.";
  else
    echo "Backing up pre-existing dot files.";
    config checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | xargs -I{} mv {} .config-backup/{}
fi;
config checkout
config config status.showUntrackedFiles no
```

Ensuite on supprime les fichiers/dossiers listés puis on fait : `config checkout`.

## Description

Quelques fichiers de configuration possibles pour des outils quotidiens tels que : 

  * Multiplexeur
  * Éditeur
  * Serveur graphique
  * Interpréteur de commande
  * etc.

D'autres viendront au fur et à mesure.

## Dépendances

Sont nécessaires : 

  * colordiff
  * dino (pour XMPP) avec noto-fonts-emoji
  * dunst
  * elinks
  * exa
  * gartoon-redux (https://www.gnome-look.org/content/show.php?content=74841) : icônes mode cartoon :)
  * git-core
  * htop
  * kitty + ttf-fira-code (AUR) pour les fontes avec ligatures
  * mlocate
  * most
  * i3lock pour le verrouillage de l'écran
  * i3wm-gaps
  * redshift
  * ripgrep
  * tmux
  * trizen
  * ttf-dejavu
  * vim + neovim
  * vim-airline + powerline-fonts (pour VIM)
  * zsh + oh-my-zsh (Cf. https://github.com/robbyrussell/oh-my-zsh) + powerlevel10k (Cf. https://github.com/romkatv/powerlevel10k#oh-my-zsh)

## Cas de ZSH

```bash
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
cp dotfiles/zshrc ~/.zshrc
cp dotfiles/p10k.zsh ~/.p10k.zsh
```

## Cas d'i3

Nécessite : 

  * .profile pour rendre disponible $HOME/bin
  * .Xresources

Dépendances : 

  * gksu (pour éteindre/redémarrer le système à partir de polybar)
  * scrot
  * feh
  * i3-gaps (à la place d'i3)
  * rofi (pour le menu de lancement)
  * picom (pour la transparence et les ombres des fenêtres)
  * polybar (à la place de la barre d'état)
  * ttf-font-awesome-4 (pour afficher des icônes dans la barre d'état)
  * (optionnel) network-manager-applet (pour la configuration wifi)
  * pavucontrol (gestion du son)
  * wireless_tools pour l'affichage wifi dans polybar
  * clipit (presse-papier du bureau)
  * hamster-time-tracker (enregistrement des durées de travail)
  * httpie
  * nvm (pour zshrc qui demande cet outil)
  * dunst (pour notification bureau)

## À Configurer (avec un script bash ou autre)

Clavier FR avec la commande suivante : 

```
localectl --no-convert set-x11-keymap fr,fr pc104 oss,bepo grp:alt_shift_toggle
```

## Autologin

Cf. https://wiki.archlinux.org/index.php/Getty#Automatic_login_to_virtual_console

## Configuration de Git

```bash
git config --global commit.template ~/.gitmessage.txt 
```

## Selfie de la caméra avec mpv

```bash
mpv av://v4l2:/dev/video0
```

puis on appuie sur la touche **[s]**.

## Liens utiles

  * https://dotfiles.github.io/
  * https://github.com/svetlyak40wt/dotfiler
  * https://gist.github.com/NeoTheFox/afd26413899d6e0431f88546027144a6 (config kitty)
