logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
utilisateurs:arpinux:tutos:i3-userguide-fr [10/04/2023 13:21]
arpinux [liens]
utilisateurs:arpinux:tutos:i3-userguide-fr [14/07/2023 16:29] (Version actuelle)
arpinux redirection vers la version à jour sur le wii nakeDeb
Ligne 1: Ligne 1:
 ====== i3 - Guide de l'​utilisateur ====== ====== i3 - Guide de l'​utilisateur ======
  
-  * Objet : traduction complète du guide de l'​utilisateur [[doc:​environnements:​x11:​i3wm|i3wm]]+  * Objet : traduction complète du guide de l'​utilisateur [[doc:​environnements:​x11:​i3wm-polybar|i3wm]]
   * Niveau requis : {{tag>​avisés}}   * Niveau requis : {{tag>​avisés}}
-  * TODO : traduire les liens internes +  * traduction complète du [[https://​i3wm.org/​docs/​userguide.html|guide de l'​utilisateur i3wm]].
-  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) +
- +
-traduction complète du [[https://​i3wm.org/​docs/​userguide.html|guide de l'​utilisateur i3wm]]. +
- +
-//[début de la traduction > >// +
- +
-===== i3 - Guide de l'​utilisateur ===== +
- +
-Ce document contient toutes les informations dont vous avez besoin pour configurer et utiliser le gestionnaire de fenêtres i3. Si ce n'est pas le cas, veuillez d'​abord vérifier sur reddit (https://​www.reddit.com/​r/​i3wm/​),​ puis contactez-nous sur IRC (de préférence) ou postez vos questions sur la liste de diffusion. +
- +
-===== 1. Raccourcis clavier par défaut ===== +
- +
-Pour les adeptes du "​c'​est trop long, je vais pas lire tout ça", voici un aperçu des raccourcis par défaut (cliquez pour voir l'​image en pleine résolution) : +
- +
-//[les raccourcis présentés sont adaptés au clavier qwerty anglais : à adapter à votre disposition clavier]//​ +
- +
- +
-**Les touches à utiliser avec $mod (Alt) :** +
- +
- +
- ​[[https://​debian-facile.org/​images/​file-R77758a33e42cb81fb907167bd1d8647d.png|{{https://​debian-facile.org/​images/​file-R77758a33e42cb81fb907167bd1d8647d.png?​600|Les touches à utiliser avec $mod (Alt)}}]]  +
- +
- +
-**Les touches à utiliser avec Shift+$mod :** +
- +
- +
- ​[[https://​debian-facile.org/​images/​file-R37ad233b25901dbddfd536159acf9d75.png|{{https://​debian-facile.org/​images/​file-R37ad233b25901dbddfd536159acf9d75.png?​600|Les touches à utiliser avec Shift+$mod}}]]  +
- +
- +
-Les touches rouges sont les modificateurs sur lesquels vous devez appuyer (par défaut), les touches bleues sont votre ligne de départ (''​%%homerow%%''​). +
- +
- +
-Notez que lors du démarrage d'i3 sans fichier de configuration,​ i3-config-wizard vous proposera de créer un fichier de configuration dans lequel les positions des touches correspondent à ce que vous voyez dans l'​image ci-dessus, quelle que soit la disposition du clavier que vous utilisez. Si vous préférez utiliser un fichier de configuration où les lettres clés correspondent à ce que vous voyez ci-dessus, refusez simplement l'​offre de i3-config-wizard et basez votre configuration sur ''​%%/​etc/​i3/​config%%''​. +
- +
- +
- +
- +
-===== 2. Utiliser i3 ===== +
- +
-Tout au long de ce guide, le mot-clé ''​%%$mod%%''​ sera utiliser pour désigner la touche de modification par défaut. C'est la touche Alt (''​%%Mod1%%''​) par défaut, la touche windows (''​%%Mod4%%''​) étant une alternative populaire qui permet d'​éviter les conflits avec les autres raccourcis des applications. +
- +
- +
-==== 2.1. Ouverture de terminaux et déplacement ==== +
- +
-Pour commencer avec une opération basique, ouvrons un terminal. Par défaut, vous devez utiliser le raccourcis clavier ''​%%$mod+Enter%%''​ pour y parvenir, c'est à dire Alt+Enter (''​%%Mod1+Enter%%''​). En pressant ''​%%$mod+Enter%%'',​ une nouvelle fenêtre de terminal s'​ouvre. Elle remplira la totalité de votre écran. +
- +
- +
- ​{{https://​debian-facile.org/​images/​file-Refe61e40db651507502e8dc023bf1254.png|Single terminal}}  +
- +
- +
-Si vous ouvrez maintenant un autre terminal, i3 le placera à côté du terminal actuel, divisant la taille de l'​écran en deux. En fonction de votre moniteur, i3 placera la fenêtre créée à côté de la fenêtre existante (sur les écrans larges) ou sous la fenêtre existante (écrans pivotés). +
- +
- +
- ​{{https://​debian-facile.org/​images/​file-R291768c15d3aadc41e48e8c4922e43b2.png|Two terminals}}  +
- +
- +
-Pour déplacer le focus entre les deux terminaux, vous pouvez utiliser les touches de direction que vous connaissez peut-être dans l'​éditeur ''​%%vi%%''​. Cependant, dans i3, c'est votre ligne de départ qui est utilisé pour ces touches (dans vi, les touches sont décalées vers la gauche de un pour la compatibilité avec la plupart des dispositions de clavier).\\ +
-Par conséquent,​ sur un clavier azerty-fr ''​%%$mod+j%%''​ déplace le focus à gauche, ''​%%$mod+k%%''​ en bas, ''​%%$mod+l%%''​ en haut et ''​%%$mod+m%%''​ à droite. Donc, pour basculer entre les terminaux, utilisez ''​%%$mod+k%%''​ ou ''​%%$mod+l%%''​. Bien sûr, vous pouvez également utiliser ''​%%$mod%%''​ + les touches fléchées. +
- +
- +
-Pour le moment, votre espace de travail est divisé (il contient deux terminaux) dans une direction spécifique (horizontale par défaut). Chaque fenêtre peut à nouveau être divisée horizontalement ou verticalement,​ tout comme l'​espace de travail. La terminologie est "​fenêtre"​ pour un container qui contient en fait une fenêtre X11 (comme un terminal ou un navigateur) et "split container"​ (container fractionné) pour les "​contenairs"​ qui se composent d'une ou plusieurs fenêtres.. +
- +
- +
-TODO: picture of the tree +
- +
- +
-Pour diviser une fenêtre verticallement,​ pressez ''​%%$mod+v%%''​ avant de créer une nouvelle fenêtre. Pour la diviser horizontallement,​ pressez ''​%%$mod+h%%''​. +
- +
- +
- +
-==== 2.2. Changer la disposition (layout) du "​container"​ ==== +
- +
-Un container divisé peut adopter plusieurs dispositions : +
- +
- +
-  * ** splith/​splitv ** Les fenêtres sont dimensionnées de telle sorte que chaque fenêtre dispose d'une quantité égale d'​espace dans le container. ''​%%splith%%''​ distribue les fenêtres horizontalement (les fenêtres sont à côté les unes des autres), ''​%%splitv%%''​ les distribue verticalement (les fenêtres sont les unes au-dessus des autres). +
-  * ** stacking ** Seule la fenêtre ayant le focus dans le container est affichée. Une liste des fenêtres s'​affiche en haut du container. +
-  * ** tabbed ** Le même principe que ''​%%stacking%%'',​ mais la liste des fenêtres s'​affiche en haut du container sous forme d'​onglets. +
- +
- +
-Pour passer d'un mode à l'​autre : pressez ''​%%$mod+e%%''​ pour les modes '​splith/​splitv',​ ''​%%$mod+s%%''​ pour le mode '​stacking'​ et ''​%%$mod+w%%''​ pour le mode '​tabbed'​. +
- +
- +
- ​{{https://​debian-facile.org/​images/​file-R75e8155023a1332227270dc8219965a7.png|Container modes}}  +
- +
- +
- +
-==== 2.3. Passer une fenêtre en plein écran ==== +
- +
-Pour afficher une fenêtre en plein écran (fullscreen) ou pour revenir à l'​affichage normal, pressez ''​%%$mod+f%%''​. +
- +
- +
-Il existe aussi un mode "​fullscreen global"​ dans lequel i3 affiche le client sur tous les moniteurs disponibles. (la commande est ''​%%fullscreen toggle global%%''​). +
- +
- +
- +
-==== 2.4. Ouvrir d'​autres applications ==== +
- +
-Vous pouvez utiliser votre terminal pour lancer vos applications,​ mais vous pouvez aussi utiliser le menu ''​%%dmenu%%''​ qui s'​ouvre par défaut grâce au raccourcis ''​%%$mod+d%%''​. Entrez le nom d'une application ou seulement quelques lettres. Les applications correspondantes seront listées si elles sont dans votre ''​%%$PATH%%''​. +
- +
- +
-Si vous utilisez certaines applications de manière fréquente, vous pouvez leur attribuer des raccourcis clavier. Voir la section [[#​configuring|[configuration]]] pour plus de détails. +
- +
- +
- +
-==== 2.5. Fermer une fenêtre ==== +
- +
-Si une application ne dispose pas de raccourcis clavier dédié à sa fermeture (la plupart des applications peuvent se fermer depuis leur menu ou depuis les raccourcis ''​%%Control+w%%''​ ou ''​%%Control+q%%''​),​ vous pouvez presser ''​%%$mod+Shift+q%%''​ pour tuer une fenêtre. Pour une application qui supporte le protocole WM_DELETE, cela fermera correctement l'​application (sauvegarde des modifications et nettoyage du cache). Si l'​application ne supporte pas le protocole WM_DELETE, le serveur X tuera l'​application. Le comportement dépend de l'​application. +
- +
- +
- +
-==== 2.6. Utiliser les espaces de travail ==== +
- +
-Les espaces de travail sont un moyen simple de regrouper un ensemble de fenêtres. Par défaut, vous êtes sur le premier espace de travail, comme l'​indique la barre en bas à gauche. Pour passer à un autre espace de travail, appuyez sur ''​%%$mod+num%%''​ avec ''​%%num%%''​ correspondant au numéro de l'​espace de travail à atteindre. Si l'​espace de travail n'​existe pas, il sera créé. +
- +
- +
-Une organisationn classique est de lancer le navigateur sur le premier espace de travail, puis les applications de communication (''​%%mutt%%'',​ ''​%%irssi%%'',​ …) sur un deuxième et enfin, travailler sur le troisième espace de travail. Mais vous n'​êtes pas obligé d'​utiliser cette approche. +
- +
- +
-Si vous disposez de plusieurs écrans, un espace de travail sera créé sur chaque écran au démarrage. Si vous ouvrez un nouvel espace de travail, il sera lié à l'​écran sur lequel vous l'avez créé. Lorsque vous passez à un espace de travail sur un autre écran, i3 donne le focus sur cet écran. +
- +
- +
- +
-==== 2.7. Déplacer une fenêtre sur un esace de travail ==== +
- +
-Pour déplacer une fenêtre sur un espace de travail donné, pressez simplement ''​%%$mod+Shift+num%%''​ avec ''​%%num%%''​ correspondant au numéro de l'​espace de travail visé. Comme pour le changement d'​espace de travail, s'il n'​existe pas, il sera créé. +
- +
- +
- +
-==== 2.8. Redimensionnement ==== +
- +
-Le moyen le plus simple de redimensionner un container est d'​utiliser la souris : saisissez la bordure et déplacez-la à la taille souhaitée. +
- +
- +
-Vous pouvez également utiliser le clavier et les [[#​binding_modes|[binding_modes]]] pour redimensionner un container. Pour un exemple, consultez la [[https://​github.com/​i3/​i3/​blob/​next/​etc/​config.keycodes|configuration par défaut]] fournit par i3. +
- +
- +
- +
-==== 2.9. Relancer i3 ==== +
- +
-Pour relancer i3 (afin de repartir sur de bonnes bases après avoir résolu un bug ou pour prendre en compte une mise à jour de i3) vous pouvez utiliser le raccourcis ''​%%$mod+Shift+r%%''​. +
- +
- +
- +
-==== 2.10. Quitter i3 ==== +
- +
-Pour quitter proprement i3 sans tuer votre serveur X, pressez simplement ''​%%$mod+Shift+e%%''​. Par défaut, un message sera affiché afin de confirmer que vous désirez réellement quitter i3. +
- +
- +
- +
-==== 2.11. Mode flottant ==== +
- +
-Le mode flottant est l'​opposé du mode mosaïque (tiling). La position et la taille d'une fenêtre ne sont pas gérées automatiquement par i3, mais manuellement par vous. L'​utilisation de ce mode peut être utile pour certains cas particuliers comme les fenêtres de dialogue "​Enregistrer sous" ou les fenêtres de barre d'​outils (GIMP ou similaire). Ces fenêtres s'​identifient généralement de façon appropriée et sont ouvertes en mode flottant par défaut. +
- +
- +
-Vous pouvez désactiver le mode flottant en pressant ''​%%$mod+Shift+Space%%''​. En faisant glisser la barre de titre de la fenêtre avec votre souris, vous pouvez déplacer la fenêtre. En saisissant les bordures et en les déplaçant,​ vous pouvez redimensionner la fenêtre. Vous pouvez aussi faire tout ça grâce au [[#​floating_modifier|[floating_modifier]]]. Une autre façon de redimensionner les fenêtres flottantes à l'aide de la souris consiste à cliquer avec le bouton droit sur la barre de titre et à faire glisser. +
- +
- +
-Pour redimensionner les fenêtres flottantes avec votre clavier, voir les raccourcis de redimensionnement prévus dans la [[https://​github.com/​i3/​i3/​blob/​next/​etc/​config.keycodes|configuration par défaut]] de i3. +
- +
- +
-Les fenêtres flottantes sont toujours affichées par dessus les autres. +
- +
- +
- +
- +
- +
-===== 3. L'​arbre i3 ===== +
- +
-i3 stocke toutes les informations sur les sorties X11, les espaces de travail et la disposition des fenêtres dans un arbre. Le nœud racine est la fenêtre racine X11, suivie des sorties X11, puis des zones d'​ancrage et d'un container de contenu, puis des espaces de travail et enfin des fenêtres elles-mêmes. Dans les versions précédentes d'i3, nous avions plusieurs listes (de sorties, d'​espaces de travail) et une table pour chaque espace de travail. Cette approche s'est avérée compliquée à utiliser (snapping), à comprendre et à mettre en œuvre. +
- +
- +
-==== 3.1. L'​arbre est composé de containers ==== +
- +
-Les éléments constitutifs de notre arbre sont les ''​%%Containers%%''​. Un ''​%%Container%%''​ peut héberger une fenêtre (c'​est-à-dire une fenêtre X11, que vous pouvez réellement voir et utiliser, comme un navigateur). Sinon, il peut contenir un ou plusieurs containers. Un exemple simple est l'​espace de travail : lorsque vous démarrez i3 avec un seul moniteur, un seul espace de travail et que vous ouvrez deux fenêtres de terminal, vous vous retrouverez avec une arborescence comme celle-ci : +
- +
- +
-{{https://​debian-facile.org/​images/​file-R39058d4849718c9d1ecf19ccf907d4b7.png|layout2}} ​ {{https://​debian-facile.org/​images/​file-R4984a8e5184560521d8e49edd4afd07e.png|shot4}} +
- +
-Figure 1. Deux terminaux sur un espace de travail classique +
- +
- +
- +
-==== 3.2. Orienter et diviser les containers ==== +
- +
-Il est logique d'​utiliser des containers divisés (''​%%Split Containers%%''​) afin de créer une organisation lorsque vous utilisez un arbre comme structure de données. Dans i3, chaque container a une orientation (horizontale,​ verticale ou non spécifiée) et l'​orientation dépend de la disposition dans laquelle se trouve le container (vertical pour splitv et stacking, horizontal pour splith et tabbed). Ainsi, dans notre exemple avec l'​espace de travail, la disposition par défaut de l'​espace de travail ''​%%Container%%''​ est splith (la plupart des moniteurs sont à écran large de nos jours). Si vous changez la disposition en splitv (''​%%$mod+v%%''​ dans la configuration par défaut) puis ouvrez deux terminaux, i3 configurera vos fenêtres comme ceci : +
- +
- +
-{{https://​debian-facile.org/​images/​file-R5f67f5535c4f9133a9926dca53e8b05e.png|shot2}} +
- +
-Figure 2. Orientation verticale de l'​espace de travail +
- +
- +
-Une nouvelle fonctionnalité intéressante d'i3 depuis la version 4 est la possibilité de tout diviser : supposons que vous ayez deux terminaux sur un espace de travail (avec une disposition splith, c'​est-à-dire une orientation horizontale),​ le focus est sur le terminal de droite. Vous souhaitez maintenant ouvrir une autre fenêtre de terminal sous la fenêtre actuelle. Si vous ouvrez simplement une nouvelle fenêtre de terminal, elle apparaîtra à droite en raison de la disposition splith. Au lieu de cela, appuyez sur ''​%%$mod+v%%''​ pour diviser le container avec la disposition splitv (pour ouvrir un container de fractionnement horizontal, utilisez ''​%%$mod+h%%''​). Vous pouvez maintenant ouvrir un nouveau terminal et il s'​ouvrira en dessous de l'​actuel : +
- +
- +
-{{https://​debian-facile.org/​images/​file-R4f0a9e046db102d9a707bbbfed058f5a.png|Layout}} ​ {{https://​debian-facile.org/​images/​file-R572bf5936a4adc207c553ea09dd46500.png|shot}} +
- +
-Figure 3. Container divisé verticalement +
- +
- +
- +
- +
-Vous l'avez probablement déjà deviné : il n'y a pas de limite à la profondeur de votre hiérarchie de divisions. +
- +
- +
- +
-==== 3.3. Passer le focus au container parent ==== +
- +
-Restons avec notre exemple ci-dessus. Nous avons un terminal à gauche et deux terminaux divisés verticalement à droite, le focus est sur celui en bas à droite. Lorsque vous ouvrez un nouveau terminal, il s'​ouvrira sous le terminal actuel. +
- +
- +
-Comment ouvrir un terminal à **droite** du terminal courant ? La solution est d'​utiliser ''​%%le focus au container parent%%'',​ qui passera le focus au ''​%%Parent Container%%''​ du ''​%%Container%%''​ courant. Dans la configuration par défaut, utilisez le raccourcis ''​%%$mod+a%%''​ pour remonter le focus dans l'​arborescence du ''​%%Container%%''​ (vous pouvez répéter l'​opération jusqu'​à atteindre le ''​%%Workspace Container%%''​). Dans ce cas, le focus sera donné au ''​%%Vertical Split Container%%''​ (container divisé verticalement) qui est lui-même **à l'​intérieur** de l'​espace de travail orienté horizontalement. Désormais, une nouvelle fenêtre s'​ouvrira à droite du container divisé verticalement (''​%%Vertical Split Container%%''​) : +
- +
- +
-{{https://​debian-facile.org/​images/​file-Rb7c3efb49472f527453c49de4f995945.png|shot3}} +
- +
-Figure 4. Le focus au parent, puis ouvrir un nouveau terminal +
- +
- +
- +
-==== 3.4. Containers implicites ==== +
- +
-Dans certains cas, i3 doit créer implicitement un container pour exécuter votre commande. +
- +
- +
-Un exemple avec le scénario suivant : Vous démarrez i3 avec un seul moniteur et un seul espace de travail sur lequel vous ouvrez trois fenêtres de terminal. Toutes ces fenêtres de terminal sont directement attachées à un nœud dans l’arborescence de disposition d’i3, le nœud de l’espace de travail. Par défaut, l’orientation du nœud de l’espace de travail est ''​%%horizontale%%''​. +
- +
- +
-Maintenant, vous déplacez l'un de ces terminaux vers le bas (''​%%$mod+Shift+k%%''​ par défaut). L’orientation du nœud de l’espace de travail devient verticale. La fenêtre de terminal que vous avez déplacée vers le bas est directement attachée à l'​espace de travail et apparaît en bas de l'​écran. Un nouveau container (horizontal) a été créé pour accueillir les deux autres fenêtres de terminal. Vous le remarquerez lors du passage en mode tabulé (par exemple). Vous finiriez par avoir un onglet avec une représentation du container divisé (par exemple, "H [urxvt firefox]"​) et l'​autre étant la fenêtre de terminal que vous avez déplacée vers le bas. +
- +
- +
- +
- +
- +
-===== 4. Configurer i3 ===== +
- +
-C'est là que l'on commence à s'​amuser ;-). La plupart des choses dépendent beaucoup de votre idéal en matière d'​environnement de travail, nous ne pouvons donc pas les définir par défaut.. +
- +
- +
-Bien que n'​utilisant pas de langage de programmation pour la configuration,​ i3 reste assez flexible en ce qui concerne les choses que vous voulez généralement que votre gestionnaire de fenêtres fasse. +
- +
- +
-Par exemple, vous pouvez configurer des raccourcis pour accéder à des fenêtres spécifiques,​ vous pouvez définir des applications pour qu'​elles démarrent sur des espaces de travail spécifiques,​ vous pouvez démarrer automatiquement des applications,​ vous pouvez changer les couleurs d'i3 et vous pouvez créer vos raccourcis clavier. +
- +
- +
-Pour configurer i3, copiez ''​%%/​etc/​i3/​config%%''​ dans ''​%%~/​.i3/​config%%''​ (ou ''​%%~/​.config/​i3/​config%%''​ si vous préférez le format XDG) puis éditez le avec un éditeur de texte. +
- +
- +
-Lors du premier démarrage (et lors des autres lancements tant vous n'avez pas de fichier de configuration pour votre utilisateur),​ i3 vous proposera de créer un fichier de configuration. Vous pouvez spécifier à l'​assistant d'​utiliser Alt (''​%%Mod1%%''​) ou Windows (''​%%Mod4%%''​) comme touche principale de modification. En outre, l'​assistant utilisera la disposition clavier de votre système. Pour lancer l'​assistant de configuration,​ entrez ''​%%i3-config-wizard%%''​ depuis votre terminal. Notez que si un fichier ''​%%~/​.i3/​config%%''​ existe déjà, l'​assistant quittera. +
- +
- +
-Depuis i3 4.0, un nouveau format de configuration est utilisé. i3 essaiera de détecter automatiquement la version de format d'un fichier de configuration en fonction de quelques mots-clés différents,​ mais si vous voulez vous assurer que votre configuration est lue avec le nouveau format, incluez la ligne suivante dans votre fichier de configuration : +
- +
- +
-<​code>​ +
-# i3 config file (v4) +
-</​code>​ +
- +
- +
-==== 4.1. Commentaires ==== +
- +
-Il est possible et recommandé d'​utiliser des commentaires dans votre fichier de configuration pour documenter correctement votre configuration pour référence ultérieure. Les commentaires commencent par un ''​%%#​%%''​ et ne peuvent être utilisés qu'au début d'une ligne: +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# Ceci est un commentaire +
-</​code>​ +
- +
- +
- +
-==== 4.2. Polices ==== +
- +
-i3 supporte les polices X core fonts et FreeType fonts (grâce à Pango) pour afficher les titres des fenêtres. +
- +
- +
-Pour générer la description d'une police X core font, vous pouvez utiliser ''​%%xfontsel(1)%%''​. Pour afficher es caractères spéciaux, vous devez utiliser une police qui supporte l'​encodage ISO-10646. +
- +
- +
-Une description de police FreeType est composée d'une famille de polices, d'un style, d'un poids, d'une variante, d'un étirement et d'une taille. Les polices FreeType prennent en charge le rendu de droite à gauche et contiennent souvent plus de glyphes Unicode que les polices X core. +
- +
- +
-Si i3 ne peut pas ouvrir la police configurée,​ il affichera une erreur dans le fichier journal et reviendra à une police fonctionnelle. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-font <X core font description>​ +
-font pango:<​family list> [<style options>​] <​size>​ +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 +
-font pango:​DejaVu Sans Mono 10 +
-font pango:​DejaVu Sans Mono, Terminus Bold Semi-Condensed 11 +
-font pango:​Terminus 11px +
-</​code>​ +
- +
- +
- +
-==== 4.3. Raccourcis clavier ==== +
- +
-Un raccourcis clavier demandera à i3 d'​exécuter une commande en pressant certaines touches. i3 vous permet d'​utiliser les ''​%%keycodes%%''​ ou les ''​%%keysyms%%''​ (vous pouvez même utiliser les deux car i3 ne vous empêche pas d'​écraser les raccourcis par défaut). +
- +
- +
-  * Un keysym (symbole de la touche) est une description d'un symbole spécifique,​ comme "​a"​ ou "​b",​ mais aussi des symboles plus étranges comme "​underscore"​ au lieu de "​_"​. Ce sont ceux que vous utilisez dans Xmodmap pour remapper vos clés. Pour obtenir le mappage actuel de vos clés, utilisez ''​%%xmodmap -pke%%''​. Pour afficher en temps réel la touche utilisée, utilisez ''​%%xev%%''​. +
-  * Les keycodes (code de la touche) n'ont pas besoin d'​avoir un symbole attribué (pratique pour les raccourcis clavier personnalisés sur certains ordinateurs portables) et ils ne changeront pas leur signification lorsque vous passez à une disposition de clavier différente (lors de l'​utilisation de ''​%%xmodmap%%''​). +
- +
- +
-Ma recommandation est la suivante : si vous changez souvent de disposition de clavier mais que vous souhaitez conserver vos raccourcis au même emplacement physique sur le clavier, utilisez des codes clavier (keycodes). Si vous ne changez pas de disposition et que vous voulez un fichier de configuration propre et simple, utilisez les mots clés (keysym). +
- +
- +
-Certains outils (comme ''​%%import%%''​ ou ''​%%xdotool%%''​) pourrait ne pas répondre à la pression d'un touche (KeyPress event), car le clavier/​souris est encore en fonction. Pour ces cas de figure, l'​option ''​%%--release%%''​ peut être utilisée afin que la commande soit lancée une fois les touches relachées. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-bindsym [--release] [<​Group>​+][<​Modifiers>​+]<​keysym>​ command +
-bindcode [--release] [<​Group>​+][<​Modifiers>​+]<​keycode>​ command +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Fullscreen +
-bindsym $mod+f fullscreen toggle +
- +
-# Restart +
-bindsym $mod+Shift+r restart +
- +
-# Notebook-specific hotkeys +
-bindcode 214 exec --no-startup-id /​home/​michael/​toggle_beamer.sh +
- +
-# Simulate ctrl+v upon pressing $mod+x +
-bindsym --release $mod+x exec --no-startup-id xdotool key --clearmodifiers ctrl+v +
- +
-# Take a screenshot upon pressing $mod+x (select an area) +
-bindsym --release $mod+x exec --no-startup-id import /​tmp/​latest-screenshot.png +
-</​code>​ +
- +
- +
-Touches de modification : +
- +
- +
-  * ** Mod1-Mod5, Shift, Control ** Modificateur standard, voir ''​%%xmodmap(1)%%''​ +
-  * ** Group1, Group2, Group3, Group4 ** Lorsque vous utilisez plusieurs dispositions de clavier (par exemple avec ''​%%setxkbmap -layout us, ru%%''​),​ vous pouvez spécifier dans quel groupe XKB (également appelé «layout») une combinaison de touches doit être active. Par défaut, les raccourcis clavier sont traduits dans Group1 et sont actifs dans tous les groupes. Si vous souhaitez remplacer les combinaisons de touches dans l'un de vos layout, spécifiez le groupe correspondant. Pour une compatibilité descendante,​ le groupe «Mode_switch» est un alias pour Group2. +
- +
- +
- +
-==== 4.4. Raccourcis à la souris ==== +
- +
-Un raccourcis à la souris permet à i3 d'​exécuter une action sur le container dans lequel se trouve le pointeur à la pression d'un bouton (voir [[#​command_criteria|[command_criteria]]]). Vous pouvez configurer vos raccourcis à la souris comme vos raccourcis clavier. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-bindsym [--release] [--border] [--whole-window] [--exclude-titlebar] [<​Modifiers>​+]button<​n>​ command +
-</​code>​ +
- +
- +
-Par défaut, le raccourcis ne fonctionnera que si vous cliquez sur la barre de titre d'une fenêtre. Si l'​option ''​%%--release%%''​ est utilisée, l'​action sera exécutée en relâchant le bouton de la souris. +
- +
- +
-Si l'​option ''​%%--whole-window%%''​ est utilisée, l'​action sera exécutée quel que soit l'​endroit où le pointeur se trouve, exception faite des bordures. Pour une action exécutée depuis une bordure, utilisez l'​option ''​%%--border%%''​. +
- +
- +
-Si l'​option ''​%%--exclude-titlebar%%''​ est utilisée, la barre de titre ne sera pas active pour exécuter un raccourcis. +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# The middle button over a titlebar kills the window +
-bindsym --release button2 kill +
- +
-# The middle button and a modifer over any part of the window kills the window +
-bindsym --whole-window $mod+button2 kill +
- +
-# The right button toggles floating +
-bindsym button3 floating toggle +
-bindsym $mod+button3 floating toggle +
- +
-# The side buttons move the window around +
-bindsym button9 move left +
-bindsym button8 move right +
-</​code>​ +
- +
- +
- +
-==== 4.5. Chaines de raccourcis ==== +
- +
-Vous pouvez avoir plusieurs ensembles de raccourcis en utilisant différentes chaines de raccoucis. Lorsque vous passez à une autre chaine de raccourcis, tous les raccourcis de la chaine actuelle sont libérées et seuls les raccourcis définis dans la nouvelle chaine sont valides tant que vous restez dans cette chaine de raccoucis. La seule chaine préconfigurée est ''​%%default%%'',​ qui est le mode dans lequel i3 démarre et dans lequel tous les raccourcis sont configurés. +
- +
- +
-Travailler avec les chaines de raccourcis comporte deux parties : définir une chaine de raccourcis et l'​activer. Pour cela, il existe une directive de configuration et une commande, toutes deux appelées ''​%%mode%%''​. La directive est utilisée pour définir les raccourcis appartenant à une certaine chaine de raccourcis, tandis que la commande passera sur la chaine spécifiée. +
- +
- +
-Il est recommandé d'​utiliser les chaines de raccourcis en combinaison avec les [[#​variables|[variables]]] pour favoriser la maintenance. Voici en exemple d'​utilisation des chaines de raccourcis. +
- +
- +
-Notez qu'il est conseillé de définir des raccourcis pour revenir au mode par défaut. +
- +
- +
-Notez qu'il est possible d'​utiliser [[#​pango_markup|[pango_markup]]] pour les raccourcis clavier, mais vous devrez explicitement utiliser l'​option ''​%%--pango_markup%%''​ pour activer le mode. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-# config directive +
-mode [--pango_markup] <​name>​ +
- +
-# command +
-mode <​name>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# Press $mod+o followed by either f, t, Escape or Return to launch firefox, +
-# thunderbird or return to the default mode, respectively. +
-set $mode_launcher Launch: [f]irefox [t]hunderbird +
-bindsym $mod+o mode "​$mode_launcher"​ +
- +
-mode "​$mode_launcher"​ { +
-    bindsym f exec firefox +
-    bindsym t exec thunderbird +
- +
-    bindsym Escape mode "​default"​ +
-    bindsym Return mode "​default"​ +
-+
-</​code>​ +
- +
- +
- +
-==== 4.6. La touche de modification flottante ==== +
- +
-Pour déplacer des fenêtres flottantes avec votre souris, vous pouvez soit saisir leur barre de titre, soit configurer le ''​%%modificateur flottant%%''​ sur lequel vous pouvez ensuite appuyer et cliquer n'​importe où dans la fenêtre elle-même pour la déplacer. La configuration la plus courante consiste à utiliser la même touche que celle que vous utilisez pour gérer les fenêtres (Mod1, Alt par exemple). Ensuite, vous pouvez appuyer sur Mod1, cliquer dans une fenêtre à l'aide du bouton gauche de la souris et le faire glisser vers la position souhaitée. +
- +
- +
-Lorsque vous maintenez le modificateur flottant, vous pouvez redimensionner une fenêtre flottante en appuyant sur le bouton droit de la souris et en vous déplaçant tout en le maintenant. Si vous maintenez également le bouton Shift enfoncé, le redimensionnement sera proportionnel (le rapport hauteur/​largeur sera conservé). +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-floating_modifier <​Modifier>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-floating_modifier Mod1 +
-</​code>​ +
- +
- +
- +
-==== 4.7. Forcer les dimensions d'un fenêtre flottante ==== +
- +
-Les dimensions maximales et minimales des fenêtres flottantes peuvent être spécifiées. Si une dimension ''​%%floating_maximum_size%%''​ est spécifiée à -1, cette dimensions ne sera pas contrainte et respectera sa valeur par défaut. Si une dimension ''​%%floating_maximum_size%%''​ est indéninie ou specifiée à 0, i3 utilisera une valeur par défaut pour contraindre les dimensions de la fenêtre. ''​%%floating_minimum_size%%''​ fonctionne comme ''​%%floating_maximum_size%%''​. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-floating_minimum_size <​width>​ x <​height>​ +
-floating_maximum_size <​width>​ x <​height>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-floating_minimum_size 75 x 50 +
-floating_maximum_size -1 x -1 +
-</​code>​ +
- +
- +
- +
-==== 4.8. Orientation des espaces de travail ==== +
- +
-Les nouveaux espaces de travail ont une orientation logique par défaut: les moniteurs à écran large (tout ce qui est plus large que haut) ont une orientation horizontale,​ les moniteurs pivotés (tout ce qui est plus haut que large) ont une orientation verticale. +
- +
- +
-Grâce à l'​option ''​%%default_orientation%%'',​ vous pouvez modifier ce comportement. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-default_orientation horizontal|vertical|auto +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-default_orientation vertical +
-</​code>​ +
- +
- +
- +
-==== 4.9. Disposition des nouveaux containers ==== +
- +
-Cette option détermine la disposition par défaut des nouveaux containers dans l'​espace de travail. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-workspace_layout default|stacking|tabbed +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-workspace_layout tabbed +
-</​code>​ +
- +
- +
- +
-==== 4.10. Position du titre de la fenêtre ==== +
- +
-Cette option détermine la position du titre d'une fenêtre (par défaut à gauche). +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-title_align left|center|right +
-</​code>​ +
- +
- +
- +
-==== 4.11. Bordure par défaut pour les nouvelles fenêtres ==== +
- +
-Cette option détermine l'​apparence des bordures par défaut pour les fenêtres. Par default, c'est ''​%%normal%%''​. Notez que ''​%%default_floating_border%%''​ ne s'​applique qu'aux fenêtres ouvertes déjà flottantes comme les fenêtres de dialogue, mais pas aux fenêtres que vous passez en mode flottant. +
- +
- +
-Définir le style de bordure sur ''​%%pixel%%''​ élimine la barre de titre. Le style ''​%%normal%%''​ vous permet d'​ajuster l'​épaisseur des bordures tout en gardant la barre de titre. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-default_border normal|none|pixel +
-default_border normal|pixel <​px>​ +
-default_floating_border normal|none|pixel +
-default_floating_border normal|pixel <​px>​ +
-</​code>​ +
- +
- +
-Notez que les options ''​%%new_window%%''​ et ''​%%new_float%%''​ sont dépréciées en faveur des options ci-dessous et seront supprimées dans une prochaine version. +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-default_border pixel +
-</​code>​ +
- +
- +
-Les styles de bordure "​normal"​ et "​pixel"​ supportent une option additionnelle en pixels : +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# The same as default_border none +
-default_border pixel 0 +
- +
-# A 3 px border +
-default_border pixel 3 +
-</​code>​ +
- +
- +
- +
-==== 4.12. Masquer les bordures adjacentes aux bords d'​écran ==== +
- +
-Vous pouvez masquer les bordures des fenêtres sur les bords d'​écran avec l'​option ''​%%hide_edge_borders%%''​. Ceci est utile si vous utilisez des barres de défilement ou si vous ne voulez pas gaspiller deux pixels de votre écran. Le paramètre "​smart"​ masque les bordures des espaces de travail avec une seule fenêtre visible, mais les garde sur les espaces de travail avec plusieurs fenêtres visibles. La valeur par défaut est "​none"​. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-hide_edge_borders none|vertical|horizontal|both|smart +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-hide_edge_borders vertical +
-</​code>​ +
- +
- +
- +
-==== 4.13. Commandes associées à une fenêtre spécifique (for_window) ==== +
- +
-Avec la directive ''​%%for_window%%'',​ vous pouvez demander à i3 d'​exécuter n'​importe quelle commande au lancement d'une fenêtre spécifique. Ceci peut être utile pour forcer une fenêtre flottante ou pour changer le style de bordure, par exemple. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-for_window <​criteria>​ <​command>​ +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# enable floating mode for all XTerm windows +
-for_window [class="​XTerm"​] floating enable +
- +
-# Make all urxvts use a 1-pixel border: +
-for_window [class="​urxvt"​] border pixel 1 +
- +
-# A less useful, but rather funny example: +
-# makes the window floating as soon as I change +
-# directory to ~/work +
-for_window [title="​x200:​ ~/​work"​] floating enable +
-</​code>​ +
- +
- +
-Les options sont les mêmes que pour la fonction "​commande",​ voir [[#​command_criteria|[command_criteria]]]. Seules des commandes peuvent être exécutées,​ pas des directives, voir [[#​list_of_commands|[list_of_commands]]]. +
- +
- +
- +
-==== 4.14. Ne pas donner le focus aux nouvelles fenêtres ==== +
- +
-Lorsqu'​une nouvelle fenêtre s'​affiche,​ elle capte le focus. La directive ''​%%no_focus%%''​ permet d'​éviter ce comportement et doit être utilisée en combinaison avec une commande [[#​command_criteria|[command_criteria]]]. +
- +
- +
-Notez que cela ne s'​applique pas dans tous les cas, par exemple, si une fenêtre s'​active lors d'une action, elle obtiendra la focus. Pour configurer le comportement dans un tel cas, utilisez [[#​focus_on_window_activation|[focus_on_window_activation]]]. +
- +
- +
-''​%%no_focus%%''​ sera aussi ignoré lorsqu'​une seule f enêtre s'​ouvre sur un espace de travail, car elle n'a aucune raison de ne pas obtenir le focus. Cela permet une meilleure utilisation en conbinaison avec ''​%%workspace_layout%%''​. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-no_focus <​criteria>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-no_focus [window_role="​pop-up"​] +
-</​code>​ +
- +
- +
- +
-==== 4.15. Variables ==== +
- +
-Comme vous l'avez appris dans la section sur les raccourcis clavier, vous pouvez configurer de nombreux raccourcis contenant des touches de modification. Si vous souhaitez vous épargner de la saisie et pouvoir changer le modificateur que vous utilisez plus tard, les variables peuvent être utiles. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-set $<​name>​ <​value>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-set $m Mod1 +
-bindsym $m+Shift+r restart +
-</​code>​ +
- +
- +
-Les variables sont directement remplacées dans le fichier lors de l'​analyse. Le développement des variables n'est pas récursif, il n'est donc pas possible de définir une variable avec une valeur contenant une autre variable. Il n'y a pas de manipulation sophistiquée et il n'est absolument pas prévu de changer cela. Si vous avez besoin d'une configuration plus dynamique, vous devez créer un petit script qui génère un fichier de configuration et l'​exécuter avant de démarrer i3 (par exemple dans votre fichier ''​%%~/​.xsession%%''​). +
- +
- +
-Voir aussi le chapitre [[#​xresources|[xresources]]] pour apprendre à créer des variables basées sur des ressources chargées à partir de la base de données de ressources X (section suivante). +
- +
- +
- +
-==== 4.16. X resources ==== +
- +
-[[#​variables|[variables]]] peuvent également être créées à l'aide d'une valeur configurée dans la base de données Xressources. Ceci est utile, par exemple, pour éviter de configurer des valeurs de couleur dans la configuration i3. Au lieu de cela, les valeurs peuvent être configurées,​ une fois, dans la base de données de Xressources pour obtenir un thème de couleur cohérent et facilement maintenable dans de nombreuses applications X. +
- +
- +
-La définition d'une ressource chargera cette ressource à partir de la base de données et attribuera sa valeur à la variable spécifiée. Cela se fait textuellement et la valeur doit donc être au format utilisé par i3. Une solution de rechange doit être spécifiée au cas où la ressource ne puisse pas être chargée à partir de la base de données. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-set_from_resource $<​name>​ <​resource_name>​ <​fallback>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# The ~/​.Xresources should contain a line such as +
-#     ​*color0:​ #121212 +
-# and must be loaded properly, e.g., by using +
-#     xrdb ~/​.Xresources +
-# This value is picked up on by other applications (e.g., the URxvt terminal +
-# emulator) and can be used in i3 like this: +
-set_from_resource $black i3wm.color0 #000000 +
-</​code>​ +
- +
- +
- +
-==== 4.17. Placement automatique des clients dans un espace de travail ==== +
- +
-Pour placer une fenêtre spécifique sur un espace de travail donné, vous utiliserez l'​option **assignment**. Vous pouvez désigner une fenêtre en utilisant un ou plusieurs critères, voir[[#​command_criteria|[command_criteria]]]. La différence entre ''​%%assign%%''​ et ''​%%for_window <​criteria>​ move to workspace%%''​ est que l'​action ne s'​applique pas uniquement à l'​ouverture de le fenêtre, mais aussi lorsqu'​une fenêtre change ses propriétés et correspond à un des critères spécifiés. +
- +
- +
-Ainsi, il est recommandé de faire correspondre les classes de fenêtre (et les instances, le cas échéant) au lieu des titres de fenêtre chaque fois que possible car certaines applications créent d'​abord leur fenêtre, puis s'​inquiètent de définir le titre correct. Firefox et Vimperator par exemple : la fenêtre s'​ouvre sous le nom de Firefox, et ce n'est que lorsque Vimperator est chargé que le titre change. Comme i3 recevra le titre dès que l'​application affichera la fenêtre, vous devrez dans ce cas faire correspondre ''​%%Firefox%%''​. Un autre problème connu concerne Spotify, qui ne définit pas les indices de classe lors de l'​affichage de la fenêtre, ce qui signifie que vous devrez utiliser une règle ''​%%for_window%%''​ pour attribuer Spotify à un espace de travail spécifique. Pour finir, utiliser ''​%%assign [tiling]%%''​ et ''​%%assign [floating]%%''​ n'est pas supporté. +
- +
- +
-Vous pouvez aussi désigner une fenêtre pour qu'​elle s'​affiche sur un écran spécifique. Vous pouvez utiliser le nom ''​%%RandR%%''​ comme ''​%%VGA1%%''​ ou un nom relatif à l'​éran contenant la fenêtre détenant actuellement le focus comme ''​%%left%%''​ et ''​%%down%%''​. +
- +
- +
-Les assignations sont traitées par i3 dans l'​ordre dans lequel elles apparaissent dans le fichier de configuration. Le premier qui correspond à la fenêtre gagne et les affectations ultérieures ne sont pas prises en compte. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-assign <​criteria>​ [→] [workspace] [number] <​workspace>​ +
-assign <​criteria>​ [→] output left|right|up|down|primary|<​output>​ +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Assign URxvt terminals to workspace 2 +
-assign [class="​URxvt"​] 2 +
- +
-# Same thing, but more precise (exact match instead of substring) +
-assign [class="​^URxvt$"​] 2 +
- +
-# Same thing, but with a beautiful arrow :) +
-assign [class="​^URxvt$"​] → 2 +
- +
-# Assignment to a named workspace +
-assign [class="​^URxvt$"​] → work +
- +
-# Assign to the workspace with number 2, regardless of name +
-assign [class="​^URxvt$"​] → number 2 +
- +
-# You can also specify a number + name. If the workspace with number 2 exists, +
-# assign will skip the text part. +
-assign [class="​^URxvt$"​] → number "2: work"​ +
- +
-# Start urxvt -name irssi +
-assign [class="​^URxvt$"​ instance="​^irssi$"​] → 3 +
- +
-# Assign urxvt to the output right of the current one +
-assign [class="​^URxvt$"​] → output right +
- +
-# Assign urxvt to the primary output +
-assign [class="​^URxvt$"​] → output primary +
-</​code>​ +
- +
- +
-Notez que vous n'avez peut-être pas encore configuré d'​écran principal. Pour ce faire, exécutez : +
- +
- +
-<​code>​ +
-xrandr --output <​output>​ --primary +
-</​code>​ +
- +
- +
-La petite flêche n'est pas obligatoire,​ c'est simplement pour faire joli :-). Si vous voulez l'​employer,​ prenez soin d'​utiliser une flêche encodée en UTF-8, pas ''​%%->​%%''​ ou un truc du genre. +
- +
- +
-Pour obtenir la class et l'​instance,​ vous pouvez utiliser ''​%%xprop%%''​. Après avoir cliqué sur une fenêtre, vous obtiendrez ses informations dans ce style : +
- +
- +
-**xprop** : +
- +
- +
-<​code>​ +
-WM_CLASS(STRING) = "​irssi",​ "​URxvt"​ +
-</​code>​ +
- +
- +
-La première partie de WM_CLASS est l'​instance ("​irssi"​ dans notre exemple), la seconde partie est la class ("​URxvt"​ dans notre exemple). +
- +
- +
-Si vous avez le moindre soucis avec les assignements,​ vérifiez tout d'​abord le fichier de log i3 (voir https://​i3wm.org/​docs/​debugging.html). Il contient plus de détails à propos du processus d'​assignement et les renseignements sur la class, l'​instance et le titre des fenêtres. +
- +
- +
-Notez que si vous souhaitez démarrer une application une seule fois sur un espace de travail spécifique,​ mais que vous ne souhaitez pas attribuer ce comportement à toutes les instances de manière permanente, vous pouvez utiliser la prise en charge des notifications de démarrage d'i3 (voir [[#​exec|[exec]]]) dans votre fichier de configuration de la manière suivante : +
- +
- +
-**Lancer iceweasel sur l'​espace de travail 3 (une seule fois)** : +
- +
- +
-<​code>​ +
-# Start iceweasel on workspace 3, then switch back to workspace 1 +
-# (Being a command-line utility, i3-msg does not support startup notifications,​ +
-#  hence the exec --no-startup-id.) +
-# (Starting iceweasel with i3’s exec command is important in order to make i3 +
-#  create a startup notification context, without which the iceweasel window(s) +
-#  cannot be matched onto the workspace on which the command was started.) +
-exec --no-startup-id i3-msg '​workspace 3; exec iceweasel; workspace 1' +
-</​code>​ +
- +
- +
- +
-==== 4.18. Lancement d'​applications au démarrage d'i3 ==== +
- +
-En utilisant la commande ''​%%exec%%''​ en dehors du contexte des raccourcis clavier, vous pouvez configurer quelles applications seront lancées au démarrage d'i3. ''​%%exec%%''​ ne sera pas actif lors d'un rechargement d'i3, si vous désirez que la commande soit exécutée de nouveau lors du rechargement d'i3, utilisez ''​%%exec_always%%''​. Ces commandes seront lancées dans l'​ordre d'​apparition dans le fichier de configuration. +
- +
- +
-Voir la section [[#​command_chaining|[command_chaining]]] pour plus de détails sur l'​utilisation de ''​%%;​%%''​ (semicolon) et ''​%%,​%%''​ (comma) : ils lient les commandes sur i3, donc vous devez utiliser des guillemets ''​%%""​%%''​ si une commande les contient (voir [[#​exec_quoting|[exec_quoting]]]). +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-exec [--no-startup-id] <​command>​ +
-exec_always [--no-startup-id] <​command>​ +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-exec chromium +
-exec_always ~/​my_script.sh +
- +
-# Execute the terminal emulator urxvt, which is not yet startup-notification aware. +
-exec --no-startup-id urxvt +
-</​code>​ +
- +
- +
-L'​option ''​%%--no-startup-id%%''​ est expliquée ici : [[#​exec|[exec]]]. +
- +
- +
- +
-==== 4.19. Placer automatiquement une espace de travail sur un écran ==== +
- +
-Si vous affectez des clients à des espaces de travail, il peut être pratique de placer les espaces de travail sur des écrans spécifiques. En outre, l'​assignation d'​espaces de travail aux écrans déterminera quel espace de travail i3 utilise lors du branchement d'un écran ou au démarrage (par exemple, il utilisera 1 pour le premier écran, 2 pour le deuxième écran et ainsi de suite). +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-workspace <​workspace>​ output <​output1>​ [output2]… +
-</​code>​ +
- +
- +
-L'​écran //output// est le nom que ''​%%RandR%%''​ donne à votre écran. Pour un ordinateur portable, vous devriez utiliser VGA1 et LVDS1 comme noms d'​écran. Vous pouvez lister les écrans actifs avec ''​%%xrandr --current%%''​. +
- +
- +
-Si votre serveur X supporte RandR 1.5 ou supérieur, i3 utilisera la fonction ''​%%monitor%%''​ de RandR au lieu de la fonction ''​%%output%%''​. Utilisez ''​%%xrandr --listmonitors%%''​ pour afficher la liste. En général, un ''​%%monitor%%''​ contient un seul ''​%%output%%''​ et a le même nom; mais si ce n'est pas le cas, vous pouvez spécifier le nom du moniteur ou de la sortie dans la configuration d'i3. Par exemple, le Dell UP2414Q utilise deux dénominations en interne, de sorte que ses noms de sortie peuvent être «DP1» et «DP2», mais le nom du moniteur est «Dell UP2414Q». +
- +
- +
-(Notez que même si vous spécifiez le nom d'une sortie qui ne couvre pas tout le moniteur, i3 utilisera toujours la zone entière du moniteur contenant plutôt que celle de la sortie uniquement.) +
- +
- +
-Vous pouvez spécifiez plusieurs écrans. Le premier disponible sera utilisé. +
- +
- +
-Si vous utilisez le nom des espaces de travail, vous devez utiliser des guillements : +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-workspace 1 output LVDS1 +
-workspace 2 output primary +
-workspace 5 output VGA1 LVDS1 +
-workspace "2: vim" output VGA1 +
-</​code>​ +
- +
- +
- +
-==== 4.20. Changer les couleurs ==== +
- +
-Vous pouvez modifier chaque couleur utilisée par i3 pour décorer les fenêtres. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-<​colorclass>​ <​border>​ <​background>​ <​text>​ <​indicator>​ <​child_border>​ +
-</​code>​ +
- +
- +
-Avec ''​%%colorclass%%''​ pouvant être un de ceux-ci : +
- +
- +
-  * ** client.focused ** Un client possédant le focus. +
-  * ** client.focused_inactive ** Un client qui a le focus dans son container, mais qui ne l'a pas pour l'​instant. +
-  * ** client.unfocused ** Un client qui n'a pas le focus dans son container. +
-  * ** client.urgent ** Un client qui demande l'​attention avec le tag '​urgent'​. +
-  * ** client.placeholder ** L'​arrière-plan et la couleur du texte sont utilisés pour dessiner le l'​espace réservé par le contenu de la fenêtre (lors de la restauration du layout). La bordure et l'​indicateur sont ignorés +
-  * ** client.background ** Couleur d'​arrière-plan qui sera utilisée pour peindre l'​arrière-plan de la fenêtre client au-dessus de laquelle le client sera rendu. Seuls les clients qui ne couvrent pas toute la zone de cette fenêtre exposent la couleur. Notez que cette classe de couleurs ne prend qu'une seule couleur. +
- +
- +
-Les couleurs sont indiquées au format HTML (#rrggbb), voir l'​exemple suivant : +
- +
- +
-**Exemples (couleurs par défaut)** : +
- +
- +
-<​code>​ +
-# class                 ​border ​ backgr. text    indicator child_border +
-client.focused ​         #4c7899 #285577 #ffffff #​2e9ef4 ​  #​285577 +
-client.focused_inactive #333333 #5f676a #ffffff #​484e50 ​  #​5f676a +
-client.unfocused ​       #333333 #222222 #888888 #​292d2e ​  #​222222 +
-client.urgent ​          #​2f343a #900000 #ffffff #​900000 ​  #​900000 +
-client.placeholder ​     #000000 #0c0c0c #ffffff #​000000 ​  #​0c0c0c +
- +
-client.background ​      #​ffffff +
-</​code>​ +
- +
- +
-Notez que pour les décorations de fenêtre, la couleur autour de la fenêtre enfant est "​child_border",​ et la couleur "​border"​ représente les deux fines lignes autour de la barre de titre. +
- +
- +
-La couleur de l'​indicateur est utilisée pour indiquer où une nouvelle fenêtre sera ouverte. Pour les containers fractionnés horizontaux,​ la bordure droite sera peinte dans la couleur de l'​indicateur,​ pour les containers fractionnés verticaux, la bordure inférieure. Cela ne s'​applique qu'aux fenêtres simples dans un container divisé, qui sont autrement impossibles à distinguer des fenêtres simples à l'​extérieur d'un container divisé. +
- +
- +
- +
-==== 4.21. Communication avec i3 ==== +
- +
-i3 utilise des sockets Unix pour fournir une interface IPC. Cela permet à des programmes tiers d'​obtenir des informations d'i3, telles que les espaces de travail actuels (pour afficher une barre d'​espace de travail), et de contrôler i3. +
- +
- +
-Le socket IPC est activé par défaut et sera créée dans ''​%%$XDG_RUNTIME_DIR/​i3/​ipc-socket.%p%%''​ si le répertoire est disponible, en revenant à ''​%%/​tmp/​i3-%u.XXXXXX/​ipc-socket.%p%%'',​ où ''​%%%u%%''​ est votre nom d'​utilisateur UNIX, ''​%%%p%%''​ est le PID de i3 et XXXXXX est une chaîne de caractères aléatoires du jeu de caractères du nom de fichier portable (voir mkdtemp(3)). +
- +
- +
-Vous pouvez modifier le chemin par défaut via la variable d'​environnement ''​%%I3SOCK%%''​ ou en spécifiant la directive ''​%%ipc-socket%%''​. Ceci n'est pas encouragé, car i3 se comporte correctement par défaut. Si vous décidez de le changer, il est fortement recommandé de le définir sur un emplacement dans votre répertoire personnel afin qu'​aucun autre utilisateur ne puisse créer ce répertoire. +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-ipc-socket ~/​.i3/​i3-ipc.sock +
-</​code>​ +
- +
- +
-Vous pouvez utiliser l'​application ''​%%i3-msg%%''​ pour exécuter les commandes listées dans [[#​list_of_commands|[list_of_commands]]]. +
- +
- +
- +
-==== 4.22. Le focus suit la souris ==== +
- +
-Par défaut, le focus suit les mouvements de votre souris lorsque le pointeur traverse les bordures de la fenêtre. Cependant, si vous avez une configuration où votre souris est trop sur votre chemin (comme un pavé tactile sur votre ordinateur portable que vous ne souhaitez pas désactiver complètement),​ vous pouvez désactiver //​focus_follow_mouse//​ et contrôler le focus uniquement en utilisant votre clavier. La souris sera toujours utile dans la fenêtre active (par exemple pour cliquer sur des liens dans la fenêtre de votre navigateur). +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-focus_follows_mouse yes|no +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-focus_follows_mouse no +
-</​code>​ +
- +
- +
- +
-==== 4.23. Captation de la souris ==== +
- +
-Par défaut, lors du passage du focus à une fenêtre sur un écran différente (par exemple, focalisation d'une fenêtre sur l'​espace de travail 3 sur la sortie VGA-1, provenant de l'​espace de travail 2 sur LVDS-1), le curseur de la souris est capté et s'​affiche au centre de cette fenêtre. +
- +
- +
-Avec l'​option ''​%%mouse_warping%%''​ , vous pouvez décider quand votre pointeur sera capté. ''​%%none%%''​ désactive totalement la captation, quel que soit le ''​%%output%%''​ par défaut défini ci-dessous. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-mouse_warping output|none +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-mouse_warping none +
-</​code>​ +
- +
- +
- +
-==== 4.24. Les popups en mode plein écran ==== +
- +
-Lorsque vous êtes en mode plein écran, certaines applications ouvrent encore des fenêtres contextuelles (comme Xpdf par exemple). Cela est dû au fait que ces applications peuvent ne pas savoir qu'​elles sont en mode plein écran (elles ne vérifient pas l'​indication correspondante). Il y a trois choses à faire dans cette situation:​ +
- +
- +
-  - Afficher la popup uniquement si elle appartient à l'​application plein écran. Il s'agit de la valeur par défaut et devrait être un comportement raisonnable pour la plupart des utilisateurs. +
-  - Ignorez simplement la fenêtre contextuelle (ne la mappez pas). Cela ne vous interrompra pas pendant que vous êtes en plein écran. Cependant, certaines applications peuvent mal réagir à cela (blocage jusqu'​à ce que vous sortiez du plein écran). +
-  - Quitter le plein écran. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-popup_during_fullscreen smart|ignore|leave_fullscreen +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-popup_during_fullscreen smart +
-</​code>​ +
- +
- +
- +
-==== 4.25. Retour de focus ==== +
- +
-Par défaut, dans un container avec plusieurs fenêtres ou containers enfants, la fenêtre opposée sera focalisée lors de la tentative de déplacer le focus sur le bord d'un container (et qu'il n'y a aucun autre container dans cette direction) - le focus repart dans un cycle. +
- +
- +
-Vous pouvez modifier ce comportement en configurant l'​option ''​%%focus_wrapping%%''​ sur ''​%%no%%''​. +
- +
- +
-Lorsqu'​il est activé, ''​%%focus_wrapping%%''​ ne se produit pas par défaut s'il existe une autre fenêtre ou container dans la direction spécifiée,​ et le focus sera à la place définie sur cette fenêtre ou ce container. Il s'agit du comportement par défaut afin que vous puissiez accéder à toutes vos fenêtres sans avoir à utiliser le ''​%%focus parent%%''​. +
- +
- +
-Si vous désirez activer le ''​%%focus_wrapping%%''​ de façon **permanente** et que vous êtes à l'aise avec la fonction ''​%%focus parent%%''​ pour vous déplacer dans les containers, vous pouvez définir l'​option ''​%%focus_wrapping%%''​ sur ''​%%force%%''​. +
- +
- +
-Pour restreindre le focus à l'​intérieur d'un espace de travail, vous devez configurez l'​option ''​%%focus_wrapping%%''​ sur ''​%%workspace%%''​. Vous devrez alors utiliser ''​%%focus parent%%''​ pour remonter le focus jusqu'​au niveau d'un espace de travail pour ensuite déplacer le focus sur un autre espace de travail avec la commande de focus. (la commande ''​%%workspace%%''​ fonctionnera toujours comme prévu). +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-focus_wrapping yes|no|force|workspace +
- +
-# Legacy syntax, equivalent to "​focus_wrapping force"​ +
-force_focus_wrapping yes +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Disable focus wrapping +
-focus_wrapping no +
- +
-# Force focus wrapping +
-focus_wrapping force +
-</​code>​ +
- +
- +
- +
-==== 4.26. Forcer Xinerama ==== +
- +
-Comme expliqué ici https://​i3wm.org/​docs/​multi-monitor.html,​ certains drivers X11 (particulièrement les drivers nVidia) supportent uniquement Xinerama et non RandR. Dans cette situation, i3 doit être prévenu explicitement afin d'​utiliser le support inférieur pour l'API Xinerama et de ne pas recharger les écrans à la volée (ils seront configurés une seule fois au lancement d'​i3). +
- +
- +
-Pour les personnes ne pouvant pas utiliser le fichier ''​%%~/​.xsession%%''​ pour y ajouter ''​%%--force-xinerama%%'',​ i3 propose une option : +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-force_xinerama yes|no +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-force_xinerama yes +
-</​code>​ +
- +
- +
-Notez que vos écrans ne seront pas nommés avec Xinerama (comme ''​%%HDMI1%%''​),​ ils sont numérotés en commençant par 0 : ''​%%xinerama-0%%'',​ ''​%%xinerama-1%%'',​ … +
- +
- +
- +
-==== 4.27. Aller-retour automatique lors du passage sur un espace de travail ==== +
- +
-La configuration permet d'​activer le retour automatique sur le dernier espace de travail (''​%%workspace back_and_forth%%''​ voir [[#​back_and_forth|[back_and_forth]]]) lorsqu'​on visite un autre espace de travail. +
- +
- +
-Par exemple : imaginons que vous êtes sur l'​espace de travail "1: www" et que vous passez sur l'​espace de travail "2: IM" en utilisant mod+2 car un humain vous a envoyé un message. Vous n'avez pas besoin de vous souvenir sur quel espace de travail vous étiez, il vous suffit de presser $mod+2 une nouvelle fois pour revenir sur l'​espace de travail "1: www"​. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-workspace_auto_back_and_forth yes|no +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-workspace_auto_back_and_forth yes +
-</​code>​ +
- +
- +
- +
-==== 4.28. Retarder la réinitialisation de l'​indicateur d'​urgence lors d'un changement d'​espace de travail ==== +
- +
-Si une application sur un autre espace de travail envoie un indice d'​urgence,​ le passage à cet espace de travail peut conduire à un focus immédiat de l'​application,​ ce qui signifie également que la couleur de la décoration de la fenêtre serait immédiatement réinitialisée sur ''​%%client.focused%%''​. Cela peut rendre inutilement difficile de dire quelle fenêtre a déclenché l'​urgence à l'​origine. +
- +
- +
-Afin d'​éviter cela, vous pouvez dire à i3 de retarder la réinitialisation de l'​état d'​urgence d'un certain temps en utilisant la directive ''​%%force_display_urgency_hint%%''​. La définition de la valeur sur 0 désactive cette fonction. +
- +
- +
-Par défaut, l'​urgence disparaît au bout de 500ms. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-force_display_urgency_hint <​timeout>​ ms +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-force_display_urgency_hint 500 ms +
-</​code>​ +
- +
- +
- +
-==== 4.29. Captation du Focus lors de l'​activation d'une fenêtre ==== +
- +
-Lorsqu'​une fenêtre est activée, par exemple via ''​%%firefox nakedeb.arpinux.org%%'',​ elle va demander à capter le focus. Si vous désirez modifier ce comportement,​ plusieurs options existent. +
- +
- +
-Notez que cela n'​affecte pas les fenêtres qui se lancent. Pour empêcher une fenêtre qui s'​ouvre de réclamer le focus, voir [[#​no_focus|[no_focus]]]. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-focus_on_window_activation smart|urgent|focus|none +
-</​code>​ +
- +
- +
-Explications des différents modes : +
- +
- +
-  * ** smart ** Le comportement par défaut : si la fenêtre demandant le focus est sur l'​espace de travail actif, elle recevra le focus. Sinon, l'​indication d'​urgence sera envoyée. +
-  * ** urgent ** La fenêtre sera marquée comme urgente, mais le focus ne sera pas capté. +
-  * ** focus ** La fenêtre recevra le focus et ne sera pas marque comme urgente. +
-  * ** none ** La fenêtre ne recevra pas le focus et ne sera pas marquée comme urgente. +
- +
- +
- +
-==== 4.30. Afficher les marques sur les décoration des fenêtres ==== +
- +
-Si activé, les marques (voir [[#​vim_like_marks|[vim_like_marks]]]) sur les fenêtres sont dessinées dans leur décoration de fenêtre. Cependant, toute marque commençant par un underscore dans son nom (''​%%_%%''​) ne sera pas dessinée même si cette option est activée. +
- +
- +
-L'​option par défaut est ''​%%yes%%''​. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-show_marks yes|no +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-show_marks yes +
-</​code>​ +
- +
- +
- +
-==== 4.31. Continuité des lignes ==== +
- +
-Les fichiers de configuration prennent en charge la continuation de ligne, ce qui signifie que lorsque vous terminez une ligne par une barre oblique inverse (''​%%\%%''​),​ le saut de ligne sera ignoré par l'​analyseur. Cette fonctionnalité peut être utilisée pour créer des fichiers de configuration plus lisibles. Les lignes commentées ne sont pas poursuivies. +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-bindsym Mod1+f \ +
-fullscreen toggle +
- +
-# this line is not continued \ +
-bindsym Mod1+F fullscreen toggle +
-</​code>​ +
- +
- +
- +
- +
- +
-===== 5. Configurer i3bar ===== +
- +
-La barre en bas de votre moniteur est dessinée par un processus distinct appelé **i3bar**. Avoir cette partie de «l'​interface utilisateur i3» dans un processus séparé présente plusieurs avantages:​ +
- +
- +
-  - C'est une approche modulaire. Si vous n'avez pas du tout besoin d'une barre d'​espace de travail, ou si vous préférez une autre (dzen2, xmobar, peut-être même gnome-panel ?), vous pouvez simplement supprimer la configuration de l'​i3bar et démarrer votre barre préférée à la place. +
-  - Il suit la philosophie UNIX de "Faire en sorte que chaque programme fasse bien une chose"​. Alors que i3 gère vos fenêtres, i3bar est là pour afficher une barre sur chaque moniteur (sauf si vous le configurez autrement). +
-  - Cela conduit à deux bases de code distinctes et propres. Si vous voulez comprendre i3, vous n’avez pas besoin de vous soucier des détails de la i3bar et vice versa. +
- +
- +
-Cela dit, i3bar est configuré dans le même fichier de configuration que i3. C'est parce qu'il est étroitement couplé avec i3 (contrairement à i3lock ou i3status qui sont utiles pour les personnes utilisant d'​autres gestionnaires de fenêtres). Par conséquent,​ cela n'a aucun sens d'​utiliser un emplacement de configuration différent lorsque nous avons déjà une bonne infrastructure de configuration en place. +
- +
- +
-La configuration de la barre de votre espace de travail commence par l'​ouverture d'un bloc ''​%%bar%%''​. Vous pouvez avoir plusieurs blocs de barres pour utiliser différents paramètres pour différentes sorties (moniteurs) ou pour avoir plusieurs barres sur le même écran : +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    status_command i3status +
-+
-</​code>​ +
- +
- +
-==== 5.1. Commande i3bar ==== +
- +
-Par défaut, i3 passera simplement ''​%%i3bar%%''​ et laissera votre shell gérer l'​exécution,​ en recherchant dans votre ''​%%$PATH%%''​ pour une version exploitable. Si vous avez une autre version d'''​%%i3bar%%''​ quelque part ou si le binaire n'est pas dans votre ''​%%$PATH%%'',​ vous pouvez indiquer à i3 quelle commande exécuter. +
- +
- +
-La commande spécifiée sera transmise à ''​%%sh -c%%'',​ vous pouvez donc utiliser le globbing et avoir des guillemets corrects etc. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-i3bar_command <​command>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    i3bar_command /​home/​user/​bin/​i3bar +
-+
-</​code>​ +
- +
- +
- +
-==== 5.2. Commande Statusline ==== +
- +
-i3bar peut exécuter un programme et afficher chaque ligne de sa sortie ''​%%stdout%%''​ sur le côté droit de la barre. Ceci est utile pour afficher les informations système telles que votre adresse IP actuelle, l'​état de la batterie ou la date et l'​heure. +
- +
- +
-La commande spécifiée sera transmise à ''​%%sh -c%%'',​ vous pouvez donc utiliser le globbing et avoir des guillemets corrects etc. Notez que pour la gestion du signal, en fonction de votre shell (les utilisateurs de dash(1) sont connus pour être affecté), vous devez utiliser la commande ''​%%exec%%''​ du shell pour que les signaux soient transmis à votre programme, pas au shell. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-status_command <​command>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    status_command i3status --config ~/​.i3status.conf +
- +
-    # For dash(1) users who want signal handling to work: +
-    status_command exec ~/​.bin/​my_status_command +
-+
-</​code>​ +
- +
- +
- +
-==== 5.3. Mode d'​affichage ==== +
- +
-Vous pouvez soit avoir i3bar soit visible en permanence sur un bord de l'​écran (mode ''​%%dock%%''​) ou le faire apparaître lorsque vous appuyez sur votre touche de modification (mode ''​%%hide%%''​). Il est également possible de forcer i3bar à toujours rester caché (mode ''​%%invisible%%''​). La touche de modification peut être configurée à l'aide de l'​option ''​%%modifier%%''​. +
- +
- +
-Le mode d'​affichage peut être modifié pendant l'​exécution via la commande ''​%%bar mode%%''​. Au rechargement,​ le mode reviendra à sa valeur configurée. +
- +
- +
-Le mode ''​%%hide%%''​ maximise l'​espace d'​écran qui peut être utilisé pour les fenêtres réelles. En outre, i3bar envoie les signaux ''​%%SIGSTOP%%''​ et ''​%%SIGCONT%%''​ au processus de la barre d'​état pour économiser l'​énergie de la batterie. +
- +
- +
-Le mode ''​%%invisible%%''​ permet de maximiser en permanence l'​espace de l'​écran,​ car la barre n'est jamais affichée. Ainsi, vous pouvez configurer i3bar pour ne pas vous déranger en apparaissant à cause d'un indice d'​urgence ou parce que la touche de modification est enfoncée. +
- +
- +
-Afin de contrôler si i3bar est masqué ou affiché en mode ''​%%hide%%'',​ il existe l'​option ''​%%hidden_state%%'',​ qui n'a aucun effet en mode dock ou en mode invisible. Il indique l'​état caché actuel de la barre : (1) La barre agit comme en mode caché normal, elle est cachée et n'est affichée qu'en cas d'​indices d'​urgence ou en appuyant sur la touche de modification (état ''​%%hide%%''​),​ ou (2) il est dessiné sur l'​espace de travail actuellement visible (état ''​%%show%%''​). +
- +
- +
-Comme le mode, ''​%%hidden_state%%''​ peut également être contrôlé via i3, en utilisant la commande ''​%%bar hidden_state%%''​. +
- +
- +
-Le mode par défaut est le mode dock; en mode hide, le modificateur par défaut est Mod4 (généralement la touche Windows). La valeur par défaut de hidden_state est hide. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-mode dock|hide|invisible +
-hidden_state hide|show +
-modifier <​Modifier>​|none +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    mode hide +
-    hidden_state hide +
-    modifier Mod1 +
-+
-</​code>​ +
- +
- +
-Les modificateurs disponibles sont Mod1-Mod5, Shift, Control (voir ''​%%xmodmap (1)%%''​). Vous pouvez également utiliser "​none"​ si vous ne souhaitez pas qu'un modificateur déclenche ce comportement. +
- +
- +
- +
-==== 5.4. Commandes lors d'un clic ==== +
- +
-Spécifier une commande à exécuter lors d'un clic sur i3bar pour remplacer le comportement par défaut peut être utile, par exemple, pour désactiver l'​action de la molette de défilement ou exécuter des scripts qui implémentent un comportement personnalisé pour ces boutons. +
- +
- +
-Un bouton est toujours nommé ''​%%button<​1-5>​%%'',​ où 1 à 5 sont les boutons par défaut comme suit et les nombres plus élevés peuvent être des boutons spéciaux sur les appareils offrant plus de boutons: +
- +
- +
-  * ** button1 ** clic gauche. +
-  * ** button2 ** clic central. +
-  * ** button3 ** clic droit. +
-  * ** button4 ** molette vers le haut. +
-  * ** button5 ** molette vers le bas. +
- +
- +
-Veuillez noter que les anciennes commandes ''​%%wheel_up_cmd%%''​ et ''​%%wheel_down_cmd%%''​ sont obsolètes et seront supprimées dans une prochaine version. Nous vous recommandons fortement d'​utiliser plutôt le ''​%%bindsym%%''​ plus général avec ''​%%button4%%''​ et ''​%%button5%%''​. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-bindsym [--release] button<​n>​ <​command>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    # disable clicking on workspace buttons +
-    bindsym button1 nop +
-    # Take a screenshot by right clicking on the bar +
-    bindsym --release button3 exec --no-startup-id import /​tmp/​latest-screenshot.png +
-    # execute custom script when scrolling downwards +
-    bindsym button5 exec ~/​.i3/​scripts/​custom_wheel_down +
-+
-</​code>​ +
- +
- +
- +
-==== 5.5. ID de la barre ==== +
- +
-Spécifie l'ID de barre pour l'​instance de barre configurée. Si cette option est manquante, l'ID est défini sur //bar-x//, où x correspond à la position du bloc de barres dans le fichier de configuration (//bar-0//, //bar-1//, etc). +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-id <​bar_id>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    id bar-1 +
-+
-</​code>​ +
- +
- +
- +
-==== 5.6. Position ==== +
- +
-Cette option détermine l'​emplacement de la barre sur l'​écran. +
- +
- +
-Par défaut : bottom. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-position top|bottom +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    position top +
-+
-</​code>​ +
- +
- +
- +
-==== 5.7. Écran(s) ==== +
- +
-Vous pouvez restreindre i3bar à une ou plusieurs sorties (moniteurs). La valeur par défaut est de gérer toutes les sorties. La limitation des sorties est utile pour utiliser différentes options pour différentes sorties en utilisant plusieurs blocs //bar//. +
- +
- +
-Pour qu'une instance i3bar particulière gère plusieurs sorties, spécifiez la directive de sortie plusieurs fois. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-output primary|<​output>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# big monitor: everything +
-bar { +
-    # The display is connected either via HDMI or via DisplayPort +
-    output HDMI2 +
-    output DP2 +
-    status_command i3status +
-+
- +
-# laptop monitor: bright colors and i3status with less modules. +
-bar { +
-    output LVDS1 +
-    status_command i3status --config ~/​.i3status-small.conf +
-    colors { +
-        background #000000 +
-        statusline #ffffff +
-    } +
-+
- +
-# show bar on the primary monitor and on HDMI2 +
-bar { +
-    output primary +
-    output HDMI2 +
-    status_command i3status +
-+
-</​code>​ +
- +
- +
-Notez que vous n'avez peut-être pas encore configuré de sortie principale. Pour ce faire, exécutez : +
- +
- +
-<​code>​ +
-xrandr --output <​output>​ --primary +
-</​code>​ +
- +
- +
- +
-==== 5.8. Zone de notification ==== +
- +
-i3bar par défaut fournit une zone de notification où des programmes tels que NetworkManager,​ VLC, Pidgin, etc. peuvent placer de petites icônes. +
- +
- +
-Vous pouvez configurer sur quelle sortie (moniteur) les icônes doivent être affichées ou vous pouvez désactiver complètement la fonctionnalité. +
- +
- +
-Vous pouvez utiliser plusieurs directives ''​%%tray_output%%''​ dans votre configuration pour spécifier une liste de sorties sur lesquelles vous voulez que la zone apparaisse. La première sortie disponible dans cette liste telle que définie par l'​ordre des directives sera utilisée pour la zone de notification. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-tray_output none|primary|<​output>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# disable system tray +
-bar { +
-    tray_output none +
-+
- +
-# show tray icons on the primary monitor +
-bar { +
-    tray_output primary +
-+
- +
-# show tray icons on the big monitor +
-bar { +
-    tray_output HDMI2 +
-+
-</​code>​ +
- +
- +
-Notez que vous n'avez peut-être pas encore configuré de sortie principale. Pour ce faire, exécutez : +
- +
- +
-<​code>​ +
-xrandr --output <​output>​ --primary +
-</​code>​ +
- +
- +
-Notez que lorsque vous utilisez plusieurs blocs de configuration de barres, spécifiez ''​%%tray_output primary%%''​ dans chacun d'eux ou spécifiez explicitement ''​%%tray_output none%%''​ dans les barres qui ne doivent pas afficher la barre d'​état,​ sinon les différentes instances peuvent se concurrencer en essayant d'​afficher les icônes de la barre d'​état. +
- +
- +
- +
-==== 5.9. Marges dans la zone de notification ==== +
- +
-La zone de notification est affichées sur le côté droit de la barre. Par défaut, une marge de 2 pixels est utilisée pour le côté supérieur, inférieur et droit de la zone de notification et entre les icônes. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-tray_padding <px> [px] +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# Obey Fitts'​s law +
-tray_padding 0 +
-</​code>​ +
- +
- +
- +
-==== 5.10. Police de caractère ==== +
- +
-Spécifie la police à utiliser dans la barre. Voir [[#​fonts|[fonts]]]. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-font <​font>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 +
-    font pango:​DejaVu Sans Mono 10 +
-+
-</​code>​ +
- +
- +
- +
-==== 5.11. Séparateur personnalisé ==== +
- +
-Spécifie un symbole personnalisé à utiliser pour le séparateur par opposition au séparateur vertical d'un pixel par défaut. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-separator_symbol <​symbol>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    separator_symbol ":​|:"​ +
-+
-</​code>​ +
- +
- +
- +
-==== 5.12. Boutons d'​espace de travail ==== +
- +
-Spécifie si les boutons de l'​espace de travail doivent être affichés ou non. Ceci est utile si vous souhaitez afficher une barre d'​état contenant uniquement des informations supplémentaires. +
- +
- +
-Par défaut, les boutons des espaces de travail sont affichés. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-workspace_buttons yes|no +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    workspace_buttons no +
-+
-</​code>​ +
- +
- +
- +
-==== 5.13. Largeur minimale pour les boutons d'​i3bar ==== +
- +
-Par défaut, la largeur d'un bouton d'​espace de travail est déterminée par la largeur du texte affichant le nom de l'​espace de travail. Si le nom est trop court (par exemple, une lettre), le bouton de l'​espace de travail peut paraître trop petit. +
- +
- +
-Cette option spécifie la largeur minimale des boutons de l'​espace de travail. Si le nom d'un espace de travail est trop court pour couvrir le bouton, un remplissage supplémentaire est ajouté des deux côtés du bouton afin que le texte soit centré. +
- +
- +
-La valeur par défaut de zéro signifie qu'​aucun remplissage supplémentaire n'est ajouté. +
- +
- +
-Le réglage s'​applique également à l'​indicateur de mode de raccourcis actif. +
- +
- +
-Notez que les pixels spécifiés font référence à des pixels logiques, ce qui peut se traduire par plus de pixels sur les écrans HiDPI. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-workspace_min_width <px> [px] +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    workspace_min_width 40 +
-+
-</​code>​ +
- +
- +
- +
-==== 5.14. Affichage du nom ou du numéro des espaces de travail ==== +
- +
-Spécifie si les numéros d'​espace de travail doivent être affichés dans les boutons de l'​espace de travail. Ceci est utile si vous souhaitez avoir un espace de travail nommé qui reste dans l'​ordre sur la barre en fonction de son numéro sans afficher le préfixe numérique. +
- +
- +
-Lorsque ''​%%strip_workspace_numbers%%''​ est défini sur ''​%%yes%%'',​ tout espace de travail dont le nom est de la forme "[n] [:] [NAME]"​ affichera uniquement le nom. Vous pouvez utiliser ceci, par exemple, pour afficher des chiffres romains plutôt que des chiffres en nommant vos espaces de travail «1: I», «2: II», «3: III», «4: IV», etc. +
- +
- +
-Lorsque ''​%%strip_workspace_name%%''​ est défini sur ''​%%yes%%'',​ tout espace de travail dont le nom est de la forme "[n] [:] [NAME]"​ affichera uniquement le numéro. +
- +
- +
-La valeur par défaut est d'​afficher le nom complet dans le bouton de l'​espace de travail. Sachez que les deux points dans le nom de l'​espace de travail sont facultatifs,​ donc ''​%%[n] [NAME]%%''​ aura également le nom et le numéro de l'​espace de travail supprimés correctement. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-strip_workspace_numbers yes|no +
-strip_workspace_name yes|no +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    strip_workspace_numbers yes +
-+
-</​code>​ +
- +
- +
- +
-==== 5.15. Indicateur du mode de raccourcis ==== +
- +
-Spécifie si l'​indicateur de mode de raccourcis actif doit être affiché ou non. Cela est utile si vous souhaitez masquer les boutons de l'​espace de travail tout en continuant à voir l'​indicateur de mode de raccourcis. Voir [[#​binding_modes|[binding_modes]]] pour découvrir ce que sont les modes et comment les utiliser. +
- +
- +
-Par défaut, l'​indicateur est affiché. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-binding_mode_indicator yes|no +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bar { +
-    binding_mode_indicator no +
-+
-</​code>​ +
- +
- +
- +
-==== 5.16. Couleurs ==== +
- +
-Sur i3, les couleurs sont au format HTML hexadécimal (#rrggbb). Les couleurs suivantes peuvent être configurées : +
- +
- +
-  * ** background ** couleur de fond de la barre. +
-  * ** statusline ** couleur du texte de la statusline. +
-  * ** separator ** couleur du texte pour les séparateurs. +
-  * ** focused_background ** couleur de fond de la barre du moniteur focalisée. S'il n'est pas utilisé, la couleur sera tirée de ''​%%background%%''​. +
-  * ** focused_statusline ** couleur du texte de la statusline du moniteur focalisé. S'il n'est pas utilisé, la couleur sera tirée de ''​%%statusline%%''​. +
-  * ** focused_separator ** couleur du texte des séparateurs du moniteur focalisé. S'il n'est pas utilisé, la couleur sera tirée de ''​%%separator%%''​. +
-  * ** focused_workspace ** couleur de la bordure, du fond et du texte du bouton d'​espace de travail lorsque l'​espace de travail est focalisé. +
-  * ** active_workspace ** couleur de la bordure, du fond et du texte pour un bouton d'​espace de travail lorsque l'​espace de travail est actif (visible) sur une sortie, mais que le focus est sur une autre. Vous ne pouvez distinguer cela de l'​espace de travail actif que lorsque vous utilisez plusieurs moniteurs. +
-  * ** inactive_workspace ** couleur de la bordure, du fond et du texte d'un bouton d'​espace de travail lorsque l'​espace de travail n'a pas le focus et n'est pas actif (visible) sur une sortie. Ce sera le cas pour la plupart des espaces de travail. +
-  * ** urgent_workspace ** couleur de la bordure, du fond et du texte pour un bouton d'​espace de travail lorsque l'​espace de travail contient une fenêtre avec l'​indication d'​urgence. +
-  * ** binding_mode ** couleur de la bordure, du fond et du texte pour l'​indicateur de mode de raccourcis. Si elles ne sont pas utilisées, les couleurs seront extraites de ''​%%urgent_workspace%%''​. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-colors { +
-    background <​color>​ +
-    statusline <​color>​ +
-    separator <​color>​ +
- +
-    <​colorclass>​ <​border>​ <​background>​ <​text>​ +
-+
-</​code>​ +
- +
- +
-**Exemple (couleurs par défaut)** : +
- +
- +
-<​code>​ +
-bar { +
-    colors { +
-        background #000000 +
-        statusline #ffffff +
-        separator #666666 +
- +
-        focused_workspace ​ #4c7899 #285577 #ffffff +
-        active_workspace ​  #​333333 #5f676a #ffffff +
-        inactive_workspace #333333 #222222 #888888 +
-        urgent_workspace ​  #​2f343a #900000 #ffffff +
-        binding_mode ​      #​2f343a #900000 #ffffff +
-    } +
-+
-</​code>​ +
- +
- +
- +
-==== 5.17. Transparence ==== +
- +
-i3bar peut prendre en charge la transparence en passant l'​indicateur ''​%%--transparency%%''​ dans la configuration : +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-bar { +
-    i3bar_command i3bar --transparency +
-+
-</​code>​ +
- +
- +
-Dans la configuration des couleurs i3bar et l'​attribut de couleur du bloc d'​état i3bar, vous pouvez ensuite utiliser des couleurs au format RGBA, c'​est-à-dire que les deux derniers chiffres (hexadécimaux) spécifient l'​opacité. Par exemple, ''​%%#​00000000%%''​ sera complètement transparent,​ tandis que ''​%%#​000000FF%%''​ sera un noir complètement opaque (le même que ''​%%#​000000%%''​). +
- +
- +
-Veuillez noter qu'en raison du fonctionnement de la zone de notification,​ l'​activation de cet indicateur fera en sorte que toutes les icônes de la zone auront un arrière-plan transparent. +
- +
- +
- +
- +
- +
-===== 6. Liste des commandes ===== +
- +
-Les commandes sont ce que vous liez à des touches spécifiques. Vous pouvez également lancer des commandes au moment de l'​exécution sans appuyer sur une touche à l'aide de l'​interface IPC. Un moyen simple de le faire est d'​utiliser l'​utilitaire ''​%%i3-msg%%''​ : +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# execute this on your shell to make the current container borderless +
-i3-msg border none +
-</​code>​ +
- +
- +
-Les commandes peuvent être enchainées grâce à ''​%%;​%%''​ (a semicolon). Donc pour déplacer une fenêtre sur un espace de travail spécifique puis afficher cet espace de travail : +
- +
- +
-**Example**:​ +
- +
- +
-<​code>​ +
-bindsym $mod+x move container to workspace 3; workspace 3 +
-</​code>​ +
- +
- +
-En outre, vous pouvez modifier la portée d'une commande, c'​est-à-dire quels containers doivent être affectés par cette commande, en utilisant divers critères. Les critères sont spécifiés avant toute commande entre crochets et sont séparés par un espace. +
- +
- +
-Lorsque vous utilisez plusieurs commandes, séparez-les en utilisant une ''​%%,​%%''​ (une virgule) au lieu d'un point-virgule. Les critères s'​appliquent uniquement jusqu'​au point-virgule suivant, donc si vous utilisez un point-virgule pour séparer les commandes, seule la première sera exécutée pour la ou les fenêtres correspondantes. +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# if you want to kill all windows which have the class Firefox, use: +
-bindsym $mod+x [class="​Firefox"​] kill +
- +
-# same thing, but case-insensitive +
-bindsym $mod+x [class="​(?​i)firefox"​] kill +
- +
-# kill only the About dialog from Firefox +
-bindsym $mod+x [class="​Firefox"​ window_role="​About"​] kill +
- +
-# enable floating mode and move container to workspace 4 +
-for_window [class="​^evil-app$"​] floating enable, move container to workspace 4 +
- +
-# move all floating windows to the scratchpad +
-bindsym $mod+x [floating] move scratchpad +
-</​code>​ +
- +
- +
-Les critères disponibles : +
- +
- +
-  * ** class ** Compare la classe de fenêtre (la deuxième partie de WM_CLASS). Utilisez la valeur spéciale ''​%%__focused__%%''​ pour faire correspondre toutes les fenêtres ayant la même classe de fenêtre que la fenêtre actuellement focalisée. +
-  * ** instance ** Compare l'​instance de fenêtre (la première partie de WM_CLASS). Utilisez la valeur spéciale ''​%%__focused__%%''​ pour faire correspondre toutes les fenêtres ayant la même instance de fenêtre que la fenêtre actuellement focalisée. +
-  * ** window_role ** Compare le rôle de fenêtre (WM_WINDOW_ROLE). Utilisez la valeur spéciale ''​%%__focused__%%''​ pour faire correspondre toutes les fenêtres ayant le même rôle de fenêtre que la fenêtre actuellement focalisée. +
-  * ** window_type ** Compare le type de fenêtre (_NET_WM_WINDOW_TYPE). Les valeurs possibles sont ''​%%normal%%'',​ ''​%%dialog%%'',​ ''​%%utility%%'',​ ''​%%toolbar%%'',​ ''​%%splash%%'',​ ''​%%menu%%'',​ ''​%%dropdown_menu%%'',​ ''​%%popup_menu%%'',​ ''​%%tooltip%%''​ et ''​%%notification%%''​. +
-  * ** id ** Compare l'ID de fenêtre X11, que vous pouvez obtenir via ''​%%xwininfo%%''​ par exemple. +
-  * ** title ** Compare le titre de la fenêtre X11 (_NET_WM_NAME ou WM_NAME comme solution de secours). Utilisez la valeur spéciale ''​%%__focused__%%''​ pour faire correspondre toutes les fenêtres ayant le même titre de fenêtre que la fenêtre actuellement focalisée. +
-  * ** urgent ** Compare l'​état d'​urgence de la fenêtre. Peut être «le plus récent» ou «le plus ancien». Correspond à la fenêtre urgente la plus récente ou la plus ancienne, respectivement. (Les alias suivants sont également disponibles : plus récent, dernier, récent, premier) +
-  * ** workspace ** Compare le nom de l'​espace de travail de l'​espace de travail auquel appartient la fenêtre. Utilisez la valeur spéciale ''​%%__focused__%%''​ pour faire correspondre toutes les fenêtres de l'​espace de travail actuellement ciblé. +
-  * ** con_mark ** Compare les marques définies pour ce container, voir [[#​vim_like_marks|[vim_like_marks]]]. Une correspondance est établie si l'une des marques du container correspond à la marque spécifiée. +
-  * ** con_id ** Compare l'ID de container interne à l'i3, que vous pouvez obtenir via l'​interface IPC. Pratique pour la rédaction de scripts. Utilisez la valeur spéciale ''​%%__focused__%%''​ pour correspondre uniquement à la fenêtre actuellement focalisée. +
-  * ** floating ** Correspond uniquement aux fenêtres flottantes. Ce critère ne requiert aucune valeur. +
-  * ** tiling ** Correspond uniquement aux fenêtres pavées. Ce critère ne requiert aucune valeur.. +
- +
- +
-Les critères ''​%%class%%'',​ ''​%%instance%%'',​ ''​%%role%%'',​ ''​%%title%%'',​ ''​%%workspace%%''​ et ''​%%mark%%''​ sont en fait des expressions régulières (PCRE). Voir ''​%%pcresyntax (3)%%''​ ou ''​%%perldoc perlre%%''​ pour savoir comment les utiliser. +
- +
- +
-==== 6.1. Exécuter des applications (exec) ==== +
- +
-À quoi sert un gestionnaire de fenêtres si vous ne pouvez pas démarrer d’applications ? La commande **exec** démarre une application en passant la commande que vous spécifiez à un shell. Cela implique que vous pouvez utiliser le globbing (caractères génériques) et que les programmes seront recherchés dans votre ''​%%$PATH%%''​. +
- +
- +
-Voir [[#​command_chaining|[command_chaining]]] pour savoir comment utiliser ''​%%;​%%''​ (semicolon) et ''​%%,​%%''​ (comma) : ils lient les commandes sur i3, donc vous devrez utiliser des guillemets (voir [[#​exec_quoting|[exec_quoting]]]) si vous les utilisez dans vos commandes. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-exec [--no-startup-id] <​command>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# Start the GIMP +
-bindsym $mod+g exec gimp +
- +
-# Start the terminal emulator urxvt which is not yet startup-notification-aware +
-bindsym $mod+Return exec --no-startup-id urxvt +
-</​code>​ +
- +
- +
-Le paramètre ''​%%--no-startup-id%%''​ désactive la prise en charge de la notification de démarrage pour cette commande exec particulière. Avec la notification de démarrage, i3 peut s'​assurer qu'une fenêtre apparaît sur l'​espace de travail sur lequel vous avez utilisé la commande exec. De plus, cela changera le curseur X11 en ''​%%watch%%''​ (horloge) pendant le lancement de l'​application. Donc, si une application ne prend pas en charge les notifications de démarrage (la plupart des applications utilisant GTK et Qt semblent l'​être),​ vous vous retrouverez avec un curseur en horloge pendant 60 secondes. +
- +
- +
-Si la commande à exécuter contient un ''​%%;​%%''​ (point-virgule) et/ou un ''​%%,​%%''​ (virgule), la commande entière doit être entre guillemets. Par exemple, pour avoir un raccourci clavier pour la commande shell ''​%%notify-send Hello, i3%%'',​ vous ajouteriez une entrée à votre fichier de configuration comme ceci : +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# Execute a command with a comma in it +
-bindsym $mod+p exec "​notify-send Hello, i3" +
-</​code>​ +
- +
- +
-Si toutefois une commande avec une virgule et/ou un point-virgule nécessite elle-même des guillemets, vous devez échapper les guillemets internes avec des doubles barres obliques inverses, comme ceci : +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# Execute a command with a comma, semicolon and internal quotes +
-bindsym $mod+p exec "​notify-send \\"​Hello,​ i3; from $USER\\""​ +
-</​code>​ +
- +
- +
- +
-==== 6.2. Diviser les containers ==== +
- +
-La commande de division fait de la fenêtre courante un container divisé. Les containers divisés peuvent contenir plusieurs fenêtres. Selon la disposition du container divisé, les nouvelles fenêtres sont placées à droite de celle actuelle (splith) ou les nouvelles fenêtres sont placées sous la fenêtre actuelle (splitv). +
- +
- +
-Si vous appliquez cette commande à un container divisé avec la même orientation,​ rien ne se passera. Si vous utilisez une orientation différente,​ l’orientation du container divisé sera modifiée (s’il n’a pas plus d’une fenêtre). L'​option ''​%%toggle%%''​ changera l'​orientation du container divisé s'il contient une seule fenêtre. Sinon, cela fait de la fenêtre actuelle un container divisé avec une orientation opposée par rapport au container parent. Utilisez ''​%%layout toggle split%%''​ pour changer la disposition de tout container divisé de splitv à splith ou vice-versa. Vous pouvez également définir une séquence personnalisée de layout à parcourir avec ''​%%layout toggle%%'',​ voir [[#​manipulating_layout|[manipulating_layout]]]. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-split vertical|horizontal|toggle +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bindsym $mod+v split vertical +
-bindsym $mod+h split horizontal +
-bindsym $mod+t split toggle +
-</​code>​ +
- +
- +
- +
-==== 6.3. Manipuler la disposition ==== +
- +
-Utilisez ''​%%layout toggle split%%'',​ ''​%%layout stacking%%'',​ ''​%%layout tabbed%%'',​ ''​%%layout splitv%%''​ ou ''​%%layout splith%%''​ pour changer la disposition actuelle du container en splith/​splitv,​ stacking, tabbed layout, splitv ou splith, respectivement. +
- +
- +
-Vous pouvez spécifier jusqu'​à 4 layouts après ''​%%layout toggle%%''​ pour les parcourir. Chaque fois que la commande est exécutée, la mise en page spécifiée après celle actuellement active sera appliquée. Si la mise en page actuellement active n'est pas dans la liste, la première mise en page de la liste sera activée. +
- +
- +
-Pour afficher la fenêtre active en plein écran, utilisez ''​%%fullscreen enable%%''​ (ou ''​%%fullscreen enable global%%''​ pour le mode global), pour quitter l'un ou l'​autre des modes plein écran, utilisez ''​%%fullscreen disable%%'',​ et pour basculer entre ces deux états, utilisez ''​%%fullscreen toggle%%''​ (ou ''​%%fullscreen toggle global%%''​). +
- +
- +
-De la même façon, pour libérer une fenêtre, ou la paver, utilisez ''​%%floating enable%%''​ ou ''​%%floating disable%%''​ respectivement. (ou ''​%%floating toggle%%''​):​ +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-layout default|tabbed|stacking|splitv|splith +
-layout toggle [split|all] +
-layout toggle [split|tabbed|stacking|splitv|splith] [split|tabbed|stacking|splitv|splith]… +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-bindsym $mod+s layout stacking +
-bindsym $mod+l layout toggle split +
-bindsym $mod+w layout tabbed +
- +
-# Toggle between stacking/​tabbed/​split:​ +
-bindsym $mod+x layout toggle +
- +
-# Toggle between stacking/​tabbed/​splith/​splitv:​ +
-bindsym $mod+x layout toggle all +
- +
-# Toggle between stacking/​tabbed/​splith:​ +
-bindsym $mod+x layout toggle stacking tabbed splith +
- +
-# Toggle between splitv/​tabbed +
-bindsym $mod+x layout toggle splitv tabbed +
- +
-# Toggle between last split layout/​tabbed/​stacking +
-bindsym $mod+x layout toggle split tabbed stacking +
- +
-# Toggle fullscreen +
-bindsym $mod+f fullscreen toggle +
- +
-# Toggle floating/​tiling +
-bindsym $mod+t floating toggle +
-</​code>​ +
- +
- +
- +
-==== 6.4. Container et Focus ==== +
- +
-Pour passer le focus, utilisez la commande ''​%%focus%%''​. Les options suivantes sont disponibles : +
- +
- +
-  * ** <​criteria>​ ** Donne le focus au container qui correspond aux critères spécifiés. Voir [[#​command_criteria|[command_criteria]]]. +
-  * ** left|right|up|down ** Donne le focus au container le plus proche dans la direction indiquée. +
-  * ** parent ** Donne le focus au container parent de celui actuellement focalisé. +
-  * ** child ** L'​opposé de ''​%%focus parent%%'',​ donne lefocus au dernier container enfant focalisé. +
-  * ** next|prev ** Définit automatiquement le focus sur le container adjacent. Si ''​%%sibling%%''​ est spécifié, la commande focalisera le container frère exact, y compris les containers non pavés comme les containers divisé. Sinon, il s'agit d'une version automatique de ''​%%focus left|right|up|down%%''​ dans l'​orientation du container parent. +
-  * ** floating ** Donne le focus au dernier container flottant focalisé. +
-  * ** tiling ** Donne le focus au dernier container pavé focalisé. +
-  * ** mode_toggle ** Navigue entre les containers flottants/​pavés. +
-  * ** output ** Suivi d'une direction ou d'un moniteur, ceci donnera le focus au moniteur correspondant. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-<​criteria>​ focus +
-focus left|right|down|up +
-focus parent|child|floating|tiling|mode_toggle +
-focus next|prev [sibling] +
-focus output left|right|up|down|primary|<​output>​ +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Focus firefox +
-bindsym $mod+F1 [class="​Firefox"​] focus +
- +
-# Focus container on the left, bottom, top, right +
-bindsym $mod+j focus left +
-bindsym $mod+k focus down +
-bindsym $mod+l focus up +
-bindsym $mod+semicolon focus right +
- +
-# Focus parent container +
-bindsym $mod+u focus parent +
- +
-# Focus last floating/​tiling container +
-bindsym $mod+g focus mode_toggle +
- +
-# Focus the output right to the current one +
-bindsym $mod+x focus output right +
- +
-# Focus the big output +
-bindsym $mod+x focus output HDMI-2 +
- +
-# Focus the primary output +
-bindsym $mod+x focus output primary +
-</​code>​ +
- +
- +
-Notez que vous n'avez peut-être pas encore configuré de sortie principale. Pour ce faire, exécutez:​ +
- +
- +
-<​code>​ +
-xrandr --output <​output>​ --primary +
-</​code>​ +
- +
- +
- +
-==== 6.5. Déplacer les containers ==== +
- +
-Utilisez la commande ''​%%move%%''​ pour déplacer un container. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-# Moves the container into the given direction. +
-# The optional pixel argument specifies how far the +
-# container should be moved if it is floating and +
-# defaults to 10 pixels. +
-move <​left|right|down|up>​ [<px> px] +
- +
-# Moves the container to the specified pos_x and pos_y +
-# coordinates on the screen. +
-move position <​pos_x>​ [px] <​pos_y>​ [px] +
- +
-# Moves the container to the center of the screen. +
-# If '​absolute'​ is used, it is moved to the center of +
-# all outputs. +
-move [absolute] position center +
- +
-# Moves the container to the current position of the +
-# mouse cursor. Only affects floating containers. +
-move position mouse +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Move container to the left, bottom, top, right +
-bindsym $mod+j move left +
-bindsym $mod+k move down +
-bindsym $mod+l move up +
-bindsym $mod+semicolon move right +
- +
-# Move container, but make floating containers +
-# move more than the default +
-bindsym $mod+j move left 20 px +
- +
-# Move floating container to the center of all outputs +
-bindsym $mod+c move absolute position center +
- +
-# Move container to the current position of the cursor +
-bindsym $mod+m move position mouse +
-</​code>​ +
- +
- +
- +
-==== 6.6. Échanger les containers ==== +
- +
-Deux containers peuvent être échangés (c'​est-à-dire se déplacer l'un vers l'​autre) en utilisant la commande ''​%%swap%%''​. Ils prendront la position et la géométrie du container avec lequel ils sont échangés. +
- +
- +
-Le premier container à participer à l'​échange peut être sélectionné via le processus de critères de commande normal, la fenêtre focalisée étant la solution de secours habituelle si aucun critère n'est spécifié. Le deuxième container peut être sélectionné à l'aide de l'une des méthodes suivantes : +
- +
- +
-  * ** ''​%%id%%''​ ** L'ID X11 d'une fenêtre. +
-  * ** ''​%%con_id%%''​ ** L'ID du container i3. +
-  * ** ''​%%mark%%''​ ** Un container marqué, voir [[#​vim_like_marks|[vim_like_marks]]]. +
- +
- +
-Notez que l'​échange ne fonctionne pas avec tous les containers. Plus particulièrement,​ l'​échange de containers qui ont une relation parent-enfant entre eux ne fonctionne pas. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-swap container with id|con_id|mark <​arg>​ +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Swaps the focused container with the container marked »swapee«. +
-swap container with mark swapee +
- +
-# Swaps container marked »A« and »B« +
-[con_mark="​^A$"​] swap container with mark B +
-</​code>​ +
- +
- +
- +
-==== 6.7. Épingler une fenêtre flottante ==== +
- +
-Si vous voulez qu'une fenêtre "colle à la vitre",​ c'​est-à-dire qu'​elle reste à l'​écran même si vous passez à un autre espace de travail, vous pouvez utiliser la commande ''​%%sticky%%''​. Par exemple, cela peut être utile pour les blocs-notes,​ un lecteur multimédia ou une fenêtre de chat vidéo. +
- +
- +
-Notez que même si n'​importe quelle fenêtre peut être r endue collante grâce à cette commande, elle ne prendra effet que si la fenêtre est flottante. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-sticky enable|disable|toggle +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# make a terminal sticky that was started as a notepad +
-for_window [instance=notepad] sticky enable +
-</​code>​ +
- +
- +
- +
-==== 6.8. Changer (renommer) un espace de travail / déplacer vers un espace de travail ==== +
- +
-Pour afficher un espace de travail spécifique,​ utilisez la commande ''​%%workspace%%'',​ suivie du numéro ou du nom de l'​espace de travail. Utilisez l'​option facultative ''​%%--no-auto-back-and-out%%''​ pour désactiver [[#​workspace_auto_back_and_forth|[workspace_auto_back_and_forth]]] sur cette commande uniquement. +
- +
- +
-Pour déplacer un container sur un espace de travail spécifique,​ utilisez ''​%%move container to workspace%%''​. +
- +
- +
-Vous pouvez aussi afficher l'​espace de travail suivant ou précédent avec les commandes ''​%%workspace next%%''​ et ''​%%workspace prev%%'',​ ce qui est pratique si vous activez les espaces de travail 1, 3, 4 et 9 et que vous désirez les afficher à la suite avec un simple raccourcis clavier. Pour restreindre ce comportement au moniteur actif, utilisez ''​%%workspace next_on_output%%''​ et ''​%%workspace prev_on_output%%''​. De la même façon, vous pouvez utiliser ''​%%move container to workspace next%%'',​ ''​%%move container to workspace prev%%''​ pour déplacer un container sur l'​espace de travail suivant/​précédent et ''​%%move container to workspace current%%''​ (Le dernier n'a de sens que s'il est utilisé avec des critères). +
- +
- +
-''​%%workspace next%%''​ fait défiler les espaces de travail numérotés ou nommés. Mais lorsqu'​il atteint le dernier espace de travail numéroté/​nommé,​ il recherche les espaces de travail nommés après avoir épuisé les espaces numérotés et recherche les espaces numérotés après avoir épuisé les espaces nommés. +
- +
- +
-Voir [[#​move_to_outputs|[move_to_outputs]]] pour savoir comment déplacer un container sur un moniteur RandR différent. +
- +
- +
-Les espaces de travail sont lus par i3bar selon [[https://​developer.gnome.org/​pango/​stable/​pango-Markup.html|Pango markup]]. +
- +
- +
-Pour revenir au dernier espace de travail focalisé, utilisez ''​%%workspace back_and_forth%%'';​ Grâce à ça, vous pouvez déplacer un container vers le dernier espace de travail focalisé avec la commande ''​%%move container to workspace back_and_forth%%''​. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-workspace next|prev|next_on_output|prev_on_output +
-workspace back_and_forth +
-workspace [--no-auto-back-and-forth] <​name>​ +
-workspace [--no-auto-back-and-forth] number <​name>​ +
- +
-move [--no-auto-back-and-forth] [window|container] [to] workspace <​name>​ +
-move [--no-auto-back-and-forth] [window|container] [to] workspace number <​name>​ +
-move [window|container] [to] workspace prev|next|current +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-bindsym $mod+1 workspace 1 +
-bindsym $mod+2 workspace 2 +
-bindsym $mod+3 workspace 3:<span foreground="​red">​vim</​span>​ +
-... +
- +
-bindsym $mod+Shift+1 move container to workspace 1 +
-bindsym $mod+Shift+2 move container to workspace 2 +
-... +
- +
-# switch between the current and the previously focused one +
-bindsym $mod+b workspace back_and_forth +
-bindsym $mod+Shift+b move container to workspace back_and_forth +
- +
-# move the whole workspace to the next output +
-bindsym $mod+x move workspace to output right +
- +
-# move firefox to current workspace +
-bindsym $mod+F1 [class="​Firefox"​] move workspace current +
-</​code>​ +
- +
- +
-=== 6.8.1. Nom des espaces de travail === +
- +
-Les espaces de travail sont identifiés par leur nom. Ainsi, au lieu d'​utiliser des nombres dans la commande '​workspace',​ vous pouvez utiliser un nom : +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bindsym $mod+1 workspace mail +
-... +
-</​code>​ +
- +
- +
-Si vous voulez un espace de travail avec un numéro **et** un nom, ajouter le numéro au début comme ceci : +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bindsym $mod+1 workspace 1: mail +
-bindsym $mod+2 workspace 2: www +
-... +
-</​code>​ +
- +
- +
-Notez que l'​espace de travail sera vraiment nommé "1: mail". i3 traite les noms d'​espace de travail commençant par un nombre d'une manière légèrement spéciale. Normalement,​ les espaces de travail nommés sont classés comme ils sont apparus. Lorsqu'​ils commencent par un nombre, i3 les classe par ordre numérique. De plus, vous pourrez utiliser ''​%%workspace number 1%%''​ pour basculer vers l'​espace de travail qui commence par le numéro 1, quel que soit son nom. Ceci est utile si vous modifiez le nom de l’espace de travail de manière dynamique. Pour combiner les deux commandes, vous pouvez utiliser ''​%%workspace number 1: mail%%''​ pour spécifier un nom par défaut s'il n'y a actuellement aucun espace de travail commençant par un "​1"​. +
- +
- +
- +
-=== 6.8.2. Renommer les espaces de travail === +
- +
-Vous pouvez renommer les espaces de travail. Cela peut être utile pour commencer avec les espaces de travail numérotés par défaut, faire votre travail et renommer les espaces de travail par la suite pour refléter ce qu'ils contiennent réellement. Vous pouvez également omettre l'​ancien nom pour renommer l'​espace de travail actuellement sélectionné. Ceci est pratique si vous souhaitez utiliser la commande renommer avec ''​%%i3-input%%''​. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-rename workspace <​old_name>​ to <​new_name>​ +
-rename workspace to <​new_name>​ +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-i3-msg '​rename workspace 5 to 6' +
-i3-msg '​rename workspace 1 to "1: www"'​ +
-i3-msg '​rename workspace "1: www" to "10: www"'​ +
-i3-msg '​rename workspace to "2: mail"'​ +
-bindsym $mod+r exec i3-input -F '​rename workspace to "​%s"'​ -P 'New name: ' +
-</​code>​ +
- +
- +
-Si vous souhaitez renommer les espaces de travail à la demande tout en gardant la navigation stable, vous pouvez utiliser une configuration comme celle-ci : +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-bindsym $mod+1 workspace number "1: www" +
-bindsym $mod+2 workspace number "2: mail"​ +
-... +
-</​code>​ +
- +
- +
-Si l'​espace de travail n'​existe pas, la commande ''​%%workspace number "1: mail"​%%''​ va créer un espace de travail "1: mail"​. +
- +
- +
-Si un espace de travail avec le numéro 1 existe déjà, la commande basculera vers cet espace de travail et ignorera la partie de texte. Ainsi, même lorsque l’espace de travail a été renommé en «1: web», la commande ci-dessus y basculera toujours. +
- +
- +
- +
- +
-==== 6.9. Déplacer un espace de travail sur un autre écran ==== +
- +
-Voir [[#​move_to_outputs|[move_to_outputs]]] pour découvrir comment déplacer un espace de travail sur un moniteur RandR différent. +
- +
- +
- +
-==== 6.10. Déplacer des containers/​espaces de travail vers un écran RandR ==== +
- +
-Pour déplacer un container vers une autre sortie RandR (identifiée par des noms comme ''​%%LVDS1%%''​ ou ''​%%VGA1%%''​) ou vers une sortie RandR identifiée par une direction spécifique (comme ''​%%left%%'',​ ''​%%right%%'',​ ''​%%up%%''​ ou ''​%%down%%''​),​ il y a deux commandes : +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-move container to output left|right|down|up|current|primary|<​output>​ +
-move workspace to output left|right|down|up|current|primary|<​output>​ +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Move the current workspace to the next output +
-# (effectively toggles when you only have two outputs) +
-bindsym $mod+x move workspace to output right +
- +
-# Put this window on the presentation output. +
-bindsym $mod+x move container to output VGA1 +
- +
-# Put this window on the primary output. +
-bindsym $mod+x move container to output primary +
-</​code>​ +
- +
- +
-Notez que vous n'avez peut-être pas encore configuré de sortie principale. Pour ce faire, exécutez : +
- +
- +
-<​code>​ +
-xrandr --output <​output>​ --primary +
-</​code>​ +
- +
- +
- +
-==== 6.11. Déplacer des containers/​fenêtres vers une marque ==== +
- +
-Pour déplacer un container vers une marque (voir [[#​vim_like_marks|[vim_like_marks]]]),​ vous pouvez la commande suivante. +
- +
- +
-La fenêtre sera déplacée juste après le container marqué dans l'​arborescence,​ c'est à dire qu'​elle se terminera dans la même position que si vous aviez ouvert une nouvelle fenêtre lorsque le container marqué était sélectionné. Si la marque est sur un container divisé, la fenêtre apparaîtra comme un nouvel enfant après l'​enfant actuellement focalisé dans ce container. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-move window|container to mark <​mark>​ +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-for_window [instance="​tabme"​] move window to mark target +
-</​code>​ +
- +
- +
- +
-==== 6.12. Redimensionner les containers/​fenêtres ==== +
- +
-Si vous désirez redimensionner un container ou une fenêtre depuis votre clavier, vous pouvez utiliser la commande ''​%%resize%%''​ : +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-resize grow|shrink <​direction>​ [<px> px [or <ppt> ppt]] +
-resize set [width] <​width>​ [px | ppt] +
-resize set height <​height>​ [px | ppt] +
-resize set [width] <​width>​ [px | ppt] [height] <​height>​ [px | ppt] +
-</​code>​ +
- +
- +
-La direction peut être ''​%%up%%'',​ ''​%%down%%'',​ ''​%%left%%''​ ou ''​%%right%%''​. Ou peut être moins spécifique et utiliser ''​%%width%%''​ ou ''​%%height%%'',​ au quel cas, i3 prendra/​rendra l'​espace sur les autres containers. L'​option additionnelle '​pixel'​ détermine la taille du redimensionnement (par défaut 10 pixels). L'​argument facultatif '​ppt'​ signifie "​points de pourcentage",​ et s'il est spécifié, il indique qu'un **tiling container** doit être agrandi ou réduit de autant de points, au lieu de la valeur ''​%%px%%''​. +
- +
- +
-À propos de ''​%%resize set%%''​ : 0 pour <​width>​ ou <​height>​ signifie "ne pas redomensionner dans cette direction"​. +
- +
- +
-Il est recommandé d'​utiliser une chaine de raccourcis pour le redimensionnement. Voir [[#​binding_modes|[binding_modes]]] et l'​exemple dans la [[https://​github.com/​i3/​i3/​blob/​next/​etc/​config.keycodes|configuration d'​i3]]. +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-for_window [class="​urxvt"​] resize set 640 480 +
-</​code>​ +
- +
- +
- +
-==== 6.13. Rejoindre une fenêtre spécifique ==== +
- +
-Souvent, dans un environnement à plusieurs moniteurs, vous souhaitez accéder rapidement à une fenêtre spécifique. Par exemple, lorsque vous travaillez sur l’espace de travail 3, vous souhaiterez peut-être accéder à votre client de messagerie pour envoyer un e-mail à votre patron à propos d'un objectif important. Au lieu de savoir comment accéder à votre client de messagerie, il serait plus pratique d'​avoir un raccourci. Vous pouvez utiliser la commande ''​%%focus%%''​ avec des critères pour cela. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-[class="​class"​] focus +
-[title="​title"​] focus +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Get me to the next open VIM instance +
-bindsym $mod+a [class="​urxvt"​ title="​VIM"​] focus +
-</​code>​ +
- +
- +
- +
-==== 6.14. Marquer comme VIM (mark/goto) ==== +
- +
-Cette fonctionnalité est comme la fonction de saut : elle vous permet de sauter directement à une fenêtre spécifique (cela signifie passer à l'​espace de travail approprié et définir le focus sur la fenêtre). Vous pouvez directement marquer une fenêtre spécifique avec une étiquette arbitraire et l'​utiliser ensuite. Vous pouvez décocher l'​étiquette de la même manière, à l'aide de la commande ''​%%unmark%%''​. Si vous ne spécifiez pas d'​étiquette,​ ''​%%unmark%%''​ supprime toutes les marques. Vous n'avez pas besoin de vous assurer que vos fenêtres ont des classes ou des titres uniques, et vous n'avez pas besoin de modifier votre fichier de configuration. +
- +
- +
-Comme la commande doit inclure l'​étiquette avec laquelle vous souhaitez marquer la fenêtre, vous ne pouvez pas simplement la lier à une clé. ''​%%i3-input%%''​ est un outil créé à cet effet : il vous permet de saisir une commande et d'​envoyer la commande à i3. Il peut également préfixer cette commande et afficher une invite personnalisée pour la boîte de dialogue de saisie. +
- +
- +
-L'​option supplémentaire ''​%%--toggle%%''​ supprimera la marque si la fenêtre a déjà cette marque ou l'​ajoutera autrement. Notez que vous devrez peut-être l'​utiliser en combinaison avec ''​%%--add%%''​ (voir ci-dessous) car toute autre marque sera sinon supprimée. +
- +
- +
-L'​indicateur ''​%%--replace%%''​ oblige i3 à supprimer toutes les marques existantes, ce qui est également le comportement par défaut. Vous pouvez utiliser l'​indicateur ''​%%--add%%''​ pour mettre plus d'une marque sur une fenêtre. +
- +
- +
-Reportez-vous à [[#​show_marks|[show_marks]]] si vous ne voulez pas que les marques soient affichées dans la décoration de la fenêtre. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-mark [--add|--replace] [--toggle] <​identifier>​ +
-[con_mark="​identifier"​] focus +
-unmark <​identifier>​ +
-</​code>​ +
- +
- +
-Vous pouvez utiliser ''​%%i3-input%%''​ pour demander un nom de marque, puis utiliser les commandes ''​%%mark%%''​ et ''​%%focus%%''​ pour créer et accéder aux marques personnalisées : +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# read 1 character and mark the current window with this character +
-bindsym $mod+m exec i3-input -F 'mark %s' -l 1 -P 'Mark: ' +
- +
-# read 1 character and go to the window with the character +
-bindsym $mod+g exec i3-input -F '​[con_mark="​%s"​] focus' -l 1 -P 'Goto: ' +
-</​code>​ +
- +
- +
-Sinon, si vous ne voulez pas jouer avec ''​%%i3-input%%'',​ vous pouvez créer des raccourcis distincts pour un ensemble spécifique d'​étiquettes,​ puis n'​utiliser que ces étiquettes:​ +
- +
- +
-**Exemple (dans un terminal)** : +
- +
- +
-<​code>​ +
-# marks the focused container +
-mark irssi +
- +
-# focus the container with the mark "​irssi"​ +
-'​[con_mark="​irssi"​] focus'​ +
- +
-# remove the mark "​irssi"​ from whichever container has it +
-unmark irssi +
- +
-# remove all marks on all firefox windows +
-[class="​(?​i)firefox"​] unmark +
-</​code>​ +
- +
- +
- +
-==== 6.15. Format du titre des fenêtres ==== +
- +
-Par défaut, i3 imprimera simplement le titre de la fenêtre X11. En utilisant ''​%%title_format%%'',​ cela peut être personnalisé en définissant le format sur la sortie souhaitée. Cette option supporte [[https://​developer.gnome.org/​pango/​stable/​pango-Markup.html|Pango markup]] : +
- +
- +
-  * ** ''​%%%title%%''​ ** Pour les fenêtres normales, il s'agit du titre de la fenêtre X11 (_NET_WM_NAME ou WM_NAME comme solution de secours). Lorsqu'​il est utilisé sur des containers sans fenêtre (par exemple, un conteneur divisé dans un layout tabbed/​stacked),​ ce sera la représentation arborescente du conteneur (par exemple, "H [xterm xterm]"​). +
-  * ** ''​%%%class%%''​ ** La class de la fenêtre (seconde partie de WM_CLASS). Correspond au critère ''​%%class%%'',​ voir [[#​command_criteria|[command_criteria]]]. +
-  * ** ''​%%%instance%%''​ ** L'​instance de la fenêtre (première partie de WM_CLASS). Correspond au critère ''​%%instance%%'',​ voir [[#​command_criteria|[command_criteria]]]. +
- +
- +
-En utilisant la commande [[#​for_window|[for_window]]],​ vous pouvez modifier les titres de fenêtres en vous basant sur [[#​command_criteria|[command_criteria]]]. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-title_format <​format>​ +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# give the focused window a prefix +
-bindsym $mod+p title_format "​Important | %title"​ +
- +
-# print all window titles bold +
-for_window [class="​.*"​] title_format "<​b>​%title</​b>"​ +
- +
-# print window titles of firefox windows red +
-for_window [class="​(?​i)firefox"​] title_format "<​span foreground='​red'>​%title</​span>"​ +
-</​code>​ +
- +
- +
- +
-==== 6.16. Changer le style de bordure ==== +
- +
-Pour changer la bordure du client actuel, vous pouvez utiliser ''​%%border normal%%''​ pour utiliser la bordure normale (y compris le titre de la fenêtre), ''​%%border pixel 1%%''​ pour utiliser une bordure de 1 pixel (aucun titre de fenêtre) et ''​%%border none%%''​ pour supprimer toute bordure. +
- +
- +
-Il existe également ''​%%border toggle%%''​ qui permet de basculer les différents styles de bordure. L'​argument pixel facultatif peut être utilisé pour spécifier la largeur de la bordure lors du passage aux styles normal et pixel. +
- +
- +
-Notez que «pixel» fait référence à un pixel logique. Sur les écrans HiDPI, un pixel logique peut être représenté par plusieurs pixels physiques, de sorte que le ''​%%pixel 1%%''​ peut ne pas nécessairement se traduire en une seule ligne de 1 pixel. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-border normal|pixel|toggle [<​n>​] +
-border none +
- +
-# legacy syntax, equivalent to "​border pixel 1" +
-border 1pixel +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# use window title, but no border +
-bindsym $mod+t border normal 0 +
-# use no window title and a thick border +
-bindsym $mod+y border pixel 3 +
-# use neither window title nor border +
-bindsym $mod+u border none +
-</​code>​ +
- +
- +
- +
-==== 6.17. Activation de la journalisation ==== +
- +
-Comme décrit dans https://​i3wm.org/​docs/​debugging.html,​ i3 peut se connecter à une mémoire tampon partagée, que vous pouvez vider en utilisant ''​%%i3-dump-log%%''​. La commande ''​%%shmlog%%''​ vous permet d'​activer ou de désactiver la journalisation de la mémoire partagée lors de l'​exécution. +
- +
- +
-Notez que lorsque vous utilisez ''​%%shmlog <​size_in_bytes>​%%'',​ le log courant est supprimé et un nouveau est créé. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-shmlog <​size_in_bytes>​ +
-shmlog on|off|toggle +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Enable/​disable logging +
-bindsym $mod+x shmlog toggle +
- +
-# or, from a terminal: +
-# increase the shared memory log buffer to 50 MiB +
-i3-msg shmlog $((50*1024*1024)) +
-</​code>​ +
- +
- +
- +
-==== 6.18. Activation de la journalisation du débogage ==== +
- +
-La commande ''​%%debuglog%%''​ vous permet d'​activer ou de désactiver la journalisation du débogage lors de l'​exécution. La journalisation du débogage est beaucoup plus détaillée que la journalisation sans débogage. Cette commande n'​active pas la journalisation de la mémoire partagée (shmlog) et, en tant que telle, est très probablement utile en combinaison avec la commande [[#​shmlog|[shmlog]]] décrite ci-dessus. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-debuglog on|off|toggle +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Enable/​disable logging +
-bindsym $mod+x debuglog toggle +
-</​code>​ +
- +
- +
- +
-==== 6.19. Recharger/​Relancer/​Quitter ==== +
- +
-Vous pouvez recharger i3 (relire le fichier de configuration) avec ''​%%reload%%''​. Vous pouvez également redémarrer i3 avec la commande ''​%%restart%%''​ pour le sortir d'un état étrange (si cela devait arriver) ou pour effectuer une mise à niveau sans avoir à redémarrer votre session X. Pour quitter correctement i3, vous pouvez utiliser la commande ''​%%exit%%'',​ mais vous n’avez pas besoin de le faire (il suffit de tuer votre session X). +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-bindsym $mod+Shift+r restart +
-bindsym $mod+Shift+w reload +
-bindsym $mod+Shift+e exit +
-</​code>​ +
- +
- +
- +
-==== 6.20. Scratchpad ==== +
- +
-Il existe deux commandes pour utiliser n'​importe quelle fenêtre existante comme scratchpad. ''​%%scratchpad move%%''​ déplacera une fenêtre vers l'​espace de travail scratchpad. Cela le rendra invisible jusqu'​à ce que vous le montriez à nouveau. Il n'y a aucun moyen d'​ouvrir cet espace de travail. Au lieu de cela, lorsque vous utilisez ''​%%scratchpad show%%'',​ la fenêtre sera à nouveau affichée, sous la forme d'une fenêtre flottante, centrée sur votre espace de travail actuel (l'​utilisation de ''​%%scratchpad show%%''​ sur une fenêtre de scratchpad visible le fera masqué à nouveau, vous pouvez donc avoir un raccourcis). Notez qu'il ne s'agit que d'une fenêtre flottante normale, donc si vous voulez "la supprimer du scratchpad",​ vous pouvez simplement la placer en mosaïque (''​%%floating toggle%%''​). +
- +
- +
-Comme son nom l'​indique,​ c'est utile pour avoir une fenêtre avec votre éditeur préféré toujours à portée de main. Cependant, vous pouvez également l'​utiliser pour d'​autres applications fonctionnant en permanence que vous ne souhaitez pas voir tout le temps : votre lecteur de musique, alsamixer, peut-être même votre client de messagerie…?​ +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-move scratchpad +
- +
-scratchpad show +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Make the currently focused window a scratchpad +
-bindsym $mod+Shift+minus move scratchpad +
- +
-# Show the first scratchpad window +
-bindsym $mod+minus scratchpad show +
- +
-# Show the sup-mail scratchpad window, if any. +
-bindsym mod4+s [title="​^Sup ::"] scratchpad show +
-</​code>​ +
- +
- +
- +
-==== 6.21. Nop / ne rien faire ==== +
- +
-i3 possède une commande qui ne fait rien, "no operation command"​ ''​%%nop%%''​ qui vous permet d'​écraser un comportement par défaut. Cela peut être pratique pour, par exemple, désactiver le passage du focus avec le bouton central de la souris. +
- +
- +
-L'​argument optionnel ''​%%comment%%''​ est ignoré, mais sera reporté dans le journal pour debogage. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-nop [<​comment>​] +
-</​code>​ +
- +
- +
-**Exemple** : +
- +
- +
-<​code>​ +
-# Disable focus change for clicks on titlebars +
-# with the middle mouse button +
-bindsym button2 nop +
-</​code>​ +
- +
- +
- +
-==== 6.22. Contrôler i3bar ==== +
- +
-Il existe deux options dans la configuration de chaque instance i3bar qui peuvent être modifiées pendant l'​exécution en appelant une commande via i3. Les commandes ''​%%bar hidden_state%%''​ et ''​%%bar mode%%''​ permettent de paramétrer respectivement l'​état hidden_state actuel et le mode de chaque barre. Il est également possible de basculer entre l'​état hide et l'​état show, ainsi qu'​entre le mode dock et le mode hide. Chaque instance i3bar peut être contrôlée individuellement en spécifiant un bar_id, si aucun n'est donné, la commande est exécutée pour toutes les instances de barre. +
- +
- +
-**Syntaxe** : +
- +
- +
-<​code>​ +
-bar hidden_state hide|show|toggle [<​bar_id>​] +
- +
-bar mode dock|hide|invisible|toggle [<​bar_id>​] +
-</​code>​ +
- +
- +
-**Exemples** : +
- +
- +
-<​code>​ +
-# Toggle between hide state and show state +
-bindsym $mod+m bar hidden_state toggle +
- +
-# Toggle between dock mode and hide mode +
-bindsym $mod+n bar mode toggle +
- +
-# Set the bar instance with id '​bar-1'​ to switch to hide mode +
-bindsym $mod+b bar mode hide bar-1 +
- +
-# Set the bar instance with id '​bar-1'​ to always stay hidden +
-bindsym $mod+Shift+b bar mode invisible bar-1 +
-</​code>​ +
- +
- +
- +
- +
- +
-===== 7. Multi-écran ===== +
- +
-Comme vous avez pu le voir dans la liste des objectifs sur le site Web, i3 a été spécifiquement développé en gardant à l'​esprit le support du multi-écran. Cette section explique comment gérer plusieurs moniteurs. +
- +
- +
-Lorsque vous n'avez qu'un seul moniteur, les choses sont simples. Vous commencez généralement avec l'​espace de travail 1 sur votre moniteur et en ouvrez de nouveaux selon vos besoins. +
- +
- +
-Lorsque vous avez plus d'un moniteur, chaque moniteur aura un espace de travail initial. Le premier moniteur obtient 1, le second obtient 2 et un troisième possible en aura 3. Lorsque vous basculez vers un espace de travail sur un autre moniteur, i3 basculera vers ce moniteur, puis basculera vers l'​espace de travail. De cette façon, vous n’avez pas besoin de raccourcis pour passer à un moniteur spécifique et vous n’avez pas besoin de vous rappeler où vous avez placé tel ou tel espace de travail. De nouveaux espaces de travail seront ouverts sur le moniteur actuellement actif. Il n'est pas possible d'​avoir un moniteur sans espace de travail. +
- +
- +
-L'​idée de rendre les espaces de travail '​globaux'​ est basée sur le constat que la plupart des utilisateurs disposent d'un ensemble très limité d'​espaces de travail sur leurs moniteurs supplémentaires. Ils sont souvent utilisés pour une tâche spécifique (navigateur,​ shell) ou pour surveiller plusieurs choses (mail, IRC, syslog,​…). Ainsi, utiliser un espace de travail sur un moniteur et «le reste» sur les autres moniteurs a souvent du sens. Cependant, comme vous pouvez créer un nombre illimité d'​espaces de travail dans i3 et les lier à des écrans spécifiques,​ vous pouvez avoir l'​approche «traditionnelle» d'​avoir X espaces de travail par écran en modifiant votre configuration (en utilisant des modes, par exemple). +
- +
- +
-==== 7.1. Configurer vos écrans ==== +
- +
-Pour vous aider à démarrer si vous n'avez jamais utilisé plusieurs moniteurs auparavant, voici un bref aperçu des options xrandr qui vous intéresseront probablement. Il est toujours utile d'​avoir une vue d'​ensemble de la configuration actuelle de l'​écran. Exécutez simplement "​xrandr"​ et vous obtiendrez une sortie comme celle-ci : +
- +
- +
-<​code>​ +
-$ xrandr +
-Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192 +
-VGA1 disconnected (normal left inverted right x axis y axis) +
-LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 261mm x 163mm +
-   ​1280x800 ​      ​60.0*+ ​  ​50.0 +
-   ​1024x768 ​      ​85.0 ​    ​75.0 ​    ​70.1 ​    ​60.0 +
-   ​832x624 ​       74.6 +
-   ​800x600 ​       85.1     ​72.2 ​    ​75.0 ​    ​60.3 ​    ​56.2 +
-   ​640x480 ​       85.0     ​72.8 ​    ​75.0 ​    ​59.9 +
-   ​720x400 ​       85.0 +
-   ​640x400 ​       85.1 +
-   ​640x350 ​       85.1 +
-</​code>​ +
- +
- +
-Plusieurs choses sont importantes ici : vous pouvez voir que ''​%%LVDS1%%''​ est connecté (bien sûr, c'est l'​écran interne) mais que ''​%%VGA1%%''​ ne l'est pas. Si vous avez un moniteur connecté à l'un des ports mais que xrandr dit toujours «déconnecté»,​ vous devriez vérifier votre câble, moniteur ou pilote graphique. +
- +
- +
-La résolution maximale que vous pouvez voir à la fin de la première ligne est la résolution combinée maximale de vos moniteurs. Par défaut, il est généralement trop bas et doit être augmenté en éditant ''​%%/​etc/​X11/​xorg.conf%%''​. +
- +
- +
-Donc, disons que vous avez connecté VGA1 et que vous souhaitez l'​utiliser comme écran supplémentaire : +
- +
- +
-<​code>​ +
-xrandr --output VGA1 --auto --left-of LVDS1 +
-</​code>​ +
- +
- +
-Cette commande oblige xrandr à essayer de trouver la résolution native de l'​appareil connecté à ''​%%VGA1%%''​ et la configure à gauche de votre écran plat interne. Lorsque vous exécutez à nouveau "​xrandr",​ la sortie ressemble à ceci : +
- +
- +
-<​code>​ +
-$ xrandr +
-Screen 0: minimum 320 x 200, current 2560 x 1024, maximum 8192 x 8192 +
-VGA1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm +
-   ​1280x1024 ​     60.0*+ ​  ​75.0 +
-   ​1280x960 ​      ​60.0 +
-   ​1152x864 ​      ​75.0 +
-   ​1024x768 ​      ​75.1 ​    ​70.1 ​    ​60.0 +
-   ​832x624 ​       74.6 +
-   ​800x600 ​       72.2     ​75.0 ​    ​60.3 ​    ​56.2 +
-   ​640x480 ​       72.8     ​75.0 ​    ​66.7 ​    ​60.0 +
-   ​720x400 ​       70.1 +
-LVDS1 connected 1280x800+1280+0 (normal left inverted right x axis y axis) 261mm x 163mm +
-   ​1280x800 ​      ​60.0*+ ​  ​50.0 +
-   ​1024x768 ​      ​85.0 ​    ​75.0 ​    ​70.1 ​    ​60.0 +
-   ​832x624 ​       74.6 +
-   ​800x600 ​       85.1     ​72.2 ​    ​75.0 ​    ​60.3 ​    ​56.2 +
-   ​640x480 ​       85.0     ​72.8 ​    ​75.0 ​    ​59.9 +
-   ​720x400 ​       85.0 +
-   ​640x400 ​       85.1 +
-   ​640x350 ​       85.1 +
-</​code>​ +
- +
- +
-Veuillez noter que i3 utilise exactement la même API que xrandr, donc il ne verra que ce que vous pouvez voir dans xrandr. +
- +
- +
-Voir aussi [[#​presentations|[presentations]]] pour plus d'​exemples de configuration en mode multi-écran. +
- +
- +
- +
-==== 7.2. Configurations intéressantes en mode multi-écran ==== +
- +
-Il y a plusieurs choses à configurer dans i3 qui peuvent être intéressantes si vous avez plus d'un moniteur: +
- +
- +
-  - Vous pouvez spécifier quel espace de travail doit être placé sur quel écran. Cela vous permet d'​avoir un ensemble d'​espaces de travail différent lors du démarrage au lieu de 1 pour le premier moniteur, 2 pour le second et ainsi de suite. Voir [[#​workspace_screen|[workspace_screen]]]. +
-  - Si vous souhaitez que certaines applications s'​ouvrent sur un écran plus grand (MPlayer, Firefox,​…),​ vous pouvez les affecter à un espace de travail spécifique,​ voir [[#​assign_workspace|[assign_workspace]]]. +
-  - Si vous avez de nombreux espaces de travail sur de nombreux moniteurs, il peut être difficile de savoir quelle fenêtre sont placées et où. Aussi, vous pouvez utiliser des marques de type vim pour basculer rapidement entre les fenêtres. Voir [[#​vim_like_marks|[vim_like_marks]]]. +
-  - Pour plus d'​informations sur la façon de déplacer des espaces de travail existants entre des moniteurs, consultez [[#​move_to_outputs|[move_to_outputs]]]. +
- +
- +
- +
- +
- +
-===== 8. i3 et le reste de vos applications ===== +
- +
-==== 8.1. Afficher une barre d'​état ==== +
- +
-Une chose très courante parmi les utilisateurs de gestionnaires de fenêtres exotiques est une barre d'​état dans un coin de l'​écran. C'est un remplacement souvent supérieur à l'​approche "​widget"​ que vous avez dans la barre des tâches d'un environnement de bureau traditionnel. +
- +
- +
-Si vous n’avez pas encore votre méthode préférée pour générer une telle barre d’état (scripts auto-écrits,​ conky,…), alors i3status est l’outil recommandé pour cette tâche. Il a été écrit en C dans le but d'​utiliser le moins d'​appels système possible pour réduire le temps de réveil de votre CPU. Parce que i3status ne produit que du texte, vous devez le combiner avec un autre outil, comme i3bar. Voir [[#​status_command|[status_command]]] pour savoir comment afficher i3status dans i3bar. +
- +
- +
-Quelle que soit l'​application que vous utilisez pour afficher la barre d'​état,​ vous voulez vous assurer qu'​elle s'​enregistre en tant que dock à l'aide du support EWMH. i3 positionnera la fenêtre en haut ou en bas de l'​écran,​ en fonction de l'​option définie par l'​application. Avec i3bar, vous pouvez configurer sa position, voir [[#​i3bar_position|[i3bar_position]]]. +
- +
- +
- +
-==== 8.2. Réaliser des présentations (multi-monitor) ==== +
- +
-Lorsque vous donnez une présentation,​ vous voulez généralement que le public voie ce que vous voyez sur votre écran, puis passe par une série de diapositives (si la présentation est simple). Pour des présentations plus complexes, vous voudrez peut-être avoir des notes que vous seul pouvez voir sur votre écran, tandis que le public ne peut voir que les diapositives. +
- +
- +
-=== 8.2.1. Cas 1: tout le monde voit la même chose === +
- +
-C'est le cas simple. Vous connectez votre ordinateur au vidéoprojecteur,​ allumez les deux (ordinateur et vidéoprojecteur) et configurez votre serveur X pour cloner l'​écran plat interne de votre ordinateur vers la sortie vidéo : +
- +
- +
-<​code>​ +
-xrandr --output VGA1 --mode 1024x768 --same-as LVDS1 +
-</​code>​ +
- +
- +
-i3 utilisera alors le sous-ensemble commun le plus bas de résolutions d'​écran,​ le reste de votre écran ne sera pas touché (il affichera l'​arrière-plan X). Donc, dans notre exemple, ce serait 1024x768 (mon ordinateur portable est en 1280x800). +
- +
- +
- +
-=== 8.2.2. Cas 2: vous pouvez voir plus que votre public === +
- +
-Cette affaire est un peu plus délicat. Tout d'​abord,​ vous devez configurer la sortie VGA quelque part près de votre écran plat interne, disons à droite : +
- +
- +
-<​code>​ +
-xrandr --output VGA1 --mode 1024x768 --right-of LVDS1 +
-</​code>​ +
- +
- +
-Maintenant, i3 va afficher un nouvel espace de travail (en fonction de vos paramètres) sur le nouvel écran et vous êtes en mode multi-moniteurs (voir [[#​multi_monitor|[multi_monitor]]]). +
- +
- +
-Étant donné que i3 n'est pas un gestionnaire de fenêtres de composition,​ il n'est pas possible d'​afficher une fenêtre sur deux écrans en même temps. Au lieu de cela, votre logiciel de présentation doit faire ce travail (c'​est-à-dire ouvrir une fenêtre sur chaque écran). +
- +
- +
- +
- +
-==== 8.3. Écran haute définition (aka HIDPI displays) ==== +
- +
-Voir https://​wiki.archlinux.org/​index.php/​HiDPI pour plus de détails sur l'​activation de la mise à l'​échelle dans diverses parties du bureau Linux. i3 lira le DPI souhaité à partir de la propriété ''​%%Xft.dpi%%''​. La propriété est définie par défaut sur 96 PPP, donc pour obtenir une mise à l'​échelle de 200%, vous devez définir ''​%%Xft.dpi:​ 192%%''​ dans ''​%%~/​.Xresources%%''​. +
- +
- +
-Si vous êtes un utilisateur i3 de longue date et que vous venez de recevoir un nouveau moniteur, vérifiez que : +
- +
- +
-  * Vous utilisez une police scalable (commençant par «pango:») dans votre configuration i3. +
-  * Vous utilisez un émulateur de terminal qui prend en charge la mise à l'​échelle. Vous pouvez passer temporairement à gnome-terminal,​ qui est connu pour prendre en charge la mise à l'​échelle,​ jusqu'​à ce que vous compreniez comment ajuster la taille de la police dans votre émulateur de terminal préféré. +
- +
- +
- +
- +
- +
-auteur : Michael Stapelberg //michael [at] i3wm [dot] org// +
- +
-//< < fin de la traduction]\\ +
-by arpinux 2020.// +
- +
-===== liens ===== +
- +
-  * [[https://​i3wm.org/​|site officiel [GB]]] +
-  * [[https://​i3wm.org/​docs/​userguide.html|user guide officiel [GB]]] +
-  * [[https://​thomashunter.name/​i3-configurator/​|i3wm colorscheme configurator]] +
-  * [[https://​debian-facile.org/​doc:​environnements:​x11:​i3wm-polybar|wiki debian-facile]] +
-  * [[https://​debian-facile.org/​utilisateurs:​sushy|config perso SuShY]] +
-  * [[https://​debian-facile.org/​utilisateurs:​arpinux:​tutos:​i3config|config perso arpinux]] +
- +
- +
  
 +[...] \\
 +ne souhaitant pas maintenir 25 pages différentes d'une même traduction, je vous laisse le lien de la version à jour sur le wiki nakeDeb : https://​nakedeb.arpinux.org/​wikii3wm.html#​userguide :-)
utilisateurs/arpinux/tutos/i3-userguide-fr.1681125681.txt.gz · Dernière modification: 10/04/2023 13:21 par arpinux

Pied de page des forums

Propulsé par FluxBB