diff options
Diffstat (limited to 'content/Informatique/2013-07-21-shifty.rst')
-rw-r--r-- | content/Informatique/2013-07-21-shifty.rst | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/content/Informatique/2013-07-21-shifty.rst b/content/Informatique/2013-07-21-shifty.rst new file mode 100644 index 0000000..82d9206 --- /dev/null +++ b/content/Informatique/2013-07-21-shifty.rst @@ -0,0 +1,176 @@ +.. -*- mode: rst -*- +.. -*- coding: utf-8 -*- + +==================== +Astuces pour awesome +==================== + +:date: 2013-07-21 +:tags: Libre, awesome +:summary: |summary| +:logo: /images/awesome/tiling.jpg + +.. figure:: {filename}/images/awesome/tiling.jpg + :figwidth: 150 + :figclass: floatleft + :alt: Pavement + + Image : `Lauren Manning`_ (creativecommons_) + +.. _creativecommons: http://creativecommons.org/licenses/by/2.0/ +.. _Lauren Manning: http://www.flickr.com/photos/laurenmanning/2318922360/in/photostream/ + +|summary| + +.. |summary| replace:: + Le WM awesome est majoritairement utilisé par des utilisateurs qui passent + du temps à configurer leur bureau (ou qui n'ont pas peur de le faire) et + peut être paramétré de bien des manières ; les recettes ne manquent pas sur + le wiki. Voici ici quelques astuces issues de mon utilisation. + +Intégration avec gnome +====================== + +Awesome est un gestionnaire de fenêtre et ne remplace pas un gestionnaire de +bureau et tous ses avantages : monter automatiquement les clefs usb branchées, +conserver le mot de passe ssh pour la session, etc. + +Gnome permet de remplacer le gestionnaire par un autre, ce que nous allons +mettre à profit pour utiliser awesome à la place de celui proposé par défaut. +Vous pouvez donc échapper à l'affreux `Gnome Shell`_ et passer sous en +gestionnaire ergonomique… + +Un guide est disponible sur le wiki_ et une fois configuré, vous n'avez plus +qu'à choisir gnome comme session de démarrage : awesome sera automatiquement +lancé et utilisé comme gestionnaire de fenêtre ! + +Il s'agit de la principale astuce car elle permet de lancer un nombre important +de services qui ne sont pas pris en charge par un simple gestionnaire de +fenêtre. + +.. _Gnome Shell: https://fr.wikipedia.org/wiki/GNOME_Shell +.. _wiki: http://awesome.naquadah.org/wiki/Quickly_Setting_up_Awesome_with_Gnome/fr + +.. image:: {filename}/images/awesome/menu.jpg + :class: floatright + :alt: Session menu + +Gérer la session +================ + +Maintenant que awesome est lancé dans une session gnome, on peut lancer des +commandes DBUS sans difficultées : nous allons en profiter pour ajouter au menu +d'awesome la possiblité de gérer sa session. Le code suivant permet de +rajouter au menu sous menu « system » qui contiendra les actions « quit », +« restart » et « halt » permetant d'éxécuter les commandes de déconnexion +directement : + +.. code-block:: lua + + mysystemmemu = { + {"quit", "dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.Logout uint32:1"}, + {"restart", 'dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart' }, + {"halt", 'dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop'}, + + } + + mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, + […] + { "system", mysystemmemu } + +Les commandes DBUS proviennent du `forum ubuntu`_ ; d'une manière générale, +DBUS permet de faire énormément de chose avec son système (note pour plus tard, +trouver un annuaire des commandes). + +.. _forum ubuntu: http://forum.ubuntu-fr.org/viewtopic.php?pid=7615111#p7615111 + +Afficher le calendrier +====================== + +Par défaut, awesome affiche l'heure et la date dans la bare de menu, mais aucun +calendrier n'est disponible. Pour ceux qui ont besoin d'un simple calendrier et +non d'un agenda, je recommande gsimplecal_ qui se contente d'afficher le mois +en cours. On peut facilement modifier la configuration pour lancer +l'application dès que l'on clic sur la date : il suffit de modifier le textbox +déjà existant pour lui ajouter un évènement sur le clic de la souris : + +.. code-block:: lua + + -- Create a textclock widget + mytextclock = awful.widget.textclock({ align = "right" }) + mytextclock:buttons(awful.util.table.join( + -- Launch on clic + awful.button({ }, 1, function() awful.util.spawn_with_shell("gsimplecal") end + )) + + +.. _gsimplecal: http://dmedvinsky.github.io/gsimplecal/ + +Utiliser les touches média +========================== + +.. image:: {filename}/images/awesome/medias.png + :class: floatleft + :alt: Media keys + +Vous avez peut-être des touches d'accès rapide sur votre clavier pour le mail, +lancer le navigateur web… Ce sont des touches médias, qui peuvent être +interceptées par le gestionnaire de fenêtre pour lancer les actions +appropriées. On va se servir de ces touches pour lancer les applications dont +nous avons besoin. + +Toutefois, j'ai rarement besoin d'avoir plus d'un client mail ou un navigateur +lancé. De même, je passe souvent d'une recherche sur le web à autre chose, +avant de retourner sur le navigateur. J'ai donc pris l'habitude de le garder +lancé et ouvert dans un onglet à part. Ce que je propose permet l'action +suivante : lorsque l'on appuie sur la touche « web » du clavier, on va demander +au gestionnaire de fenêtre d'afficher le `tag` dans lequel est tourne. Si ce +`tag` n'est pas présent sur le bureau : on va le créer, et lancer au passage le +navigateur, ainsi, on n'a pas besoin de savoir si l'application est lancée ou +non, c'est Awesome qui se charge de faire ça pour nous. + +Il existe une extension permetant de gérer les tags et les applications +facilement : shifty_, elle vient se substituer au gestionnaire de tag +implémenté par défaut, et permet de faire beaucoup de choses très +intéressante : + +* lancer une application au démarrage d'un tag +* … + +Dans la configuration de shifty, il faut déclarer ses tags ainsi : + +.. code-block:: lua + + shifty.config.tags = { + ["musique"] = { position = 100, icon = music_icon, spawn = "gmpc"}, + ["mail"] = { position = 101, icon = mail_icon, spawn = "icedove"}, + ["web"] = { position = 102, icon = web_icon, spawn = "iceweasel"}, + + +Cela permet de lancer l'application désirée lors de la création du tag (s'il +n'est pas déjà affiché), puis dans la configuration générale d'awesome : + +.. code-block:: lua + + globalkeys = awful.util.table.join( + awful.key({ }, "XF86Calculator", function() awful.tag.viewonly(shifty.getpos(100)) end ), + awful.key({ }, "XF86Mail", function() awful.tag.viewonly(shifty.getpos(101)) end ), + awful.key({ }, "XF86HomePage", function() awful.tag.viewonly(shifty.getpos(102)) end ), + +Maintenant on demande à afficher le tag voulu en fonction de la touche clavier +préssée : si le tag existe, il sera affiché, sinon il sera non seulement créé, +mais l'application sera lancée : un bon moyen pour avoir toujours ses +applications préférées au bout des doigts ! + +.. _shifty: http://awesome.naquadah.org/wiki/Shifty/fr + +Conclusion +========== + +Awesome reste pour moi toujours aussi agréable à utiliser. Cela fait plus de +trois ans maintenant que je l'utilise, et je continue d'être ravi d'avoir un +système qui se contrôle au doigt et à l'œuil (au doigt surtout !). Pouvoir +configurer ses applications à sa guise peut paraître couteux et compliqué de +prime abord, mais permet d'avoir un système qui correspond à notre besoin : ça +n'est pas à nous de nous adapter à un outil, c'est à l'outil de s'adapter à +notre usage ! |