summaryrefslogtreecommitdiff
path: root/content/Informatique/2010-06-06-awesome.rst
blob: 301f86c6df22ff778c6e82251a4e01beb7f3ca10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
.. -*- mode: rst -*-
.. -*- coding: utf-8 -*-

Un menu pour awesome
####################

:date: 2010-06-06
:tags: Libre, awesome
:summary: |summary|

Awesome est un window manager (wm) en mode pavement (les fenêtres se
disposent de manière à ne jamais se chevaucher). Cela permet de ne pas
avoir à se soucier de la manière dont il faut gérer l'affichage des
applications.

|Awesome|

Une des particularités est que sa configuration se fait par un fichier de
script exécuté au lancement du bureau. Cela permet de paramétrer comme
on le souhaite le bureau sans être limité par le WM. La contrepartie est
que cela est plus difficile à prendre en main, et une erreur de code
entraîne un écran gris au lieu du bureau que l'on souhaite obtenir... Le
langage utilisé (Lua) est un langage connu pour sa légèreté. Pour
l'instant, le projet étant encore assez jeune, il n'existe pas encore
beaucoup de modules standardisés pour configurer le système, mais je
pense que ceux-ci ne tarderont pas à venir...

Pour l'instant la configuration n'est pas encore stabilisée, certains
composants changent au cours d'une version à une autre, ce qui casse
parfois la mise à jour et oblige à retravailler les scripts de mise de
configuration. Je pense cependant que tout cela suit la bonne direction
et que ces soucis finiront par disparaître avec le temps et les versions
suivantes

La plupart des actions peuvent être associées à un raccourci clavier, et
s'il est possible d'affiche une barre d'outil à chaque application («
titlebar »), on prend vite l'habitude de s'en passer et de tout
contrôler au clavier. On est d'autant plus aidé par cela par
`shifty <http://awesome.naquadah.org/wiki/Shifty>`_ une extension qui
permet de « programmer » la manière dont on veut que les fenêtres
s'affichent : sur quel écran, avec quels paramètres etc. Cela permet par
exemple d'avoir une configuration pour des applications utilisant
plusieurs fenêtres (je pense par exemple à Gimp) paramétrée comme on
le souhaite…

On prend vite l'habitude également d'utiliser plusieurs « tags » (l'équivalent
de bureaux virtuels mais un peu plus étendus) : ceux-ci peuvent être paramétrés
pour afficher des applications sépicifiques (j'ai par exemple adapté ma
configuration pour que *web* affiche firefox, ou que *news* affiche le couple
elinks/newsbeuter pour lire mes flux RSS…

Bien sûr le temps de paramétrage au début est un peu long, mais
maintenant que l'API est stable, il n'est plus nécessaire de tout
reprendre à chaque fois que l'on met à jour awesome.

|summary|

.. |summary| replace::
    Je trouvais qu'il manquait à Awesome un menu avec les actions
    disponibles sur les fenêtres : la faire passer au premier plan, la
    minimiser… Tout ceci est disponible avec des raccourcis claviers, mais
    il n'y a pas d'option centralisée pour les retrouver. J'ai donc décidé
    de me plonger un petit peu dans lua pour produire le menu que voilà :

|Menu pour awesome|

Le menu permet les actions suivantes :

-  On top : Pour mettre le client sélectionné au premier plan et le
   rendre flottant
-  Sticky : Faire apparaître le client sur tous les tags
-  Minimize : Réduire le client
-  Close : Fermer le client
-  Move To : Déplacer le client vers un autre tag

Le script fonctionne avec awesome 3.4.5, les versions antérieures ne
sont pas forcement compatibles suite à un changement dans l'ABI du menu.
J'essaierai également de le mettre à jour pour les versions suivantes (
du moins tant que je m'en servirai…)

Pour le faire fonctionner, il faut télécharger le script et le placer
dans son répertoire ${HOME}/.config/awesome . Ensuite, éditer le fichier
rc.lua et y ajouter la ligne suivante en en-tête :

.. code-block:: lua

    require("mymenu")

et dans la partie Key Binding :

.. code-block:: lua

    clientkeys = awful.util.table.join(
    []
        awful.key({ modkey,           }, "Down",    function(c) menu_instance = newAppMenu(c)    end),

Le menu apparaîtra sur le raccourci Mod4 + Flèche du bas

Le fichier : `mymenu.lua`_

.. _mymenu.lua: {filename}/resources/mymenu.lua

.. |Awesome| image:: http://awesome.naquadah.org/index/320x240-screen.png
    :class: floatleft

.. |Menu pour awesome| image:: {filename}../images/menu.png
    :class: floatright