Au lancement de i3, il est possible de lancer également un programme qui va verrouiller la session après une certaine inactivité. Par exemple avec `xautolock` :
On peut définir des noms pour certains workspace à la place des numéros par défaut, pour ce faire on définit d'abord les noms dans des variables comme ceci :
~~~
set $workspace1 "1: Term"
set $workspace2 "2: Web"
~~~
Ensuite, on définit nos variables dans les raccourcis qui permettent de switcher d'un workspace à l'autre avec les touches mod+numero :
~~~
bindsym $mod+1 workspace $workspace1
bindsym $mod+2 workspace $workspace2
~~~
Et aussi dans les raccourcis qui permettent de déplacer une fenêtre d'un workspace à un autre :
~~~
bindsym $mod+Shift+1 move container to workspace $workspace1
bindsym $mod+Shift+2 move container to workspace $workspace2
Pour assigner une application à un workspace, on utilise la fonction *assign* en précisant la *class* de l'application que l'on souhaite utiliser, suivi du numéro du workspace ou du nom de la variable du workspace, si on a définit ces workspaces avec des variables, par exemple :
Pour obtenir la class de l'application on peut utiliser la commande *xprop* et de cliquer sur la fenêtre de l'application, on obtient en console un résultat comme ceci :
~~~
$ xprop
WM_CLASS(STRING) = "Navigator", "Firefox-esr"
~~~
## Définir une application en mode fenêtre flottante
Si vous voulez avoir certaines applications en mode fenêtre flottante et pas en mode tilling dans un conteneur de fenêtre, il faut utiliser le mode "floating", exemple avec pavucontrol :
Pour changer la couleur des fenêtres il faut d'abord définir chaque couleur de chaque variable :
~~~
set $bg-color #2f343f
set $inactive-bg-color #2f343f
set $text-color #f3f4f5
set $inactive-text-color #676E7D
set $urgent-bg-color #E53935
~~~
Pour obtenir les numéros de chaque couleur, on peut utiliser gimp ou inkscape, ou alors sur ce site : [color-picker](https://www.webpagefx.com/web-design/color-picker/)
Définition des variables :
* $bg-color : couleur d'arrière-plan de la fenêtre
* $inactive-bg-color : couleur d'arrière-plan d'une fenêtre inactive
* $text-color: couleur du texte de la fenêtre
* $inactive-text-color : couleur du texte d'une fenêtre inactive
* $urgent-bg-color : couleur d'une fenetre qui signale une notification
Ensuite, on définit nos variables pour chaque "état" des fenêtres :
Pour changer la couleur de la barre, que l'on utilise i3status ou i3blocks, on peut utiliser les mêmes variables que pour les fenêtres, mais avec des fonctions différentes, il faut en premier lieu créer une section *colors* dans la section *bar* du fichier de configuration de i3 :
## Utiliser des icônes pour les noms des workspaces ou pour des notifications de la barre d'état
On peut afficher des icônes dans les noms des workspaces ou pour les notifications de la barre d'état.
Il faut utiliser la police de caractères *Awesome* disponible ici : [Font-Awesome](https://github.com/FortAwesome/Font-Awesome/releases)
Pour connaître toutes les icônes disponibles dans cette police et pouvoir les copier facilement sans connaître leurs codes, on peut s'aider de ce site [fontawesome-cheatsheet](http://fontawesome.io/cheatsheet/)
Il suffit, ensuite, juste de *copier / coller* l'icône qui nous intéresse.
## Utiliser i3blocks à la place de i3status
On peut changer la barre d'état par défaut, par la barre alternative i3blocks.
Elle permet d'afficher, par défaut, plus d'information, comme l'occupation mémoire ou le trafic réseau.
La configuration par défaut se fait dans */etc/i3blocks.conf,* mais on peut indiquer un autre fichier de configuration, en espace utilisateur par exemple, en modifiant le fichier *~/i3/config* :
* Positionner votre workspace avec la disposition des fenêtres que vous souhaitez.
* Exécuter cette commande, qui va enregistrer la disposition dans un fichier .json :
~~~
i3-save-tree --workspace N > ~/.i3/workspace_N.json
~~~
N est le numéro, ou le nom du workspace souhaité.
## Restaurer la disposition d'un workspace
Pour restaurer la disposition d'un workspace qui a été sauvegardé avec la méthode précédente, il faut, en premier, créé un script *load_layout.sh* comme ceci :
~~~
#!/bin/bash
i3-msg "workspace M; append_layout ~/.i3/workspace_N.json"
~~~
Où M est le workspace dans lequel vous souhaitez chargé la disposition précédemment enregistrée et N est le nombre d'espace de travail enregistré dans la section précédente.
Il y a plus qu'as exécuté le script pour que le workspace soit chargé au bon endroit.
On peut créer un raccourci qui exécute le script, à mettre dans le fichier *~/.i3/config* :