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
~~~
## Assigné une application à un workspace
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éfini ces workspaces avec des variables, par exemple :
~~~
assign [class="Firefox-esr"] $workspace2
~~~
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 :
~~~
for_window [class="Pavucontrol"] floating enable
~~~
On peut redimensionner une fenêtre en mode foating avec le click droit de la souris.
## Customisation de l'apparence de i3
* Changer la couleur des fenêtres :
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 chaque "état" on définit une couleur pour la bordure, le fond, le texte et l'indicateur horizontal / vertical.
L'indicateur Horizontal / Vertical est une barre très fine qui permet de savoir dans quel sens la prochaine fenêtre va être dispose.
Voici la définition de chaque "état" de fenêtre :
* client.focused : fenêtre sur laquelle on a le focus
* client.unfocused : fenêtre sur laquelle on n'a pas le focus
* client.focused_inactive: fenêtre qui est dans un conteneur, mais qui n'a pas de focus pour le moment.
* client.urgent : fenêtre avec une notification
* Changer la couleur de la barre
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éé une section *colors* dans la section *bar* du fichier de configuration de i3 :