LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


awesome

Awesome Window Manager

Présentation

Awesome est un gestionnaire de fenêtre en tiling. Dans la philosophie “make it simple, stupid!” (fais ça simplement, idiot!), il inclut le strict minimum. C'est à l'utilisateur qu'il appartient de créer son propre environnement de bureau “from scratch” (depuis zéro).

Un gestionnaire de fenêtre en Tiling

“Tiling” peut être traduit par pavage, carrelage ou mieux mozaïc. On oppose le “tilling” au “float” (flottant).

Le plus gros attrait de Awesome est dans sa gestion des fenêtres. D'ailleurs, dans la formulation propre à awesome, on ne dit pas fenêtre mais client. En effet, un client awesome n'a plus grand chose à voire avec une fenêtre, telle que créée par des gestionnaire de fenêtre flottantes.

C'est le gestionnaire de fenêtre qui gère le placement des fenêtres ainsi que leur dimension. Les fenêtre ne se chevauchent pas et se partagent l'écran équitablement. La totalité de l'écran est utilisée, si il n'y a qu'un seul client, il prendra toute la place, s'il y en a plusieurs, ils se la partagent équitablement.

Avec un gestionnaire de fenêtre en tiling, vous n'utilisez plus la souris qu'à l'intérieur des applications. Ouvrir, fermer, redimensionner les clients, changer de bureau, tout ce qui concerne la gestion des fenêtres se fait au clavier.

Utilisation

Après une installation par défaut, awesome démarre avec une barre contenant 9 bureaux virtuels, la liste des clients ouvert, la date et l'heure, un fond d'écran assez moche. Tout est déjà opérationnel.

La touche mod4

Ce genre d'environnement attire naturellement les amoureux du terminal et la adeptes du raccourcis clavier. Il est donc d'autant plus important que les raccourcis propres à awesome n'entrent pas en conflit avec ceux des applications.

Ce problème est résolu d'une manière élégante par l'utilisation de la touche mod4, la touche “window” du clavier. Cela permet d'avoir des raccourcis simples et qui ne vont pas faire faire des choses étranges à votre vim ou votre emacs.

Notion de focus

On dit qu'une fenêtre a le focus lorsque les actions effectuées s'appliquent à elle. En environnement flotant, on dit aussi “sélectionnée”

Ici, bien sûr, les actions s'appliquent au client qui a le focus.

Le layout

Le layout est l'ensemble des règles qui gèrent l'agencement des clients. On a:

  • floating : fenêtres flotantes
  • tiling : en mozaïc
  • fair : en mozaïc, toujours de taille égale
  • spiral : en spiral (faut aimer ^^)
  • max : tous les clients sont maximisés
  • magnifier : le client qui a le focus est mis au-dessus des autres

Les principaux raccourcis clavier

  • <mod4> + fleche gauche/droite : changer de bureau virtuel
  • <mod4> + [numéro] : aller au bureau [numéro]
  • <mod4> + <enter> : ouvrir un terminal
  • <mod4> + r : lancer une application
  • <mod4> + [ j | k ] : client suivant/précédent
  • <mod4> + C : fermer le client
  • <mod4> + m : le client masque les autres
  • <mod4> + f : plein écran
  • <mod4> + [ h | l ] : agrandir ou diminuer le client
  • <mod4> + <maj> + [numéro] : envoyer le client vers le bureau [numéro]
  • <mod4> + <space> : changer le layout
  • <mod4> + <ctrl> + r : recharger awesome (pratique quand on fait des essais de config)
  • <mod4> + <ctrl> + q : quitter

Configuration

Les fichiers de configuration se trouvent dans les répertoires /etc/xdg/awesome/ et /usr/share/awesome/

Mais vous pouvez les rapatrier dans votre répertoire personnel:

cp --parents /etc/xdg/rc.lua ~/.config/awesome/ && cp -r /usr/share/awesome/themes ~/.config/awesome/

Le fichier rc.lua

Le fichier rc.lua définit le comportement d'awesome, les raccourcis claviers, etc. Il est écrit en langage lua. Ne vous affolez pas, c'est un langage de haut niveau facile à comprendre et le fichier est abondament commenté. En plus, pas la peine de tout récrire, il suffit de modifier quelques paramètres.

Voici les modification dont vous avez le plus besoin:

  • Pour utiliser un thème de votre répertoire personnel plutôt que ceux du système:
beautiful.init("~/.config/awesome/themes/[ nom du thème ]/theme.lua")
  • Déterminer les applications par défaut:
terminal = "/usr/bin/urxvt"
editor = "/usr/bin/vim"
editor_cmd = terminal .. " -e " .. editor
  • Activer/désactiver les layout (les double tirets sont des commentaires, le layout noté en premier est le layout par défaut):
layouts =
{
--    awful.layout.suit.floating,
--    awful.layout.suit.tile,
    awful.layout.suit.tile.left,
    awful.layout.suit.tile.bottom,
--    awful.layout.suit.tile.top,
--    awful.layout.suit.fair,
--    awful.layout.suit.fair.horizontal,
--    awful.layout.suit.spiral,
--    awful.layout.suit.spiral.dwindle,
    awful.layout.suit.max,
--    awful.layout.suit.max.fullscreen,
--    awful.layout.suit.magnifier
}
  • comportement des applications particulières:
awful.rules.rules = {
    -- All clients will match this rule.
    { rule = { },
      properties = { border_width = beautiful.border_width,
                     border_color = beautiful.border_normal,
                     focus = true,
                     keys = clientkeys,
                     buttons = clientbuttons } },
    { rule = { class = "MPlayer" },
      properties = { floating = true } },
    { rule = { class = "pinentry" },
      properties = { floating = true } },
    { rule = { class = "gimp" },
      properties = { tile = true } },
    { rule = { class = "Dia" },
      properties = { tile = true } },
}

Attenttion avec the gimp: il faut le configurer en interne pour qu'il laisse le wm gérer lagencement de ses fenêtres.

  • Lancer automatiquement des applications au lancement (à ajouter en fin de fichier):
awful.util.spawn("nm-applet &")
awful.util.spawn_with_shell("xcompmgr -cF &")

Ici, nm-applet et xcompmgr, vous pouvez aussi lancer d'ici tout ce qui compose votre environnement habituel (client mail, messagerie, etc).

Les thèmes

Le réglage du thème va maintenant se faire par le fichier ~/.config/awesome/themes/[nom du thème]/theme.lua

Vous pouvez y régler les couleurs par défaut, les icones utilisées, ça ne présente pas de difficulté particulière.

Une astuce utile, par contre, si vous voulez gérer vos fonds d'écran de manière dynamique, c'est de déterminer le programme qui va le faire, ici nitrogen:

theme.wallpaper_cmd = { "nitrogen --restore &" }

Liens

awesome.txt · Dernière modification: 2018/11/17 13:52 (modification externe)