summaryrefslogtreecommitdiff
path: root/content/Informatique/2013-07-21-shifty.rst
diff options
context:
space:
mode:
Diffstat (limited to 'content/Informatique/2013-07-21-shifty.rst')
-rw-r--r--content/Informatique/2013-07-21-shifty.rst176
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 !