N-PN White-Hat Project
[AWESOME] key bindings - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Informatique (https://dev.n-pn.fr/forum/forumdisplay.php?fid=12)
+--- Forum : GNU/Linux | Unix (https://dev.n-pn.fr/forum/forumdisplay.php?fid=31)
+--- Sujet : [AWESOME] key bindings (/showthread.php?tid=3709)



[AWESOME] key bindings - Junky - 01-08-2014

Bonjour,

Comme vous le savez, je me penche en ce moment sur le "pimpage" de mon interface graphique et donc de mon awesome.

Je possède un laptop Asus UX31e, et je voulais mettre en place des bindings pour gérer le volume.

Normalement, les raccourcis par defaut sont:

Code BASH :

fn + f[10|11|12]
 


pour:

- f10 => mute
- f11 => down
- f12 => up.

Je voulais a la base les config avec gconftool-2, mais voilà la merde srx. Je me suis donc penché sur les keybindings d'awesome.

La touche "maitresse" d'awesome est la touch 'modkey' qui est simplement la touche windows de votre clavier. (<TROLL> vous savez cette touche qui défigure votre clavier Smile </TROLL>)

La première problématique fut:

- Comment gérer le son en ligne de commande ?

Comme beaucoup, je suppose, nous connaissons 'alsamixer' mais celui-ci est en mode cli dans un term, et ne répond donc pas a nos besoins. Un alsamixer --help nous le confirme:

Code BASH :

0 ✓ silentd@G3nt00 ~ $ alsamixer --help
Utilisation: alsamixer [options]
Options utiles:
  -h, --help           cette aide
  -c, --card=NUMÉRO    numéro ou identifiant de la carte son
  -D, --device=NOM     nom du périphérique de mixage
  -V, --view=MODE      mode de visualisation par défaut: lecture/capture/tous
Options de débogage:
  -g, --no-color          supprimer la couleur
  -a, --abstraction=NOM   niveau d'abstraction du mixeur: aucun/basique
0 ✓ silentd@G3nt00 ~ $



Nous voyons très bien qu'il est pas possible de gérer le son en commande via alsamixer.

En cherchant un peu, on peut découvrir 'amixer' qui lui peut parfaitement répondre a nos besoins.

Amixer va nous permettre donc de gérer notre son. Un coup de man, et nous avons quelques exemples (c'est tellement rare, que nous allons pas nous en priver... Wink )

Code BASH :

0 ✓ silentd@G3nt00 ~ $ amixer set Master 10%+
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 39334 [60%] [on]
  Front Right: Playback 39334 [60%] [on]

0 ✓ silentd@G3nt00 ~ $ amixer set Master 10%-
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 32780 [50%] [on]
  Front Right: Playback 32780 [50%] [on]
0 ✓ silentd@G3nt00 ~ $

 


Voici une commande assez simple finalement, il nous reste plus qu'a l'implémenter dans notre rc.lua.

Ouvrez votre rc.lua et dans la section keybinding rajoutez ceci:

Code LUA :

awful.key({ modkey,           }, "F10", function() awful.util.spawn("amixer set Master 0%") end ),
awful.key({ modkey,           }, "F11", function() awful.util.spawn("amixer set Master 10%-") end ),
awful.key({ modkey,           }, "F12", function() awful.util.spawn("amixer set Master 10%+") end ),

 


Ici nous passons par la la fonction 'awful.util.spawn' fourni par l'API awesome. (doc)

- F10 => mute
- F11 => down de 10%
- F12 => up de 10%

Et voilà pas plus compliqué.. N'oubliez pas biensur de recharger votre awesome ( modkey+ctrl+r)

Nous aurions pu faire autrement pour l'exécution de amixer. Passer par exemple par os.execute()

Code LUA :

function()
    os.execute("/usr/bin/amixer set Master 10%-")
    -- rajouter ici par exemple une notification

 


Il est bien entendu possible de rajouter des notifications afin de connaitre le pourcentage du vlume en cours.

Junky,