Important :

Le présent wiki a été migré vers wiki.archlinux.org.

Ce Wiki a été archivé. Toute contribution doit donc désormais se faire là-bas. Cette page de Wiki possède donc potentiellement des informations qui ne sont plus à jour !

Accueil wiki FR sur .org

I3 : Différence entre versions

De ArchwikiFR
(Ajout des catégories.)
m (Lancement : utilisation modeles)
 
(9 révisions intermédiaires par 5 utilisateurs non affichées)
Ligne 2 : Ligne 2 :
 
[[Catégorie:Environnement graphique]]
 
[[Catégorie:Environnement graphique]]
 
[[Catégorie:Gestionnaire de fenêtres]]
 
[[Catégorie:Gestionnaire de fenêtres]]
 +
{{DISPLAYTITLE:i3}}
  
'''[https://i3wm.org/ i3]''' est un [[:category:Gestionnaire de fenêtres|gestionnaire de fenêtres]] pavant, écrit « [https://fr.wikipedia.org/wiki/Ex_nihilo from scratch] », sous [https://fr.wikipedia.org/wiki/Licence_BSD license BSD]. Principalement conçu pour un public expérimenté, il a pour origine [[:en:wmii | wmii (en)]]. C'est, en effet, de tentatives d'améliorations de wmii qu'i3 est né.  
+
'''[https://i3wm.org/ i3]''' est un [[gestionnaire de fenêtres]] pavant, écrit « [https://fr.wikipedia.org/wiki/Ex_nihilo from scratch] », sous [https://fr.wikipedia.org/wiki/Licence_BSD license BSD]. Principalement conçu pour un public expérimenté, il a pour origine [[:en:wmii | wmii (en)]]. C'est, en effet, de tentatives d'améliorations de wmii qu'i3 est né.  
  
 
Parmi les principaux objectifs ; un code bien écrit et documenté, l'utilisation de [https://fr.wikipedia.org/wiki/XCB xcb], la gestion de plusieurs moniteurs, l'usage d'arbres plutôt que de colonnes pour gérer des données, ne pas rendre obsolètes les configurations sans changement majeur de version ou encore n'implémenter de fonctions que si elles bénéficient à un large nombre.  
 
Parmi les principaux objectifs ; un code bien écrit et documenté, l'utilisation de [https://fr.wikipedia.org/wiki/XCB xcb], la gestion de plusieurs moniteurs, l'usage d'arbres plutôt que de colonnes pour gérer des données, ne pas rendre obsolètes les configurations sans changement majeur de version ou encore n'implémenter de fonctions que si elles bénéficient à un large nombre.  
Ligne 10 : Ligne 11 :
 
== Installation ==
 
== Installation ==
  
[[i3]] est présent dans le [[depots|dépot]] community et peut donc être installé via pacman :
+
{{pacman|i3-wm}}
pacman -S i3-wm
 
  
 
[[i3]] est aussi disponible sous la forme d'un [[:en:Package group|ensemble de paquets (en)]], incluant, en sus d'[[i3]] lui-même, un verrou d'écran et deux programmes relatifs à la barre de statut ''i3bar''.  
 
[[i3]] est aussi disponible sous la forme d'un [[:en:Package group|ensemble de paquets (en)]], incluant, en sus d'[[i3]] lui-même, un verrou d'écran et deux programmes relatifs à la barre de statut ''i3bar''.  
Ligne 18 : Ligne 18 :
 
{{Note|Notez toutefois que l'installation ainsi proposée indiquera un conflit entre {{pkg|i3-wm}} et {{pkg|i3-gaps}} et que c'est ce dernier, un [https://fr.wikipedia.org/wiki/Fork_(d%C3%A9veloppement_logiciel) fork] de [[i3]] qui sera installé.}}
 
{{Note|Notez toutefois que l'installation ainsi proposée indiquera un conflit entre {{pkg|i3-wm}} et {{pkg|i3-gaps}} et que c'est ce dernier, un [https://fr.wikipedia.org/wiki/Fork_(d%C3%A9veloppement_logiciel) fork] de [[i3]] qui sera installé.}}
  
De nombreux paquets supplémentaires ; versions [[:en:https://wiki.archlinux.org/index.php/Git|git (en)]], patchs, scripts, etc. sont disponibles via [[AUR]].
+
De nombreux paquets supplémentaires ; version [[:en:https://wiki.archlinux.org/index.php/Git|git (en)]], patchs, scripts, etc. sont disponibles via [[AUR]].
 
 
  
 
== Lancement ==  
 
== Lancement ==  
 
+
{{Start X|i3}}
Pour lancer [[i3]] depuis un [[tty]], ajoutez à votre [[startx|.xinitrc]]
 
exec i3
 
 
 
Alternativement, {{pkg|i3-wm}} inclus également {{filename|i3.desktop}} en tant que [[Gestionnaire de connexions|gestionnaire de connexion]].
 
 
 
  
 
=== Wizard ===  
 
=== Wizard ===  
Ligne 35 : Ligne 29 :
 
* de choisir la « $mod key » qui sera utilisée. Il s'agit de la touche à l'origine de l'essentiel des appels d'action. Choix est donné entre {{keypress|Win}} (aussi appelée couramment « super ») et {{keypress|Alt}}.
 
* de choisir la « $mod key » qui sera utilisée. Il s'agit de la touche à l'origine de l'essentiel des appels d'action. Choix est donné entre {{keypress|Win}} (aussi appelée couramment « super ») et {{keypress|Alt}}.
  
 +
== Configuration ==
 +
 +
Elle s'effectue à l'aide d'un unique fichier. Copiez {{filename|etc/i3/config}} dans {{filename|~/.i3/config}} ou {{filename|~/.config/i3/config}} et éditez-le. L'édition ne nécessite pas de compétence particulière ou de connaissance d'un quelconque langage de programmation. Pour plus d'informations, référez-vous au [https://i3wm.org/docs/userguide.html#configuring guide (en)].
 +
 +
 +
=== bépo ===
 +
 +
[[i3]] utilise un système de ''bindsym'' qui remplace les ''bindcode'', c'est-à-dire que les actions ne sont pas liées aux « valeurs » des touches (« a » par exemple) mais à leur position sur le clavier, dépendant donc de la disposition du [[clavier]], notamment en [[Dvorak|bépo]]. Les utilisateurs habutués à l'ergonomie de [[i3]] n'auront pas de difficulté à s'adapter, les autres préféreront éviter le [I3|Wizard] et directement copier le fichier de configuration afin d'éviter la prise en compte de la disposition du clavier.
 +
 +
Voir également ce [https://bepo.fr/wiki/I3mw retour d'expérience] sur [https://bepo.fr bépo.fr].
  
 
== Utilisation ==
 
== Utilisation ==
Ligne 124 : Ligne 128 :
 
=== Gestion des fenêtres ===
 
=== Gestion des fenêtres ===
  
La gestion des fenêtres s'effectue par division de l'espace en éléments de plus petites tailles, à travers notamment un système de containers. [[i3]] étant pavant, la prenière fenêtre ouverte '''A''' occupera tout l'espace (i.e. l'intégralité du container) et prendra au choix une caractérisation horizontale ou verticale. Lorsqu'une nouvelle fenêtre '''B''' est créée, elle prendra la moitié de l'espace, orientée horizontalement ou verticalement suivant la caractérisation, réduisant donc la taille de '''A''' de moitié. La création d'une nouvelle fenêtre '''C''' pourra ensuite se faire en usant toujours du container originel comme ''parent'', divisant l'espace en parts égales. En revanche, si la division est effectée avec '''A''' ou '''B''' comme ''parent'', alors seul l'espace occupé par cette fenêtre sera divisée en deux, l'autre fenêtre demeurant inchangée. Le ''focus'' détermine quelle fenêtre sera divisé. Une légère coloration et une discrète épaisseur supplémentaire le long d'un bord indique si la prochaine division sera horizontale ou verticale. La combinaison {{Keypress|$mod}} + {{Keypress|a}} permet d'effectuer un ''focus parent''.  
+
La gestion des fenêtres s'effectue par division de l'espace en éléments de plus petites tailles, à travers notamment un système de containers. [[i3]] étant pavant, la première fenêtre ouverte '''A''' occupera tout l'espace (i.e. l'intégralité du container) et prendra au choix une caractérisation horizontale ou verticale. Lorsqu'une nouvelle fenêtre '''B''' est créée, elle prendra la moitié de l'espace, orientée horizontalement ou verticalement suivant la caractérisation, réduisant donc la taille de '''A''' de moitié. La création d'une nouvelle fenêtre '''C''' pourra ensuite se faire en usant toujours du container originel comme ''parent'', divisant l'espace en parts égales. En revanche, si la division est effectée avec '''A''' ou '''B''' comme ''parent'', alors seul l'espace occupé par cette fenêtre sera divisée en deux, l'autre fenêtre demeurant inchangée. Le ''focus'' détermine quelle fenêtre sera divisé. Une légère coloration et une discrète épaisseur supplémentaire le long d'un bord indique si la prochaine division sera horizontale ou verticale. La combinaison {{Keypress|$mod}} + {{Keypress|a}} permet d'effectuer un ''focus parent''.  
  
 
Toutes les fenêtres sont déplaçables et peuvent ainsi fournir une très grande variété d'agencement. Il est également possible de redimmensionner aisément des fenêtres, auquel cas toutes les fenêtres ''filles'' dépendantes seront redimmensionnsées au passage. [[i3]] utilise également un système de bureaux et il est très simple d'y « envoyer » une fenêtre ou un groupe afin de récupérer de l'espace ou de permettre un vis-à-vis.
 
Toutes les fenêtres sont déplaçables et peuvent ainsi fournir une très grande variété d'agencement. Il est également possible de redimmensionner aisément des fenêtres, auquel cas toutes les fenêtres ''filles'' dépendantes seront redimmensionnsées au passage. [[i3]] utilise également un système de bureaux et il est très simple d'y « envoyer » une fenêtre ou un groupe afin de récupérer de l'espace ou de permettre un vis-à-vis.
  
 
Pour de plus amples informations, reportez-vous au [https://i3wm.org/docs/userguide.html#_tree guide (en)] ou à [https://www.youtube.com/watch?v=AWA8Pl57UBY cette vidéo] qui explique notamment le rôle des containers.
 
Pour de plus amples informations, reportez-vous au [https://i3wm.org/docs/userguide.html#_tree guide (en)] ou à [https://www.youtube.com/watch?v=AWA8Pl57UBY cette vidéo] qui explique notamment le rôle des containers.
 +
 +
=== Lanceur d'application ===
 +
 +
[[i3]] utlise [[dmenu]] par défaut. Un raccourci est prévu à cet effet : {{keypress|$mod}} + {{keypress|d}}. [[dmenu]] doit être installé séparément si vous n'avez pas installé [[I3#Installation|l'ensemble de paquets]].
 +
 +
 +
== Liens ==
 +
 +
*[https://i3wm.org/ Site officiel (en)]
 +
*[https://github.com/i3/i3 Code source]
 +
*[https://github.com/ashinkarov/i3-extras Ensemble de scripts et patches]
 +
*[https://github.com/acrisci/i3ipc-glib Bibliothèque pour des extensions i3]
 +
*[https://github.com/veelenga/i3ipc-ruby Bibliothèque pour des extensions i3 en Ruby]
 +
 +
==== Forum archlinux.org ====
 +
 +
*[https://bbs.archlinux.org/viewtopic.php?id=99064 Sujet consacré à i3 (en)]
 +
*[https://bbs.archlinux.org/viewtopic.php?id=103369 Configuration, '''ricing''']
 +
 +
==== Vidéos ====
 +
 +
*[https://www.youtube.com/watch?v=QnYN2CTb1hM GooGleTalk - Michael Stapelberg - 25-01-2012 - Introduction to i3 (en)]
 +
*[https://www.youtube.com/watch?v=j1I63wGcvU4&index=1&list=PL5ze0DjYv5DbCv9vNEzFmP6sU7ZmkGzcf Trois vidéos autour d'i3 : découverte - configuration - ricing (en)]

Version actuelle datée du 8 février 2021 à 09:47


i3 est un gestionnaire de fenêtres pavant, écrit « from scratch », sous license BSD. Principalement conçu pour un public expérimenté, il a pour origine wmii (en). C'est, en effet, de tentatives d'améliorations de wmii qu'i3 est né.

Parmi les principaux objectifs ; un code bien écrit et documenté, l'utilisation de xcb, la gestion de plusieurs moniteurs, l'usage d'arbres plutôt que de colonnes pour gérer des données, ne pas rendre obsolètes les configurations sans changement majeur de version ou encore n'implémenter de fonctions que si elles bénéficient à un large nombre.


Installation

Vous pouvez installer le paquet i3-wm avec Pacman.

pacman -Syu i3-wm

i3 est aussi disponible sous la forme d'un ensemble de paquets (en), incluant, en sus d'i3 lui-même, un verrou d'écran et deux programmes relatifs à la barre de statut i3bar.

pacman -S i3
Note : Notez toutefois que l'installation ainsi proposée indiquera un conflit entre i3-wm et i3-gaps et que c'est ce dernier, un fork de i3 qui sera installé.

De nombreux paquets supplémentaires ; version git (en), patchs, scripts, etc. sont disponibles via AUR.

Lancement

On peut soit utiliser un gestionnaire de connexions, soit utiliser startx en renseignant le fichier ~/.xinitrc:

exec i3

Wizard

Suite à la première exécution d'i3, une aide à la configuration apparaîtra. Elle proposera :

  • de créer un fichier de configuration ~/.i3/config (il est recommandé d'accepter)
  • de choisir la « $mod key » qui sera utilisée. Il s'agit de la touche à l'origine de l'essentiel des appels d'action. Choix est donné entre Win (aussi appelée couramment « super ») et Alt.

Configuration

Elle s'effectue à l'aide d'un unique fichier. Copiez etc/i3/config dans ~/.i3/config ou ~/.config/i3/config et éditez-le. L'édition ne nécessite pas de compétence particulière ou de connaissance d'un quelconque langage de programmation. Pour plus d'informations, référez-vous au guide (en).


bépo

i3 utilise un système de bindsym qui remplace les bindcode, c'est-à-dire que les actions ne sont pas liées aux « valeurs » des touches (« a » par exemple) mais à leur position sur le clavier, dépendant donc de la disposition du clavier, notamment en bépo. Les utilisateurs habutués à l'ergonomie de i3 n'auront pas de difficulté à s'adapter, les autres préféreront éviter le [I3|Wizard] et directement copier le fichier de configuration afin d'éviter la prise en compte de la disposition du clavier.

Voir également ce retour d'expérience sur bépo.fr.

Utilisation

i3 utilise deux méthodes particulières de gestion, comparé aux environnements de bureau traditionnels : l'usage intensif de raccourcis clavier et une gestion dynamique des fenêtres.


Raccourcis

La conception d'i3 vise à se passer de la souris et effectuer la totalité des actions via le clavier. Si cette méthode est plus véloce, elle requiert cependant l'apprentissage d'un certain nombre de raccourcis.

Parmi les fondamentaux :

Action Touche
Lancer un terminal $mod + Entrée
Diviser la prochaine fenêtre horizontalement $mod + h
Diviser la prochaine fenêtre verticalement $mod + v
Basculer la fenêtre en plein écran / quitter le plein écran $mod + f
focus à gauche $mod + j
focus à droite $mod + m
focus en haut $mod + l
focus en bas $mod + k
Déplacer une fenêtre à gauche $mod + shift + j
Déplacer une fenêtre à droite $mod + shift + m
Déplacer une fenêtre en haut $mod + shift + l
Déplacer une fenêtre en bas $mod + shift + k
Accès au mode de redimensionnement des fenêtres $mod + r
Changer de bureau $mod + 0 - 9
Déplacer la fenêtre du focus vers un autre bureau $mod + shift + 0 + 9
Mode par défaut (pavant) $mod + e
Mode "pile" (stacking) $mod ou s
Mode onglets $mod + w
Activer / désactiver le mode flottant $mod + shift + space
Ouvrir le lanceur d'application (défaut = dmenu) $mod + d
Mettre à jour le fichier de configuration de i3 $mod + shift + c
Relancer i3 $mod + shift + r
Quitter i3 $mod + shift + e


Gestion des fenêtres

La gestion des fenêtres s'effectue par division de l'espace en éléments de plus petites tailles, à travers notamment un système de containers. i3 étant pavant, la première fenêtre ouverte A occupera tout l'espace (i.e. l'intégralité du container) et prendra au choix une caractérisation horizontale ou verticale. Lorsqu'une nouvelle fenêtre B est créée, elle prendra la moitié de l'espace, orientée horizontalement ou verticalement suivant la caractérisation, réduisant donc la taille de A de moitié. La création d'une nouvelle fenêtre C pourra ensuite se faire en usant toujours du container originel comme parent, divisant l'espace en parts égales. En revanche, si la division est effectée avec A ou B comme parent, alors seul l'espace occupé par cette fenêtre sera divisée en deux, l'autre fenêtre demeurant inchangée. Le focus détermine quelle fenêtre sera divisé. Une légère coloration et une discrète épaisseur supplémentaire le long d'un bord indique si la prochaine division sera horizontale ou verticale. La combinaison $mod + a permet d'effectuer un focus parent.

Toutes les fenêtres sont déplaçables et peuvent ainsi fournir une très grande variété d'agencement. Il est également possible de redimmensionner aisément des fenêtres, auquel cas toutes les fenêtres filles dépendantes seront redimmensionnsées au passage. i3 utilise également un système de bureaux et il est très simple d'y « envoyer » une fenêtre ou un groupe afin de récupérer de l'espace ou de permettre un vis-à-vis.

Pour de plus amples informations, reportez-vous au guide (en) ou à cette vidéo qui explique notamment le rôle des containers.

Lanceur d'application

i3 utlise dmenu par défaut. Un raccourci est prévu à cet effet : $mod + d. dmenu doit être installé séparément si vous n'avez pas installé l'ensemble de paquets.


Liens

Forum archlinux.org

Vidéos