Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : Bureau

Un OSD de capture clavier en bash

Patrice Ferlet

Impossible de trouver un outil OSD de capture clavier qui puisse fonctionner convenablement avec un tilling desktop... car évidemment tous les outils que j'ai trouvé me place la capture dans la mosaïque... Comme je suis en vacance, je me suis pris 25 minutes à coder un truc qui marche en bash, et qui fasse du vrai OSD (On Screen Display), c'est à dire "sans fenêtre". Et comme je suis gentil, je vous montre :)" class="smiley

Je cherchais sur le net un outil qui afficherait ce que je tape au clavier sur l'écran. Histoire de faire des captures pour des didacticiels vidéo. J'ai cherché un peu partout, rien ne me plaisait vraiment... je me suis alors penché sur une solution à coder. Deux outils sont utilisés: xosd et xinput. OSD voulant dire: On Screen Display, c'est à dire "Affichage sur l'écran"

Je suis d'abord parti en Python... puis en quelques minutes je me suis dit que "finalement, en bash, ce sera tout aussi simple à gérer"... vous me pensez fou, c'est pas faux...

Pourquoi utiliser un vrai OSD ? tout simplement parce que ça m'énervait d'avoir une fenêtre qui affiche les contrôles... je bosse sur Xmonad, et par conséquent le mode "tilling" en fait baver les outils que j'ai trouvé...

Avant de pouvoir utiliser mon script il vous faudra installer 3 paquets (je ne sais pas lesquels sont là par défaut):

yum install util-linux xosd xorg-x11-apps

Cela vous donne quelques commandes que mon script utilise:

  • xinput qui va capter ce que vous tapez
  • osd_cat qui affiche des choses sur l'écran
  • script qui va capturer une sortie terminal

Le script que vous allez voir par la suite fait quelques manipulations:

  • trouve le clavier par défaut: je cherche un clavier qui a "AT" dans "xinput --list"
  • lance la capture des touches via "xinput test ID" où ID est l'identifiant du clavier trouvé ci-dessus
  • faire tourner ça dans "script" qui écrit le typescript dans /dev/null, mais dont la sortie sera captée dans un FIFO
  • cherche la correspondance de clef clavier dans "xmodmap -pke" et écrit ça dans un autre FIFO
  • et enfin, en boucle, on lit le FIFO de sortie clavier qu'on inject dans "osd_cat" avec des options de couleur, de placement, de fontes...

Je me suis amusé à savoir si on pressait une touche de modification (Maj, Ctrl, Super...) pour concaténer les chaines.

Le script est loin d'être parfait, il affiche mal la touche "AltGr" et vous ne pouvez pas non plus faire des maintiens de touches trop complexe en séquence. Par exemple il est impossible de presser:

Ctrl+shift+a puis relacher shift et a en gardant Ctrl pessé et frapper une autre touche sans relacher Ctrl

Bref, le but était de faire un truc fonctionnel, rapidement, et qui me permette de faire à peu près ce que je veux... Je ferai évoluer le script et je le mettrai à jour ici.

Attention les yeux, voici le script:

#!/bin/bash
#author Patrice Ferlet
#Licence BSD
 
 
#some conf vars
COLOR="Purple"
FONT='-*-terminus-*-*-*-*-32-*-*-*-*-*-*-*'
DELAY="5"
XPOS="center"
YPOS="bottom"
OFFSET="15"
INDENT="80"
MAXLINE=3
 
#FIFOS
_tmp_opt=""
if [[ -d /dev/shm ]]; then
    #some unix can use shared memory instead of /tmp
    _tmp_opt=" --tmpdir=/dev/shm"
fi
 
TMP=$(mktemp -u $_tmp_opt)
OSD=$(mktemp -u $_tmp_opt)
mkfifo $TMP
mkfifo $OSD
 
 
#when script is closed, remove fifos
onexit(){
    echo "close..."
    rm -f $TMP
    rm -f $OSD
    exit 0
}
trap onexit INT TERM
 
#get valid keyboard input
kb=$(xinput --list | grep "keyboard" | grep "AT" | grep -Po "id=\d+" | cut -d"=" -f2)
 
#launch "script" to capture xinput, this is a trick !
script -c "xinput test $kb" -f /dev/null > $TMP &
 
#lauch osd command that read OSD fifo
tail -f $OSD | osd_cat -a -d $DELAY -l $MAXLINE -f $FONT -A $XPOS -o $OFFSET -i $INDENT -p $YPOS -c $COLOR &
 
#be sure everything is launched
sleep 0.2
 
#now, read lines from xinput output to do the job
MOD=""
while read line; do
    #reading code, state (press, release) and get keyboard value
    #from xmodmap
    code=$(echo "$line" | awk '{print $3}')
    state=$(echo "$line" | awk '{print $2}')
    key=$(xmodmap -pke | awk "/keycode\s*$code\s+/ {print \$4}")
 
    if [[ $(echo "$key" | grep -Pi "Control|Shift|Alt|Super") ]]; then
        #this case should not be displayed, we only record mod key
        MOD="$MOD$key + "
        if [[ "$state" == "release" ]]; then
            #mod released, remove mod
            MOD=""
        fi
    elif [[ $state == "press" ]]; then
        if [[ $( echo "$MOD" | grep "Shift") ]]; then
            #shift pressed, we should read 5th column
            key=$(xmodmap -pke | awk "/keycode\s*$code\s+/ {print \$5}")
        fi
        echo "$MOD$key" > $OSD
    fi
done < $TMP
exit 1

Vous lancez ce script dans un terminal, puis n'importe où vous pressez des touches... Cela les affiches en OSD. Voilà, c'est ce que je voulais... rien de plus.

OSD keys Bash

Pour arrêter le script, retournez sur le terminal et pessez CTRL+c, cela coupe le script, en supprimant les FIFO en passant.

Voilà, si vous avez des questions, des remarques... je suis preneur !

Un OSD de capture clavier en bash

Patrice Ferlet

Impossible de trouver un outil OSD de capture clavier qui puisse fonctionner convenablement avec un tilling desktop... car évidemment tous les outils que j'ai trouvé me place la capture dans la mosaïque... Comme je suis en vacance, je me suis pris 25 minutes à coder un truc qui marche en bash, et qui fasse du vrai OSD (On Screen Display), c'est à dire "sans fenêtre". Et comme je suis gentil, je vous montre :)" class="smiley

Je cherchais sur le net un outil qui afficherait ce que je tape au clavier sur l'écran. Histoire de faire des captures pour des didacticiels vidéo. J'ai cherché un peu partout, rien ne me plaisait vraiment... je me suis alors penché sur une solution à coder. Deux outils sont utilisés: xosd et xinput. OSD voulant dire: On Screen Display, c'est à dire "Affichage sur l'écran"

Je suis d'abord parti en Python... puis en quelques minutes je me suis dit que "finalement, en bash, ce sera tout aussi simple à gérer"... vous me pensez fou, c'est pas faux...

Pourquoi utiliser un vrai OSD ? tout simplement parce que ça m'énervait d'avoir une fenêtre qui affiche les contrôles... je bosse sur Xmonad, et par conséquent le mode "tilling" en fait baver les outils que j'ai trouvé...

Avant de pouvoir utiliser mon script il vous faudra installer 3 paquets (je ne sais pas lesquels sont là par défaut):

yum install util-linux xosd xorg-x11-apps

Cela vous donne quelques commandes que mon script utilise:

  • xinput qui va capter ce que vous tapez
  • osd_cat qui affiche des choses sur l'écran
  • script qui va capturer une sortie terminal

Le script que vous allez voir par la suite fait quelques manipulations:

  • trouve le clavier par défaut: je cherche un clavier qui a "AT" dans "xinput --list"
  • lance la capture des touches via "xinput test ID" où ID est l'identifiant du clavier trouvé ci-dessus
  • faire tourner ça dans "script" qui écrit le typescript dans /dev/null, mais dont la sortie sera captée dans un FIFO
  • cherche la correspondance de clef clavier dans "xmodmap -pke" et écrit ça dans un autre FIFO
  • et enfin, en boucle, on lit le FIFO de sortie clavier qu'on inject dans "osd_cat" avec des options de couleur, de placement, de fontes...

Je me suis amusé à savoir si on pressait une touche de modification (Maj, Ctrl, Super...) pour concaténer les chaines.

Le script est loin d'être parfait, il affiche mal la touche "AltGr" et vous ne pouvez pas non plus faire des maintiens de touches trop complexe en séquence. Par exemple il est impossible de presser:

Ctrl+shift+a puis relacher shift et a en gardant Ctrl pessé et frapper une autre touche sans relacher Ctrl

Bref, le but était de faire un truc fonctionnel, rapidement, et qui me permette de faire à peu près ce que je veux... Je ferai évoluer le script et je le mettrai à jour ici.

Attention les yeux, voici le script:

#!/bin/bash
#author Patrice Ferlet
#Licence BSD
 
 
#some conf vars
COLOR="Purple"
FONT='-*-terminus-*-*-*-*-32-*-*-*-*-*-*-*'
DELAY="5"
XPOS="center"
YPOS="bottom"
OFFSET="15"
INDENT="80"
MAXLINE=3
 
#FIFOS
_tmp_opt=""
if [[ -d /dev/shm ]]; then
    #some unix can use shared memory instead of /tmp
    _tmp_opt=" --tmpdir=/dev/shm"
fi
 
OSDPID=""
TMP=$(mktemp -u $_tmp_opt)
OSD=$(mktemp -u $_tmp_opt)
mkfifo $TMP
mkfifo $OSD
 
 
#when script is closed, remove fifos
onexit(){
    echo "close..."
    kill $OSDPID
    rm -f $TMP
    rm -f $OSD
    exit 0
}
trap onexit INT TERM
 
#get valid keyboard input
kb=$(xinput --list | grep "keyboard" | grep "AT" | grep -Po "id=\d+" | cut -d"=" -f2)
 
#launch "script" to capture xinput, this is a trick !
script -c "xinput test $kb" -f /dev/null > $TMP &
 
#lauch osd command that read OSD fifo
tail -f $OSD | osd_cat -a -d $DELAY -l $MAXLINE -f $FONT -A $XPOS -o $OFFSET -i $INDENT -p $YPOS -c $COLOR &
OSDPID=$!
 
#be sure everything is launched
sleep 0.2
 
#now, read lines from xinput output to do the job
MOD=""
while read line; do
    #reading code, state (press, release) and get keyboard value
    #from xmodmap
    code=$(echo "$line" | awk '{print $3}')
    state=$(echo "$line" | awk '{print $2}')
    key=$(xmodmap -pke | awk "/keycode\s*$code\s+/ {print \$4}")
 
    if [[ $(echo "$key" | grep -Pi "Control|Shift|Alt|Super") ]]; then
        #this case should not be displayed, we only record mod key
        MOD="$MOD$key + "
        if [[ "$state" == "release" ]]; then
            #mod released, remove mod
            MOD=""
        fi
    elif [[ $state == "press" ]]; then
        if [[ $( echo "$MOD" | grep "Shift") ]]; then
            #shift pressed, we should read 5th column
            key=$(xmodmap -pke | awk "/keycode\s*$code\s+/ {print \$5}")
        fi
        echo "$MOD$key" > $OSD
    fi
done < $TMP
exit 1

Vous lancez ce script dans un terminal, puis n'importe où vous pressez des touches... Cela les affiches en OSD. Voilà, c'est ce que je voulais... rien de plus.

OSD keys Bash

Pour arrêter le script, retournez sur le terminal et pessez CTRL+c, cela coupe le script, en supprimant les FIFO en passant.

Voilà, si vous avez des questions, des remarques... je suis preneur !

UPDATE: et oui, il manque un truc... je coupe pas osd_cat à la fermeture, je corrige le script de suite... désolé UPDATE: Voilà, corrigé

Correction orthographique et grammaticale avec Vim

Patrice Ferlet

J'en avais assez de voir que je tapais faute sur faute en préparant mes billets sous Vim... je suis mauvais en orthographe, et pire en grammaire. J'ai honte souvent de cette tare, alors j'ai décidé de fouiller pour trouver une méthode propre pour supprimer un bon paquets de fautes en utilisant mon éditeur favori. Voici ce que j'ai à vous proposer.

Vous êtes comme moi un mordu de Vim, vous tapez vos documents en RST, en Latex, ou je ne sais quel format brut. Vous avez un manque, celui d'avoir l'auto-correction orthographique et grammaticale. Je viens de me configurer mon éditeur favori pour avoir la correction des deux aspects.

Nous allons devoir installer quelques fichiers. En premier lieu, il faut récupérer les dictionnaires français de vim. La manière la plus simple est de faire:

mkdir -p ~/.vim/spell
cd ~/.vim/spell
wget http://ftp.vim.org/vim/runtime/spell/fr.latin1.spl
wget http://ftp.vim.org/vim/runtime/spell/fr.latin1.sug
wget http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl
wget http://ftp.vim.org/vim/runtime/spell/fr.utf-8.sug

Fermez vim si vous en avez déjà ouvert un. Cela permettra de s'assurer que tout soit pris en compte au démarrage.

Pour tester l'option spell, ouvrons un éditeur vim et rédigeons quelques phrases. Faites en sorte de faire des fautes, puis pressez: Echap, :set spelllang=fr spell

vim correction activé

Cela permet d'activer la langue française, puis de mettre en surbrillance les mots erronés. Toujours en mode commande (donc en ayant pressé sur Echap), allez au début du document en pressant "gg", puis "]s". Le curseur se déplace au premier mot mal orthographié. Vous avez alors plusieurs options :

  • pressez "z=" et vous entrez dans le mode "choix de mot" - taper Enter ou le numéro du mot que vous voulez utiliser.
  • presser "zg" pour ajouter le mot dans le dictionnaire local
  • presser "zG" pour l'ajouter au dictionnaire global
  • presser "]s" pour aller au prochain mot
  • presser "[s" pour aller au prochain mot

vim liste de suggestions

Ce procédé est sympa pour une phase finale, après avoir rédigé. Mais si vous voulez avoir une mode de correction en cours de frappe, il existe une autre commande. Vim permet de compléter un mot lorsque l'on s'en sert d'éditeur de code. On utilise alors CTRL+X puis une lettre correspondant à un mode de complétion.

Le mode utilisé pour "spell" est "s". Donc, après avoir tapé un mot de la mauvaise manière, il suffit, sans quitter le mode "insert", de presser CTRL+X puis "s". Une liste de propositions de mots s'affiche. Sélectionnez celui qui vous plait, puis pressez "espace" ou tout autre caractère pour continuer la rédaction. vim completion orthographique

Reste maintenant à avoir une correction grammaticale. Pour cela, nous allons utiliser un outil en Java servi dans les options d'OpenOffice, et un plugin Vim fortement bien pensé.

Commençons par l'outil Java en question. Il se nomme LanguageTool et se trouve à l'adresse: http://www.languagetool.org/

Il suffit de décompresser le fichier zip dans un répertoire de votre choix, cela va vous proposer deux fichiers, un ".jar" et un ".oxt" qui vont vous permettre la correction grammaticale. L'intégration à vim se fait avec le plugin: http://www.vim.org/scripts/script.php?script_id=3223

Suivons le procédé recommandé, on télécharge la dernière version, puis:

cd ~/.vim
unzip /chemin/vers/LanguageTool.zip

On finit par configurer l'outil en ouvrant le fichier ~/.vimrc, et en plaçant quelque part cette ligne:

:set spelllang=fr
let g:languagetool_jar='/chemin/vers/LanguageTool.jar'

En remplaçant évidemment le chemin par la bon. Je vous conseille d'utiliser un répertoire simple à retrouver, genre /usr/local/LanguageTool ou comme moi dans un répertoire utilisé pour compiler vous même l'outil. J'utilise pour ma part la version SVN que je mets à jour souvent et que je compile simplement avec "ant". Si vous éditez votre vimrc avec vim, n'oubliez pas le racourcis (en mode insert) "CTRL+X f" qui complète le chemin.

Voilà, on rouvre notre texte, et on va s'amuser. Activez si vous le souhaitez le mode "spell" en tapant: "Echap, :set spell"

Tapez avec des fautes, faites vraiment des erreurs (accords, temps, double virgule...), puis pressez: Echap, ":LanguageToolCheck" (la touche tabulation complète les commandes je vous rappelle).

Après quelques secondes, un mini buffer apparaît et vous donne une liste complète des fautes possibles que vous auriez faites, avec si possible des proposition de correction. Allez dans ce minibuffer en pressant CTRL+W w et faites défiler la liste. En pressant sur la touche Entrée votre curseur ira à la faute, ou parfois (je ne sais pas pourquoi) au début de la phrase erronée. Il suffit de les corriger au fur et à mesure. Pour nettoyer le texte des surlignages, vous pouvez simplement taper: Echap puis ":LanguageToolClean".

vim et LanguageTool

Et pour supprimer le surlignage du mode spell, Echap, ":set nospell"

Bref, voilà de quoi vous amuser à corriger la plupart de vos erreurs dans un éditeur tel que Vim. Vous prendrez vite cette habitude de lancer la commande, et de mettre le mode "spell" en marche.

Certes, il restera des erreurs parfois, à vous de relire et de ne pas vous lasser de vérifier mot à mot les coquilles possibles. Mais ces outils vont au moins permettre d'éliminer un bon paquet d'erreurs. Alors ne vous en privez pas. Personnellement j'en avais tellement assez de vous poster des billets bourrés de fautes que je suis passé à ces outils... Ne m'en voulez pas s'il en reste encore... je vous promet de faire des efforts.

Notez que LanguageTool - l'outil java - permet aussi de prendre en argument le fichier à corriger. Donc, vous pourrez vous en servir en dehors de vim ou en l'intégrant dans Emacs, Gedit, ou quelques autres éditeurs acceptant les greffons (plugins)

En espérant vous avoir fait découvrir un outil sympathique :)" class="smiley

Ha oui un dernier truc, comme je suis dans un terminal, et que je veux copier mon billet depuis vim vers mon navigateur, je sauve mon fichier et je fais simplement:

  • Echap
  • :!xclip %

Le fichier est alors copié dans le presse-papier, reste plus qu'à le coller dans l'éditeur (bouton central de la souris, ou Maj+Insert). On gagne du temps...

Correction orthographique et grammaticale avec Vim

Patrice Ferlet

J'en avais assez de voir que je tapais faute sur faute en préparant mes billets sous Vim... je suis mauvais en orthographe, et pire en grammaire. J'ai honte souvent de cette tare, alors j'ai décidé de fouiller pour trouver une méthode propre pour supprimer un bon paquets de fautes en utilisant mon éditeur favori. Voici ce que j'ai à vous proposer.

Vous êtes comme moi un mordu de Vim, vous tapez vos documents en RST, en Latex, ou je ne sais quel format brut. Vous avez un manque, celui d'avoir l'auto-correction orthographique et grammaticale. Je viens de me configurer mon éditeur favori pour avoir la correction des deux aspects.

Nous allons devoir installer quelques fichiers. En premier lieu, il faut récupérer les dictionnaires français de vim. La manière la plus simple est de faire:

mkdir -p ~/.vim/spell
cd ~/.vim/spell
wget http://ftp.vim.org/vim/runtime/spell/fr.latin1.spl
wget http://ftp.vim.org/vim/runtime/spell/fr.latin1.sug
wget http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl
wget http://ftp.vim.org/vim/runtime/spell/fr.utf-8.sug

Fermez vim si vous en avez déjà ouvert un. Cela permettra de s'assurer que tout soit pris en compte au démarrage.

Pour tester l'option spell, ouvrons un éditeur vim et rédigeons quelques phrases. Faites en sorte de faire des fautes, puis pressez: Echap, :set spelllang=fr spell

vim correction activé

Cela permet d'activer la langue française, puis de mettre en surbrillance les mots erronés. Toujours en mode commande (donc en ayant pressé sur Echap), allez au début du document en pressant "gg", puis "]s". Le curseur se déplace au premier mot mal orthographié. Vous avez alors plusieurs options :

  • pressez "z=" et vous entrez dans le mode "choix de mot" - taper Enter ou le numéro du mot que vous voulez utiliser.
  • presser "zg" pour ajouter le mot dans le dictionnaire local
  • presser "zG" pour l'ajouter au dictionnaire global
  • presser "]s" pour aller au prochain mot
  • presser "[s" pour aller au prochain mot

vim liste de suggestions

Ce procédé est sympa pour une phase finale, après avoir rédigé. Mais si vous voulez avoir une mode de correction en cours de frappe, il existe une autre commande. Vim permet de compléter un mot lorsque l'on s'en sert d'éditeur de code. On utilise alors CTRL+X puis une lettre correspondant à un mode de complétion.

Le mode utilisé pour "spell" est "s". Donc, après avoir tapé un mot de la mauvaise manière, il suffit, sans quitter le mode "insert", de presser CTRL+X puis "s". Une liste de propositions de mots s'affiche. Sélectionnez celui qui vous plait, puis pressez "espace" ou tout autre caractère pour continuer la rédaction. vim completion orthographique

Reste maintenant à avoir une correction grammaticale. Pour cela, nous allons utiliser un outil en Java servi dans les options d'OpenOffice, et un plugin Vim fortement bien pensé.

Commençons par l'outil Java en question. Il se nomme LanguageTool et se trouve à l'adresse: http://www.languagetool.org/

Il suffit de décompresser le fichier zip dans un répertoire de votre choix, cela va vous proposer deux fichiers, un ".jar" et un ".oxt" qui vont vous permettre la correction grammaticale. L'intégration à vim se fait avec le plugin: http://www.vim.org/scripts/script.php?script_id=3223

Suivons le procédé recommandé, on télécharge la dernière version, puis:

cd ~/.vim
unzip /chemin/vers/LanguageTool.zip

On finit par configurer l'outil en ouvrant le fichier ~/.vimrc, et en plaçant quelque part cette ligne:

:set spelllang=fr
let g:languagetool_jar='/chemin/vers/LanguageTool.jar'

En remplaçant évidemment le chemin par la bon. Je vous conseille d'utiliser un répertoire simple à retrouver, genre /usr/local/LanguageTool ou comme moi dans un répertoire utilisé pour compiler vous même l'outil. J'utilise pour ma part la version SVN que je mets à jour souvent et que je compile simplement avec "ant". Si vous éditez votre vimrc avec vim, n'oubliez pas le racourcis (en mode insert) "CTRL+X f" qui complète le chemin.

Voilà, on rouvre notre texte, et on va s'amuser. Activez si vous le souhaitez le mode "spell" en tapant: "Echap, :set spell"

Tapez avec des fautes, faites vraiment des erreurs (accords, temps, double virgule...), puis pressez: Echap, ":LanguageToolCheck" (la touche tabulation complète les commandes je vous rappelle).

Après quelques secondes, un mini buffer apparaît et vous donne une liste complète des fautes possibles que vous auriez faites, avec si possible des proposition de correction. Allez dans ce minibuffer en pressant CTRL+W w et faites défiler la liste. En pressant sur la touche Entrée votre curseur ira à la faute, ou parfois (je ne sais pas pourquoi) au début de la phrase erronée. Il suffit de les corriger au fur et à mesure. Pour nettoyer le texte des surlignages, vous pouvez simplement taper: Echap puis ":LanguageToolClean".

vim et LanguageTool

Et pour supprimer le surlignage du mode spell, Echap, ":set nospell"

Bref, voilà de quoi vous amuser à corriger la plupart de vos erreurs dans un éditeur tel que Vim. Vous prendrez vite cette habitude de lancer la commande, et de mettre le mode "spell" en marche.

Certes, il restera des erreurs parfois, à vous de relire et de ne pas vous lasser de vérifier mot à mot les coquilles possibles. Mais ces outils vont au moins permettre d'éliminer un bon paquet d'erreurs. Alors ne vous en privez pas. Personnellement j'en avais tellement assez de vous poster des billets bourrés de fautes que je suis passé à ces outils... Ne m'en voulez pas s'il en reste encore... je vous promet de faire des efforts.

Notez que LanguageTool - l'outil java - permet aussi de prendre en argument le fichier à corriger. Donc, vous pourrez vous en servir en dehors de vim ou en l'intégrant dans Emacs, Gedit, ou quelques autres éditeurs acceptant les greffons (plugins)

En espérant vous avoir fait découvrir un outil sympathique :)" class="smiley

Ha oui un dernier truc, comme je suis dans un terminal, et que je veux copier mon billet depuis vim vers mon navigateur, je sauve mon fichier et je fais simplement:

  • Echap
  • :!xclip %

Le fichier est alors copié dans le presse-papier, reste plus qu'à le coller dans l'éditeur (bouton central de la souris, ou Maj+Insert). On gagne du temps...

Point de montage Google Drive

Patrice Ferlet

Google vient de sortir Google Drive, comprenez un espace de stockage dans le "cloud" (à distance, sur les serveur Google, avec mix des documents de google-docs). L'application de disque dur distant est accessible de plusieurs manières: Android, PC ou directement sur le net. Or sous Windows et Mac on a la possibilité d'utiliser un programme qui monte un disque sur l'ordinateur. Qui dit "monter" rappelle le point de montage Linux (unix...). Google a annoncé une version de Google Drive Linux pour bientôt mais en attendant vous pouvez encore utiliser le projet http://code.google.com/p/google-docs-fs/

Ce projet était à la base un système de montage simple utilisant fuse pour afficher les google-docs sur un disque monté localement. Mais comme Drive utilise le même point d'accès, ce (vieux) projet fonctionne très bien. Sous Fedora, il suffit de faire:


su -c "yum install fuse-python -y"


cd /tmp
hg clone https://code.google.com/p/google-docs-fs/
cd google-docs-fs
su -c "python setup.py install"

Reste alors à monter le dossier:

mkdir ~/GoogleDrive
gmount ~/GoogleDrive votre_user@gmail.com

On vous demande alors le mot de passe google, et hop le point de montage est créé:

mount
gmount.py on /home/patachou/GoogleDrive type fuse.gmount.py (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

Vous pouvez dés lors visiter le dossier, créer des répertoires, copier des données, ouvrir vos documents... et y accéder depuis votre mobile, le net... Reste à voir ce que l'application Google offrira de mieux que ce petit projet python, parce que pour le moment cela me convient tellement bien...

PS: vous pouvez ajouter ce point de montage dans /etc/fstab pour l'avoir actif tout le temps, mais comme je ne sais pas comment placer le mot de passe. Je vous tiens au courant si je trouve :)" class="smiley

Point de montage Google Drive

Patrice Ferlet

Google vient de sortir Google Drive, comprenez un espace de stockage dans le "cloud" (à distance, sur les serveur Google, avec mix des documents de google-docs). L'application de disque dur distant est accessible de plusieurs manières: Android, PC ou directement sur le net. Or sous Windows et Mac on a la possibilité d'utiliser un programme qui monte un disque sur l'ordinateur. Qui dit "monter" rappelle le point de montage Linux (unix...). Google a annoncé une version de Google Drive Linux pour bientôt mais en attendant vous pouvez encore utiliser le projet http://code.google.com/p/google-docs-fs/

Ce projet était à la base un système de montage simple utilisant fuse pour afficher les google-docs sur un disque monté localement. Mais comme Drive utilise le même point d'accès, ce (vieux) projet fonctionne très bien. Sous Fedora, il suffit de faire:

update merci à "hk", j'avais oublié le paquet python-gdata


su -c "yum install fuse-python python-gdata -y"

cd /tmp
hg clone https://code.google.com/p/google-docs-fs/
cd google-docs-fs
su -c "python setup.py install"

Reste alors à monter le dossier:

mkdir ~/GoogleDrive
gmount ~/GoogleDrive votre_user@gmail.com

On vous demande alors le mot de passe google, et hop le point de montage est créé:

mount
gmount.py on /home/patachou/GoogleDrive type fuse.gmount.py (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

Vous pouvez dés lors visiter le dossier, créer des répertoires, copier des données, ouvrir vos documents... et y accéder depuis votre mobile, le net... Reste à voir ce que l'application Google offrira de mieux que ce petit projet python, parce que pour le moment cela me convient tellement bien...

PS: vous pouvez ajouter ce point de montage dans /etc/fstab pour l'avoir actif tout le temps, mais comme je ne sais pas comment placer le mot de passe. Je vous tiens au courant si je trouve :)" class="smiley

Configurer Mutt pour gmail

Patrice Ferlet

Il est évident que nous ne sommes pas tous accrocs aux outils en mode texte (dans un terminal) mais personnellement j'y trouve mon compte: vitesse, exécution claire, lisibilité... et modularité. Je suis un Google Fan (houuu je vais m'en prendre plein la poire moi) et j'ai beaucoup de mes données sur Google: mail, documents, agenda... Voici donc comment pouvoir envoyer des mails et lire ces derniers convenablement avec Mutt, y compris l'autocompletion des contacts Gmail

La configuration ne sera pas compliqué. Il faudra juste se farcir 3 fichiers de configurations:

  • un pour mutt lui même, configuration du compte
  • un pour permettre les macros de lecture de mail en HTML
  • un fichier netrc pour permettre à goobook de fonctionner

Bref, passons en premier lieu à l'installation proprement dite des logiciels:

su -c "yum install mutt python-setuptools links"
easy_install goobook

Le première commande installe mutt et les utilitaires pytyon pour installer un paquet python, puis links, le lecteur html en console. L'autre installe goobook, un outil qui permet de récupérer un carnet d'adresse google.

Goobook est un outil python que j'ai testé après en avoir essayé plusieurs, c'est de loin le plus pratique et le plus abouti que je connaisse. Vous pouvez voir la page du projet ici: http://pypi.python.org/pypi/goobook...

Maintenant, passons à la configuration de Mutt

#fichier ~/.muttrc

#enregistre les messages envoyés et brouillons dans Gmail
set record="+[Gmail]/Messages envoyés"
set postponed="+[Gmail]/Brouillons"

#configuration du serveur
set hostname=gmail.com
my_hdr From: PRENOM NOM <USER@gmail.com>
set use_envelope_from
set envelope_from_address="USER@gmail.com"

unignore Date Message-ID In-Reply-To

set move=no
set spoolfile=imaps://imap.gmail.com:993/INBOX
set imap_user = "USER@gmail.com"
set imap_pass= "VOTRE MOT DE PASSE"
set imap_authenticators="login"
set imap_passive="no"
set folder="imaps://imap.gmail.com:993"
set imap_check_subscribed="yes"
set imap_list_subscribed="yes"

set smtp_url="smtps://USER:VOTRE MOT DE PASSE@smtp.gmail.com:465"
set ssl_starttls="yes"

set locale="fr_FR"
set date_format="%A %d %b %Y à %H:%M:%S (%Z)"
set attribution="Le %d, %n à écrit:"
set forward_format="[Fwd: %s]"
set forward_quote

mailboxes !

set pager_index_lines="7"
set pager_stop

#gérer un cache
set message_cachedir="~/.mutt_msg_cache"
set header_cache="~/.mutt_header_cache"

#force l'utilisation d'un programme exterieur pour les mails en HTML
auto_view text/html

#et ici la config pour les contacts
set query_command="goobook query '%s'"
bind editor <Tab> complete-query
macro index,pager a "<pipe-message>goobook add<return>" "add the sender address to Google contacts"

Et enfin il faut configurer les commandes pour lire les mails HTML:

#fichier ~/.mailcap
text/html;  links %s; nametemplate=%s.html
text/html;  links -dump %s; nametemplate=%s.html; copiousoutput

Bien. Reste à gérer goobook, on commence par créer un fichier:

#~/.netrc
machine google.com
    login USER@gmail.com
    password Votre Mot de passe

Voilà, testez rapidement que ça passe en tapant:

goobook reload
goobook query un_nom_au_choix

Et bien voilà, lancez maintenant la commande mutt et appréciez un peu la lecture de mail dans un terminal.

Souvenez vous de quelques racourcis:

  • Maj+D pour supprimer un ensemble de mail correspondant à un motif que vous tapez (par exemple si vous tapez microsoft, tout les mails correspondants seront marqué comme "à supprimer")
  • d pour supprimer le message sélectionné
  • m pour envoyer un message (les contacts sont auto complétés via la touche tabulation)
  • r pour répondre
  • c por changer de dossier de mail
  • / pour chercher un mail, selon le nom, le sujet...
  • $ pour valider les changements (suppressions)

Voilà, personnellement j'ai adopté mutt et j'en suis très content. Je classe et nettoie ma boite mail en 4 fois moins de temps qu'avant.

Notez que nous pourrons ensuite utiliser mcabber pour tchater avec nos contacts google :)" class="smiley on en reparlera

EDIT: j'ai supprimé la phase de création de goobookrc qui est inutile en fait...

Configurer Mutt pour gmail

Patrice Ferlet

Il est évident que nous ne sommes pas tous accrocs aux outils en mode texte (dans un terminal) mais personnellement j'y trouve mon compte: vitesse, exécution claire, lisibilité... et modularité. Je suis un Google Fan (houuu je vais m'en prendre plein la poire moi) et j'ai beaucoup de mes données sur Google: mail, documents, agenda... Voici donc comment pouvoir envoyer des mails et lire ces derniers convenablement avec Mutt, y compris l'autocompletion des contacts Gmail

La configuration ne sera pas compliqué. Il faudra juste se farcir 3 fichiers de configurations:

  • un pour mutt lui même, configuration du compte
  • un pour permettre les macros de lecture de mail en HTML
  • un fichier netrc pour permettre à goobook de fonctionner

Bref, passons en premier lieu à l'installation proprement dite des logiciels:

su -c "yum install mutt python-setuptools links"
su -c "easy_install goobook"

Le première commande installe mutt et les utilitaires pytyon pour installer un paquet python, puis links, le lecteur html en console. L'autre installe goobook, un outil qui permet de récupérer un carnet d'adresse google.

Goobook est un outil python que j'ai testé après en avoir essayé plusieurs, c'est de loin le plus pratique et le plus abouti que je connaisse. Vous pouvez voir la page du projet ici: http://pypi.python.org/pypi/goobook...

Maintenant, passons à la configuration de Mutt

#fichier ~/.muttrc

#enregistre les messages envoyés et brouillons dans Gmail
set record="+[Gmail]/Messages envoyés"
set postponed="+[Gmail]/Brouillons"

#configuration du serveur
set hostname=gmail.com
my_hdr From: PRENOM NOM <USER@gmail.com>
set use_envelope_from
set envelope_from_address="USER@gmail.com"

unignore Date Message-ID In-Reply-To

set move=no
set spoolfile=imaps://imap.gmail.com:993/INBOX
set imap_user = "USER@gmail.com"
set imap_pass= "VOTRE MOT DE PASSE"
set imap_authenticators="login"
set imap_passive="no"
set folder="imaps://imap.gmail.com:993"
set imap_check_subscribed="yes"
set imap_list_subscribed="yes"

set smtp_url="smtps://USER:VOTRE MOT DE PASSE@smtp.gmail.com:465"
set ssl_starttls="yes"

set locale="fr_FR"
set date_format="%A %d %b %Y à %H:%M:%S (%Z)"
set attribution="Le %d, %n à écrit:"
set forward_format="[Fwd: %s]"
set forward_quote

mailboxes !

set pager_index_lines="7"
set pager_stop

#gérer un cache
set message_cachedir="~/.mutt_msg_cache"
set header_cache="~/.mutt_header_cache"

#force l'utilisation d'un programme exterieur pour les mails en HTML
auto_view text/html

#et ici la config pour les contacts
set query_command="goobook query '%s'"
bind editor <Tab> complete-query
macro index,pager a "<pipe-message>goobook add<return>" "add the sender address to Google contacts"

Et enfin il faut configurer les commandes pour lire les mails HTML:

#fichier ~/.mailcap
text/html;  links %s; nametemplate=%s.html
text/html;  links -dump %s; nametemplate=%s.html; copiousoutput

Bien. Reste à gérer goobook, on commence par créer un fichier:

#~/.netrc
machine google.com
    login USER@gmail.com
    password Votre Mot de passe

Voilà, testez rapidement que ça passe en tapant:

goobook reload
goobook query un_nom_au_choix

Et bien voilà, lancez maintenant la commande mutt et appréciez un peu la lecture de mail dans un terminal.

Souvenez vous de quelques racourcis:

  • Maj+D pour supprimer un ensemble de mail correspondant à un motif que vous tapez (par exemple si vous tapez microsoft, tout les mails correspondants seront marqué comme "à supprimer")
  • d pour supprimer le message sélectionné
  • m pour envoyer un message (les contacts sont auto complétés via la touche tabulation)
  • r pour répondre
  • c por changer de dossier de mail
  • / pour chercher un mail, selon le nom, le sujet...
  • $ pour valider les changements (suppressions)

Voilà, personnellement j'ai adopté mutt et j'en suis très content. Je classe et nettoie ma boite mail en 4 fois moins de temps qu'avant.

Notez que nous pourrons ensuite utiliser mcabber pour tchater avec nos contacts google :)" class="smiley on en reparlera

EDIT: j'ai supprimé la phase de création de goobookrc qui est inutile en fait...

Xmonad, le bureau productif orienté terminal

Patrice Ferlet

Vous utilisez certainement Gnome, KDE, ou XFCE (entre autre) pour afficher vos programmes. Le gestionnaire de fenêtre vous permet de déplacer le programme sur votre écran via la souris, vous avez des menus, des racourcis qui vous permettent de gérer tout ça. Je ne critique pas ce principe, il est pratique, assez standard et bien adapté à la plupart des utilisateurs. Mais nous ne sommes pas tous identiques. Certains, comme moi, utilisent surtout des terminaux, et n'aiment pas devoir passer la main du clavier à la souris pour gérer son espace de travail. Pire encore, nous n'avons en général pas besoin de la barre de titre, et devoir placer les fenêtres sur le bureau est une chose qui peut vraiment être un frein à la productivité.

Outre le coté production, il y a l'ergonomie. L'ergnonomie ne signifie pas forcément "pouvoir tout déplacer à la souris et avoir plein d'infos sur les fenêtres". En fait, tout est relatif. Si un bureau me propose de placer mes fenêtres et que j'ai juste les informations nécessaires, je trouve cela ergonomique. Car je n'ai finalement que ce dont j'ai besoin. Mais sans pour autant me limiter, car dans tous les cas, je peux retrouver les informations supplémentaires si je connais mon outil.

Je trouve le terminal ergonomique. Ça peut vous étonner, mais la plupart des utilisateurs du terminal qui ont passé un peu de temps à apprendre à s'en servir vous le dira. Le terminal est finalement bien plus simple et plus adapté à un travail quotidien. Je n'enlève pas l'utilisation du navigateur internet, ni des outils de création (image, films, 3D, musique...) mais pour le reste, tout est gérable via des lignes de commande. Je sais ce que vous vous dites... "il est fou, tout faire en ligne de commande...", mais pourtant si vous passiez un peu de temps à apprendre le principe, vous vous rendrez compte de la puissance et de la simplicité de son utilisation.

Revenons au gestionnaire de fenêtre. J'ai toujours au moins 4 ou 5 terminaux ouverts, et passer de l'un à l'autre n'est pas si ergonomique que cela sous Gnome ou KDE pour ne citer qu'eux. ALT+TAB ou souris, dans tous les cas je ne vois pas clairement quelle fenêtre je vais avoir tant qu'elle n'est pas affiché. Le fait est que dans 80% des cas, les fenêtres se recouvrent les unes sur les autres. Encore une fois, je concois que cela peut être utile et agréable pour certain, mais pas pour moi.

Et là, une fois de plus, avoir un système d'exploitation libre vous donne un choix, adapté, et vraiment viable. Il existe une autre famille de gestionnaire de fenêtre nommé "tiling desktop" ou "bureau en mosaïque". Ce genre de gestionnaire de fenêtre permet de placer les fenêtre selon des "layout" (mise en page) automatisés et modifiables. Pour en citer quelques uns: awsome, wmii, ion3, Xmonad...

Alors pourquoi mon choix se porte sur XMonad ? Parce que ce dernier est très poussé en terme de configuration et n'a pas de décoration de fenêtre. C'est selon moi la meilleure gestion de bureau que je connaisse dans le domaine des tiling desktop.

Pour vous expliquer le fonctionnement, et surtout pour configurer votre bureau, je vais vous donner quelques clefs.

Tout d'abord, sous fedora, on va installer les outils nécessaires pour:

  • utiliser xmonad
  • avoir quelques outils pratiques
  • avoir des terminaux bien plus sympas
  • se passer de la plupart des outils "graphiques" forcés sous d'autres gestionnaires (navigation de fichier par exemple)

On commence:

su -c "yum install xmonad xmobar dmenu mc xscreensaver feh rxvt-unicode"

Bien, si vous quitter votre session, vous aurez donc le choix d'utiliser xmonad dans le gdm ou kdm (la fenêtre de connexion). Si vous choisissez Xmonad vous allez avoir un terminal qui va s'ouvrir avec le manuel de Xmonad... et rien d'autre.

C'est bien Xmonad... épuré au maximum. Vous avez compris... il va falloir configurer un peu le bureau pour avoir un truc plus sympa. En premier lieu, ne paniquez pas et pressez ALT+Shift+c pour fermet le manuel puis ouvrez un autre terminal avec ALT+shift+Enter.

Dans ce terminal, vous allez ouvrir avec vim le fichier ~/.xmonad/xmonad.hs

Placez y ce contenu:

import XMonad
import XMonad.Config.Azerty
import XMonad.Hooks.DynamicLog


-- The main function.
main = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfig

-- Command to launch the bar.
myBar = "xmobar"

-- Custom PP, configure it as you like. It determines what's being written to the bar.
myPP = xmobarPP { ppCurrent = xmobarColor "#429942" "" . wrap "<" ">" }

-- Keybinding to toggle the gap for the bar.
toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b)

-- Main configuration, override the defaults to your liking.
myConfig = azertyConfig { 
    terminal           = "urxvt -depth 32 -tr -tint rgb:2222/2222/2222 +sb -fg white -bg rgba:0000/0000/0000/7777 -fade 15 -fadecolor black -pr black -pr2 white"
    , logHook = dynamicLog
 }

Fermez, et tenter de compiler la configuration:

xmonad --recompile

Si une erreur apparait, vérifiez bien le contenu du fichier.

Avant de relancer xmonad, on va aussi configurer xmobar... et ce dans le fichier ~/.xmobarrc

Config { font = "-*-Fixed-Bold-R-Normal-*-13-*-*-*-*-*-*-*"
       , bgColor = "black"
       , fgColor = "grey"
       , position = TopW L 100
       , commands = [ Run Weather "LFLY" ["-t"," <tempC>°","-L","64","-H","77","--normal","green","--high","red","--low","lightblue"] 36000
                    , Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
                    , Run Memory ["-t","Mem: <usedratio>%"] 10
                    , Run Swap [] 10
                    , Run Date "%a %b %_d %H:%M" "date" 10
                    , Run StdinReader
                    ]
       , sepChar = "%"
       , alignSep = "}{"
       , template = "%StdinReader% }{ %cpu% | %memory% * %swap%    <fc=#ee9a00>%date%</fc> | %LFLY%"
       }

Dans ce fichier, remplacer le code "LFLY" par celui de votre ville (ici Lyon Bron), dans le fichier il est à deux endroits, donc remplacez bien tout. Pour trouvez votre code, allez à la page http://weather.noaa.gov et prenez le code qui apparait dans l'url...

Bon, cette fois ci, on peu relancer xmonad... Pressez ALT+q

Hop, xmonad se recharge. Pressez ALT+1 ou 2, 3... changement de bureau. Le clavier azerty est donc bien géré et vous avez théoriquement une barre en haut qui indique quelques infos.

Bon, fermez le terminal en cours ALT+shift+c et relancez en un: ALT+shift+Enter... ha voulà urxvt en mode semi transparent :)" class="smiley ouvrez en un autre, hop l'écran se coupe en deux

Puis un autre... et un autre....

Pour vous déplacer, utilisez la souri (haaan) ou simplement alt+k ou alt+j. Et pour redimensionner les colonnes: alt+h ou alt+l

Pour augmenter le nombre de fenêtre possible sur la colonne principale (à gauche) alt+, et pour en retirer alt+.

Bon assez jouer... on va maintenant faire en sorte de lancer pulseaudio, xscreensaver et changer ce foutu fond d'écran.

Créé un fichier, par exemple j'utilise ~/bin/xmonad-startup et posez ceci dedans:

#!/bin/bash

#prevent running commands on xmonad restart
#I choose xscreensaver because it is stopped at xmonad shutdown
[ "$(ps --noheader -C xscreensaver -o pid)" ] && exit 0

#commands to lauch
xscreensaver &
feh --bg-fill ~/Images/backgrounds/OTHER-Tuxsta_1600x1200.png
synclient VertTwoFingerScroll=0 VertEdgeScroll=1
pulseaudio --start

Reste à demander à xmonad de les lancer au chargement:

import XMonad
import XMonad.Config.Azerty
import XMonad.Hooks.DynamicLog


-- The main function.
main = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfig

-- Command to launch the bar.
myBar = "xmobar"

-- Custom PP, configure it as you like. It determines what's being written to the bar.
myPP = xmobarPP { ppCurrent = xmobarColor "#429942" "" . wrap "<" ">" }

-- Keybinding to toggle the gap for the bar.
toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b)


-- my startup
myStartup :: X ()
myStartup = do
    spawn "~/bin/xmonad-startup"

-- Main configuration, override the defaults to your liking.
myConfig = azertyConfig { 
    terminal           = "urxvt -depth 32 -tr -tint rgb:2222/2222/2222 +sb -fg white -bg rgba:0000/0000/0000/7777 -fade 15 -fadecolor black -pr black -pr2 white"
    , logHook = dynamicLog
    , startupHook = myStartup
 }

On recompile: xmonad --recompile et on relance ALT+q

Bon, reste à connaitre quelques outils pour utiliser xmonad sans avoir besoin d'utiliser trop d'outils graphique:

  • dans un terminal: alsamixer => gestion du volume
  • dans un terminal: mc => gestionnaire de fichier
  • pour lancer un programme sans passer par un terminal: ALT+p et commencez à taper le nom du programme, l'auto completion est gérée

Vous pourrez trovuer des fichier "ini" de "+mc" pour le rendre plus joli. Utilisez aussi weechat pour aller sur IRC, vous allez voir que finalement c'est plus clair et efficace.

Un dernier racourcis ? ALT+Shift+Q et vous quittez Xmonad :)" class="smiley

Bon, sinon, utilisez des petits scripts pratique pour votre utilisation, par exemple j'ai un script "~/bin/dodo" qui met en veille "mémoire" mon pc:

#!/bin/bash
su -c "echo -n mem > /sys/power/state"

ou encore un script pour lancer weechat en me connectant avec mon login/pass + ouverture des canaux que j'aime bien:

#!/bin/bash
weechat-curses irc://VOTREUSERICI:VOTREMOTDEPASSEICI@irc.freenode.net/#fedora-fr,#blender-fr,#node.js,#blendercoders,#xmonad

VOTREUSER et VOTREMOTDEPASSE sont les user et mot de passe que vous utilisez sur IRC...

Bon voilà... à vous d'apprendre les trucs et astuces, vim ou emacs, uzbl-brower au lieu de google-chrome (étonnant ce truc, merci WilQu) et j'en passe... vous allez vous rendre compte aussi que "mc" permet de connecter un serveru distant sur la vue de gauche (cherchez un peu dans les menu avec F10) et permet même l'édition. Essayez aussi le racourcis CTRL+O dans mc... sympa non ?

Bon allez une capture, parce que vous êtes gentils (faites avec scrot):

Xmonad

Voilà, bon ba à vous hein.

Xmonad, le bureau productif orienté terminal

Patrice Ferlet

Vous utilisez certainement Gnome, KDE, ou XFCE (entre autre) pour afficher vos programmes. Le gestionnaire de fenêtre vous permet de déplacer le programme sur votre écran via la souris, vous avez des menus, des racourcis qui vous permettent de gérer tout ça. Je ne critique pas ce principe, il est pratique, assez standard et bien adapté à la plupart des utilisateurs. Mais nous ne sommes pas tous identiques. Certains, comme moi, utilisent surtout des terminaux, et n'aiment pas devoir passer la main du clavier à la souris pour gérer son espace de travail. Pire encore, nous n'avons en général pas besoin de la barre de titre, et devoir placer les fenêtres sur le bureau est une chose qui peut vraiment être un frein à la productivité.

Outre le coté production, il y a l'ergonomie. L'ergnonomie ne signifie pas forcément "pouvoir tout déplacer à la souris et avoir plein d'infos sur les fenêtres". En fait, tout est relatif. Si un bureau me propose de placer mes fenêtres et que j'ai juste les informations nécessaires, je trouve cela ergonomique. Car je n'ai finalement que ce dont j'ai besoin. Mais sans pour autant me limiter, car dans tous les cas, je peux retrouver les informations supplémentaires si je connais mon outil.

Je trouve le terminal ergonomique. Ça peut vous étonner, mais la plupart des utilisateurs du terminal qui ont passé un peu de temps à apprendre à s'en servir vous le dira. Le terminal est finalement bien plus simple et plus adapté à un travail quotidien. Je n'enlève pas l'utilisation du navigateur internet, ni des outils de création (image, films, 3D, musique...) mais pour le reste, tout est gérable via des lignes de commande. Je sais ce que vous vous dites... "il est fou, tout faire en ligne de commande...", mais pourtant si vous passiez un peu de temps à apprendre le principe, vous vous rendrez compte de la puissance et de la simplicité de son utilisation.

Revenons au gestionnaire de fenêtre. J'ai toujours au moins 4 ou 5 terminaux ouverts, et passer de l'un à l'autre n'est pas si ergonomique que cela sous Gnome ou KDE pour ne citer qu'eux. ALT+TAB ou souris, dans tous les cas je ne vois pas clairement quelle fenêtre je vais avoir tant qu'elle n'est pas affiché. Le fait est que dans 80% des cas, les fenêtres se recouvrent les unes sur les autres. Encore une fois, je concois que cela peut être utile et agréable pour certain, mais pas pour moi.

Et là, une fois de plus, avoir un système d'exploitation libre vous donne un choix, adapté, et vraiment viable. Il existe une autre famille de gestionnaire de fenêtre nommé "tiling desktop" ou "bureau en mosaïque". Ce genre de gestionnaire de fenêtre permet de placer les fenêtre selon des "layout" (mise en page) automatisés et modifiables. Pour en citer quelques uns: awsome, wmii, ion3, Xmonad...

Alors pourquoi mon choix se porte sur XMonad ? Parce que ce dernier est très poussé en terme de configuration et n'a pas de décoration de fenêtre. C'est selon moi la meilleure gestion de bureau que je connaisse dans le domaine des tiling desktop.

Pour vous expliquer le fonctionnement, et surtout pour configurer votre bureau, je vais vous donner quelques clefs.

Tout d'abord, sous fedora, on va installer les outils nécessaires pour:

  • utiliser xmonad
  • avoir quelques outils pratiques
  • avoir des terminaux bien plus sympas
  • se passer de la plupart des outils "graphiques" forcés sous d'autres gestionnaires (navigation de fichier par exemple)

On commence:

su -c "yum install xmonad xmobar dmenu mc xscreensaver feh rxvt-unicode"

Bien, si vous quitter votre session, vous aurez donc le choix d'utiliser xmonad dans le gdm ou kdm (la fenêtre de connexion). Si vous choisissez Xmonad vous allez avoir un terminal qui va s'ouvrir avec le manuel de Xmonad... et rien d'autre.

C'est bien Xmonad... épuré au maximum. Vous avez compris... il va falloir configurer un peu le bureau pour avoir un truc plus sympa. En premier lieu, ne paniquez pas et pressez ALT+Shift+c pour fermet le manuel puis ouvrez un autre terminal avec ALT+shift+Enter.

Dans ce terminal, vous allez ouvrir avec vim le fichier ~/.xmonad/xmonad.hs

Placez y ce contenu:

import XMonad
import XMonad.Config.Azerty
import XMonad.Hooks.DynamicLog


-- The main function.
main = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfig

-- Command to launch the bar.
myBar = "xmobar"

-- Custom PP, configure it as you like. It determines what's being written to the bar.
myPP = xmobarPP { ppCurrent = xmobarColor "#429942" "" . wrap "<" ">" }

-- Keybinding to toggle the gap for the bar.
toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b)

-- Main configuration, override the defaults to your liking.
myConfig = azertyConfig { 
    terminal           = "urxvt -depth 32 -tr -tint rgb:2222/2222/2222 +sb -fg white -bg rgba:0000/0000/0000/7777 -fade 15 -fadecolor black -pr black -pr2 white"
    , logHook = dynamicLog
 }

Fermez, et tenter de compiler la configuration:

xmonad --recompile

Si une erreur apparait, vérifiez bien le contenu du fichier.

Avant de relancer xmonad, on va aussi configurer xmobar... et ce dans le fichier ~/.xmobarrc

Config { font = "-*-Fixed-Bold-R-Normal-*-13-*-*-*-*-*-*-*"
       , bgColor = "black"
       , fgColor = "grey"
       , position = TopW L 100
       , commands = [ Run Weather "LFLY" ["-t"," <tempC>°","-L","64","-H","77","--normal","green","--high","red","--low","lightblue"] 36000
                    , Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
                    , Run Memory ["-t","Mem: <usedratio>%"] 10
                    , Run Swap [] 10
                    , Run Date "%a %b %_d %H:%M" "date" 10
                    , Run StdinReader
                    ]
       , sepChar = "%"
       , alignSep = "}{"
       , template = "%StdinReader% }{ %cpu% | %memory% * %swap%    <fc=#ee9a00>%date%</fc> | %LFLY%"
       }

Dans ce fichier, remplacer le code "LFLY" par celui de votre ville (ici Lyon Bron), dans le fichier il est à deux endroits, donc remplacez bien tout. Pour trouvez votre code, allez à la page http://weather.noaa.gov et prenez le code qui apparait dans l'url...

Bon, cette fois ci, on peu relancer xmonad... Pressez ALT+q

Hop, xmonad se recharge. Pressez ALT+1 ou 2, 3... changement de bureau. Le clavier azerty est donc bien géré et vous avez théoriquement une barre en haut qui indique quelques infos.

Bon, fermez le terminal en cours ALT+shift+c et relancez en un: ALT+shift+Enter... ha voulà urxvt en mode semi transparent :)" class="smiley ouvrez en un autre, hop l'écran se coupe en deux

Puis un autre... et un autre....

Pour vous déplacer, utilisez la souri (haaan) ou simplement alt+k ou alt+j. Et pour redimensionner les colonnes: alt+h ou alt+l

Pour augmenter le nombre de fenêtre possible sur la colonne principale (à gauche) alt+, et pour en retirer alt+.

Bon assez jouer... on va maintenant faire en sorte de lancer pulseaudio, xscreensaver et changer ce foutu fond d'écran.

Créé un fichier, par exemple j'utilise ~/bin/xmonad-startup et posez ceci dedans:

#!/bin/bash

#prevent running commands on xmonad restart
#I choose xscreensaver because it is stopped at xmonad shutdown
[ "$(ps --noheader -C xscreensaver -o pid)" ] && exit 0

#commands to lauch
xscreensaver &
feh --bg-fill ~/Images/backgrounds/OTHER-Tuxsta_1600x1200.png
synclient VertTwoFingerScroll=0 VertEdgeScroll=1
pulseaudio --start

Reste à demander à xmonad de les lancer au chargement:

import XMonad
import XMonad.Config.Azerty
import XMonad.Hooks.DynamicLog


-- The main function.
main = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfig

-- Command to launch the bar.
myBar = "xmobar"

-- Custom PP, configure it as you like. It determines what's being written to the bar.
myPP = xmobarPP { ppCurrent = xmobarColor "#429942" "" . wrap "<" ">" }

-- Keybinding to toggle the gap for the bar.
toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b)


-- my startup
myStartup :: X ()
myStartup = do
    spawn "~/bin/xmonad-startup"

-- Main configuration, override the defaults to your liking.
myConfig = azertyConfig { 
    terminal           = "urxvt -depth 32 -tr -tint rgb:2222/2222/2222 +sb -fg white -bg rgba:0000/0000/0000/7777 -fade 15 -fadecolor black -pr black -pr2 white"
    , logHook = dynamicLog
    , startupHook = myStartup
 }

On recompile: xmonad --recompile et on relance ALT+q

Bon, reste à connaitre quelques outils pour utiliser xmonad sans avoir besoin d'utiliser trop d'outils graphique:

  • dans un terminal: alsamixer => gestion du volume
  • dans un terminal: mc => gestionnaire de fichier
  • pour lancer un programme sans passer par un terminal: ALT+p et commencez à taper le nom du programme, l'auto completion est gérée

Vous pourrez trovuer des fichier "ini" de "+mc" pour le rendre plus joli. Utilisez aussi weechat pour aller sur IRC, vous allez voir que finalement c'est plus clair et efficace.

Un dernier racourcis ? ALT+Shift+Q et vous quittez Xmonad :)" class="smiley

Bon, sinon, utilisez des petits scripts pratique pour votre utilisation, par exemple j'ai un script "~/bin/dodo" qui met en veille "mémoire" mon pc:

#!/bin/bash
su -c "echo -n mem > /sys/power/state"

ou encore un script pour lancer weechat en me connectant avec mon login/pass + ouverture des canaux que j'aime bien:

#!/bin/bash
weechat-curses irc://VOTREUSERICI:VOTREMOTDEPASSEICI@irc.freenode.net/#fedora-fr,#blender-fr,#node.js,#blendercoders,#xmonad

VOTREUSER et VOTREMOTDEPASSE sont les user et mot de passe que vous utilisez sur IRC...

Bon voilà... à vous d'apprendre les trucs et astuces, vim ou emacs, uzbl-brower au lieu de google-chrome (étonnant ce truc, merci WilQu) et j'en passe... vous allez vous rendre compte aussi que "mc" permet de connecter un serveru distant sur la vue de gauche (cherchez un peu dans les menu avec F10) et permet même l'édition. Essayez aussi le racourcis CTRL+O dans mc... sympa non ?

Bon allez une capture, parce que vous êtes gentils (faites avec scrot):

Xmonad

Xmonad - 2

Voilà, bon ba à vous hein.

Faire parler son pc

Patrice Ferlet

Ça peut paraître gadget, mais on se rend compte assez vite que la synthèse vocale sur un poste peut être intéressante dans pas mal de cas. Par exemple, j'ai tendance à compiler des applications assez lourdes, et pour être prévenu, j'aime avoir une voix qui me dit "la compilation de blender 2.58 pour cycles est terminée sans erreur"... Ou encore, me prévenir vocalement que j'ai un souci sur un serveur distant... Cela permet d'avoir une annonce clair et de ne pas avoir constamment sous les yeux un panel de tests. En gros, c'est pratique, gadget oui, mais pratique.

Alors comment faire causer notre coucou. Il existe des méthodes libres et/ou gratuites. Je vais vous montrer une procédure pas à pas qui va vous permettre d'avoir une jolie voix sur le pc (si on est pas trop regardant) et comment utiliser cela pour pas mal d'opérations. Le but est de faire simple, pratique et utile.

Première approche, espeak seul.

Espeak est un projet libre, facilement installable sur votre Fedora puisque dans les dépots officiels. Pour l'installer vous pouvez passer par l'outil d'ajout de paquets ou via une console:

su -c "yum install espeak -y"

A partir de maintenant, vous avez la commande espeak qui vous permet de faire parler le pc. Avant de vous lancer en vous disant "ça y est mais trop bien !!!" je tiens à vous prévenir: ça va pas être super beau. En effet, la voix anglaise est à peu près écoutable, par contre en Français... mon dieu. Je veux bien être indulgent, mais honnêtement là vous allez voir c'est pas super joli.

Exemple:

espeak -vfr "bonjour à toi humble utilisateur de la console"

Ça pique un peu non ?

En anglais c'est à peine mieux:

espeak  "I dude, this is better, isn't it ?"

Bref, si cela vous plait vous pouvez utiliser epseak tel quel... mais personnellement j'ai eut envie de trouver mieux. Et la solution a été "mbrola". Notre méthode va utiliser espeak et mbrola, le premier pour générer des phonèmes et l'autre pour parler.

Deuxième approche: espeak + mbrola

mbrola est un projet gratuit mais non libre. Je suis pas fan de la politique qu'ils utilisent, d'autant que le projet a l'air de sombrer doucement dans les abîmes des ligiciels qui auraient put devenir des références pour des années... Mais toujours est-il qu'à l'heure actuelle on peut encore s'en servir.

Donc, on va préparer notre installation.

su -
mkdir -p /opt/mbrola
cd /opt/mbrola
wget http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip
unzip mbr301h.zip
rm -f mbr301h.zip

Oui, que vous soyez sous 64bits ou 32bits, on devra utiliser la version 32bits.

mbrola a besoin de fichier de voix. On va récupéré l'une de celle qui va le mieux pour notre test:

mkdir fr4
cd fr4
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr4/fr4-990521.zip
unzip fr4-990521.zip
rm -f fr4-990521.zip
exit

N'oubliez pas de bien taper "exit", nous ne devons plus être "root" à partir de maintenant.

Bon, maitenant que le paquet est là... on passe au "pipe" qui permet de faire parler mbrola. Il faut savoir que espeak embarque quelques "voix" de mbrola par défaut. Donc nous allons utiliser cela pour faire causer l'ordinateur.

Bon je vous explique rapidement, on va pas trop détailler le principe

  • espeak -vmb/mb-fr2 "texte à donner" retourne une sortie qui correspond aux phonèmes au format reconnu par mbrola
  • mbrola fichier-de-voix phonèmes fichier.format: va lire l'entrèe de phonèmes et sortir un fichier au format désiré "au, wave..."

Comme nous ne voulons pas créer des fichiers sur le disque, on peut "piper" les sorties. De ce fait:

mbrola fichier_de_voix - -.au | play - 2>/dev/null

aura pour effet de récupérer les phonèmes depuis l'entrée standard et créera un fichier "au" directement envoyé à la sortie standard. "play" va alors lire cette sortie standard et nous redirigeons toutes les erreurs dans /dev/null pour ne pas polluer notre console...

Donc le pipe complet est:

espeak -vmb/mb-fr4 "Bonjour à toi humble utlisateur de la console" | /opt/mbrola/mbrola-linux-i386 /opt/mbrola/fr4/fr4 - -.au | play - 2>/dev/null

Ha oui, elle parle vite la nana hein :)" class="smiley

Et bien nous allons palier la vitesse via les options de mbrola.

  • -t 1.2 par exemple va réduire la vitesse de parole d'un ration de 1.2

Ce qui nous donne:

espeak -vmb/mb-fr4 "Bonjour à toi humble utlisateur de la console" | /opt/mbrola/mbrola-linux-i386 -t 1.2 /opt/mbrola/fr4/fr4 - -.au | play - 2>/dev/null

Mieux n'est-ce pas ?... On peut encore jouer avec quelques options, comme le "pitch" (hauteur de voix) et le volume:

  • -v 0.8 volume à 80%
  • -f 1.1 monte le pitch de 10%
espeak -vmb/mb-fr4 "Bonjour à toi humble utlisateur de la console" | /opt/mbrola/mbrola-linux-i386 -f 1.1 -v 0.8 -t 1.2 /opt/mbrola/fr4/fr4 - -.au | play - 2>/dev/null

Comme je vous le disai, c'est mieux que espeak mais on est encore loin de la beauté extême. Le souci n'est pas mbrola, mais la création des phonèmes. Car les exemples proposés par mbrola vous montre qu'on pourrait s'y tromper.

Automatisation

Bon il nous reste une chose à faire, rendre utilisable aisément cette commande. Et bien faisons ça simple:

su -
cat > /usr/local/bin/sayit<<EOF
espeak -vmb/mb-fr4 "\$@" | /opt/mbrola/mbrola-linux-i386 -f 1.1 -v 0.8 -t 1.2 /opt/mbrola/fr4/fr4 - -.au | play - 2>/dev/null
EOF
chmod +x /usr/local/bin/sayit
exit

Voilà nous avons créé une commande "sayit" qui va nous permettre de faire cela:

sayit "Que c'est bien de travailler sous linux"

Reste alors à utiliser notre commande comme je vous le disais au début de l'article. Par exemple, quand je compile un programme:

make && sayit "Compilation de Blender terminé avec succès" || sayit "Compilation de Blender avec erreurs"

Et j'en passe, vous pouvez faire un petit programme en bash qui lit des logs et vous annonce une erreur, ou encore un module XChat qui vous préviens que quelqu'un vient de vous parler.

Ce gadget est intéressant quand on est comme moi à travailler sur plusieurs machines en même temps, souvent en train de préparer du café, ou sur plusieurs taches en même temps.

Voilà, j'espère que vous avez apprécié mon explication et si vous avez des idée d'utilisations ou script, faites passer !

Faire parler son pc

Patrice Ferlet

Ça peut paraître gadget, mais on se rend compte assez vite que la synthèse vocale sur un poste peut être intéressante dans pas mal de cas. Par exemple, j'ai tendance à compiler des applications assez lourdes, et pour être prévenu, j'aime avoir une voix qui me dit "la compilation de blender 2.58 pour cycles est terminée sans erreur"... Ou encore, me prévenir vocalement que j'ai un souci sur un serveur distant... Cela permet d'avoir une annonce clair et de ne pas avoir constamment sous les yeux un panel de tests. En gros, c'est pratique, gadget oui, mais pratique.

Alors comment faire causer notre coucou. Il existe des méthodes libres et/ou gratuites. Je vais vous montrer une procédure pas à pas qui va vous permettre d'avoir une jolie voix sur le pc (si on est pas trop regardant) et comment utiliser cela pour pas mal d'opérations. Le but est de faire simple, pratique et utile.

Première approche, espeak seul.

Espeak est un projet libre, facilement installable sur votre Fedora puisque dans les dépots officiels. Pour l'installer vous pouvez passer par l'outil d'ajout de paquets ou via une console:

su -c "yum install espeak -y"

A partir de maintenant, vous avez la commande espeak qui vous permet de faire parler le pc. Avant de vous lancer en vous disant "ça y est mais trop bien !!!" je tiens à vous prévenir: ça va pas être super beau. En effet, la voix anglaise est à peu près écoutable, par contre en Français... mon dieu. Je veux bien être indulgent, mais honnêtement là vous allez voir c'est pas super joli.

Exemple:

espeak -vfr "bonjour à toi humble utilisateur de la console"

Ça pique un peu non ?

En anglais c'est à peine mieux:

espeak  "Hi dude, this is better, isn't it ?"

Bref, si cela vous plait vous pouvez utiliser epseak tel quel... mais personnellement j'ai eut envie de trouver mieux. Et la solution a été "mbrola". Notre méthode va utiliser espeak et mbrola, le premier pour générer des phonèmes et l'autre pour parler.

Deuxième approche: espeak + mbrola

mbrola est un projet gratuit mais non libre. Je suis pas fan de la politique qu'ils utilisent, d'autant que le projet a l'air de sombrer doucement dans les abîmes des ligiciels qui auraient put devenir des références pour des années... Mais toujours est-il qu'à l'heure actuelle on peut encore s'en servir.

Donc, on va préparer notre installation.

su -
mkdir -p /opt/mbrola
cd /opt/mbrola
wget http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip
unzip mbr301h.zip
rm -f mbr301h.zip

Oui, que vous soyez sous 64bits ou 32bits, on devra utiliser la version 32bits.

mbrola a besoin de fichier de voix. On va récupéré l'une de celle qui va le mieux pour notre test:

mkdir fr4
cd fr4
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/fr4/fr4-990521.zip
unzip fr4-990521.zip
rm -f fr4-990521.zip
exit

N'oubliez pas de bien taper "exit", nous ne devons plus être "root" à partir de maintenant.

Bon, maitenant que le paquet est là... on passe au "pipe" qui permet de faire parler mbrola. Il faut savoir que espeak embarque quelques "voix" de mbrola par défaut. Donc nous allons utiliser cela pour faire causer l'ordinateur.

Bon je vous explique rapidement, on va pas trop détailler le principe

  • espeak -vmb/mb-fr2 "texte à donner" retourne une sortie qui correspond aux phonèmes au format reconnu par mbrola
  • mbrola fichier-de-voix phonèmes fichier.format: va lire l'entrèe de phonèmes et sortir un fichier au format désiré "au, wave..."

Comme nous ne voulons pas créer des fichiers sur le disque, on peut "piper" les sorties. De ce fait:

mbrola fichier_de_voix - -.au | play - 2>/dev/null

aura pour effet de récupérer les phonèmes depuis l'entrée standard et créera un fichier "au" directement envoyé à la sortie standard. "play" va alors lire cette sortie standard et nous redirigeons toutes les erreurs dans /dev/null pour ne pas polluer notre console...

Donc le pipe complet est:

espeak -vmb/mb-fr4 "Bonjour à toi humble utlisateur de la console" | /opt/mbrola/mbrola-linux-i386 /opt/mbrola/fr4/fr4 - -.au | play - 2>/dev/null

Ha oui, elle parle vite la nana hein :)" class="smiley

Et bien nous allons palier la vitesse via les options de mbrola.

  • -t 1.2 par exemple va réduire la vitesse de parole d'un ration de 1.2

Ce qui nous donne:

espeak -vmb/mb-fr4 "Bonjour à toi humble utlisateur de la console" | /opt/mbrola/mbrola-linux-i386 -t 1.2 /opt/mbrola/fr4/fr4 - -.au | play - 2>/dev/null

Mieux n'est-ce pas ?... On peut encore jouer avec quelques options, comme le "pitch" (hauteur de voix) et le volume:

  • -v 0.8 volume à 80%
  • -f 1.1 monte le pitch de 10%
espeak -vmb/mb-fr4 "Bonjour à toi humble utlisateur de la console" | /opt/mbrola/mbrola-linux-i386 -f 1.1 -v 0.8 -t 1.2 /opt/mbrola/fr4/fr4 - -.au | play - 2>/dev/null

Comme je vous le disai, c'est mieux que espeak mais on est encore loin de la beauté extême. Le souci n'est pas mbrola, mais la création des phonèmes. Car les exemples proposés par mbrola vous montre qu'on pourrait s'y tromper.

Automatisation

Bon il nous reste une chose à faire, rendre utilisable aisément cette commande. Et bien faisons ça simple:

su -
cat > /usr/local/bin/sayit<<EOF
espeak -vmb/mb-fr4 "\$@" | /opt/mbrola/mbrola-linux-i386 -f 1.1 -v 0.8 -t 1.2 /opt/mbrola/fr4/fr4 - -.au | play - 2>/dev/null
EOF
chmod +x /usr/local/bin/sayit
exit

Voilà nous avons créé une commande "sayit" qui va nous permettre de faire cela:

sayit "Que c'est bien de travailler sous linux"

Reste alors à utiliser notre commande comme je vous le disais au début de l'article. Par exemple, quand je compile un programme:

make && sayit "Compilation de Blender terminé avec succès" || sayit "Compilation de Blender avec erreurs"

Et j'en passe, vous pouvez faire un petit programme en bash qui lit des logs et vous annonce une erreur, ou encore un module XChat qui vous préviens que quelqu'un vient de vous parler.

Ce gadget est intéressant quand on est comme moi à travailler sur plusieurs machines en même temps, souvent en train de préparer du café, ou sur plusieurs taches en même temps.

Voilà, j'espère que vous avez apprécié mon explication et si vous avez des idée d'utilisations ou script, faites passer !

Evolution et le «marquer comme lut»

Patrice Ferlet

Depuis mon passage à Gnome 3 j'ai quelques mauvaises surprises dans quelques applications... Rien de bien méchant, mais il arrive que certaines nouvelles applications perdent des options que je trouvais agréables. C'est le cas pour Evolution Mail 3, j'ai cherché un bon moment avant de me rendre compte que "non je ne suis pas fou, l'option «marquer comme lut après X secondes»" a bel et bien disparut... Mais n'ayant pas donné mon dernier mot, j'ai pensé que comme beaucoup d'applications gnome, la configuration a dut passer dans "gconf"

Et je n'ai pas eut tort... en fouillant un peu dans "gconf-editor" j'ai trouvé ça:

Gconf - Evolution - Mark as read

Il a suffit de mettre cette valeur à 0 pour qu'enfin un mail soit marqué comme lut immédiatement, et pas après 1.5 secondes.

Autre méthode plus rapide, dans une console:

gconftool-2 --set /apps/evolution/mail/display/mark_seen_timeout 0 --type int

Cela revient au même...

Alors pour ne pas m'arrêter à cette mésaventure, je tiens à donner un avis sur la direction que prend Gnome dans certains cas qui me gêne. J'ai toujours été un détracteur de la base de registre Windows, selon moi c'est un truc imbuvable pour le commun des mortels et en plus de cela vous remarquez que ce n'est pas franchement trivial.

Alors qu'un fichier de configuration suffirait, et que des options aisées sont plus adéquates, surtout sur un outil aussi basique que la lecture de mails, on se retrouve à chercher un terme dans une liste énorme de valeur typée et ce dans un système de configuration imbitable.

Bien que l'interface Gnome 3 me plaise énormément, que je trouve que l'avancée ergonomique que montre le développement de ce gestionnaire de bureau est impressionnant, et que l'innovation de ce dernier m'a vraiment plut, j'ai l'impression de régresser sur le sujet de la configuration.

Oui, je conçois bien que gconf est un outil vraiment intéressant, techniquement parlant, car cela permet une homogénéité des données pour la configuration de l'environnement. Et d'autant plus que cela permet un échange de configuration inter logiciel. Mais ce coté qui force l'utilisation d'un outil de configuration pour changer des valeurs m'horripile fortement.

Bon, cela étant dit, j'ai utilisé gconf que peu de fois pour modifier ce genre de valeur... en général, les développeurs pensent bien à mettre une option dans l'interface dédiée de configuration du programme... mais pour le coup, là, Evolution porte son nom à l'envers, car on a régressé sur pas mal de points.

Seul plaisirs vraiment intéressant que je trouve à Evolution 3, outre le fait qu'il puisse se connecter à Exchange, c'est qu'il est devenu bien plus performant. Et l'interfaçage avec Google pour l'agenda et les contacts synchronisés m'ont charmé (Thunderbird peut le faire, mais honnêtement je trouve qu'Evolution le fait mieux)

Voilà pour ma partie coup de gueule du dimanche à 3h du matin...

Evolution et le «marquer comme lut»

Patrice Ferlet

Depuis mon passage à Gnome 3 j'ai quelques mauvaises surprises dans quelques applications... Rien de bien méchant, mais il arrive que certaines nouvelles applications perdent des options que je trouvais agréables. C'est le cas pour Evolution Mail 3, j'ai cherché un bon moment avant de me rendre compte que "non je ne suis pas fou, l'option «marquer comme lut après X secondes»" a bel et bien disparut... Mais n'ayant pas donné mon dernier mot, j'ai pensé que comme beaucoup d'applications gnome, la configuration a dut passer dans "gconf"

Et je n'ai pas eut tort... en fouillant un peu dans "gconf-editor" j'ai trouvé ça:

Gconf - Evolution - Mark as read

Il a suffit de mettre cette valeur à 0 pour qu'enfin un mail soit marqué comme lut immédiatement, et pas après 1.5 secondes.

Autre méthode plus rapide, dans une console:

gconftool-2 --set /apps/evolution/mail/display/mark_seen_timeout 0 --type int

Cela revient au même...

Alors pour ne pas m'arrêter à cette mésaventure, je tiens à donner un avis sur la direction que prend Gnome dans certains cas qui me gêne. J'ai toujours été un détracteur de la base de registre Windows, selon moi c'est un truc imbuvable pour le commun des mortels et en plus de cela vous remarquez que ce n'est pas franchement trivial.

Alors qu'un fichier de configuration suffirait, et que des options aisées sont plus adéquates, surtout sur un outil aussi basique que la lecture de mails, on se retrouve à chercher un terme dans une liste énorme de valeur typée et ce dans un système de configuration imbitable.

Bien que l'interface Gnome 3 me plaise énormément, que je trouve que l'avancée ergonomique que montre le développement de ce gestionnaire de bureau est impressionnant, et que l'innovation de ce dernier m'a vraiment plut, j'ai l'impression de régresser sur le sujet de la configuration.

Oui, je conçois bien que gconf est un outil vraiment intéressant, techniquement parlant, car cela permet une homogénéité des données pour la configuration de l'environnement. Et d'autant plus que cela permet un échange de configuration inter logiciel. Mais ce coté qui force l'utilisation d'un outil de configuration pour changer des valeurs m'horripile fortement.

Bon, cela étant dit, j'ai utilisé gconf que peu de fois pour modifier ce genre de valeur... en général, les développeurs pensent bien à mettre une option dans l'interface dédiée de configuration du programme... mais pour le coup, là, Evolution porte son nom à l'envers, car on a régressé sur pas mal de points.

Seul plaisirs vraiment intéressant que je trouve à Evolution 3, outre le fait qu'il puisse se connecter à Exchange, c'est qu'il est devenu bien plus performant. Et l'interfaçage avec Google pour l'agenda et les contacts synchronisés m'ont charmé (Thunderbird peut le faire, mais honnêtement je trouve qu'Evolution le fait mieux)

Voilà pour ma partie coup de gueule du dimanche à 3h du matin...

Parlons Gnash

Patrice Ferlet

Me revoilà après quelques temps de latence obligatoires et j'ai enfin put prendre le temps de passer à Fedora 15. Non sans mal, étant donné ma configuration de machine (donc cela ne tenait qu'à moi) mais cela m'a donné une occasion de me débarrasser d'un "truc" gênant sur mon poste depuis des lustres: Flash-Plugin. Et pour être plus clair, mon passage un peu forcé (mais pas trop) à Gnash.

Bon pour vous résumer, j'ai un petit souci depuis mon redémarrage, et encore une fois, cela n'est valable que pour moi, le plugin flash a dut mal à s'installer... Et mise à part Youtube, je me disais "en fait, à quoi bon me prendre la tête..." et puis malheureusement je me suis vu devant une page Youtube, bloqué devant une vidéo qui ne voulait pas apparaitre, tout bonnement parce que la version HTML5 de Youtube a un souci... Rage profonde, je commençais à me dire "va encore falloir que j'en bave avec ce foutu plugin qui fait ramer mon poste"... et bien non !

Je me suis souvenu du projet qui est un lecteur de contenu flash et qui en plus de cela nous propose un plugin tout propre et tout bien qu'il est. Oui, Gnash est libre, sous licence GPL et s'installe depuis les paquets. Plus de souci avec les version 64bits, plus de prise de tête à se demander pourquoi chromium le voit pas... l'installation a pris 3 secondes via le bon vieux:

su -c "yum install gnash-plugin"

Arrivé devant la page Youtube, en désactivant avant tout le mode "HTML5" (et à mon grand regret, je vous assure) me revoilà devant une vidéo qui passe sans souci !

Alors, je commence à me dire "attends mais ça à l'air en plus un peu plus soft pour mon CPU" et effectivement, mon processeur me remercie de ne pas dépasser les 15% de charge. La vie est belle... mais à ce point ?

Et bien écoutez (oui lisez....) j'ai donc joué à tourner un peu sur quelque sites, la plupart du temps je me suis retrouvé devant une animation de pub (et ba ouais certain sites ont besoin de pub pouv vivre...) mais je n'ai encore pas vu de site qui perdait tout son sens avec Gnash.

Evidemment que gnash-plugin n'est pas l'égal de flash-plugin, et je suis persuadé que pas mal de site vont me hurler dessus... mais moi qui ne suit pas un mordu de ses animations qui servent à rien, ou qui pourraient fonctionner parfaitement en HTML5/CSS3... et bien gnash-plugin est une très bonne alternative. D'autant plus que je me libère du dernier système proprio de ma machine étant donné que le pilote propriétaire de ATI (AMD...) a juste trop de mal avec gnome 3 alors que le pilote Radeon (libre) fonctionne sans aucun souci...

Me voilà donc enfin avec un poste sans paquet utilisant du code propriétaire...

Pour information, voici les derniers passages de logiciels "propriétaire ou presque" dont je me suis débarrassé:

  • Google Chrome, je suis passé à Chromium qui est exactement le même produit, les informations envoyées à Google en moins
  • FGLRX (kmod-catalyst), je suis sous pilote Radeon
  • Flash-plugin, j'utilise sans aucun souci Gnash-plugin

Voilà, le libre avance on dirait, doucement, mais il avance bien !

Carte télé sous Fedora

Patrice Ferlet

J'ai testé de faire marcher la télé avec une carte CINERGY T Stick HD sur mon poste, et alors que tout me paraissait assez clair... impossible de voir une image. La solution est simple: tout est dut au format vidéo utilisé pour la TNT, en loccurrence le MPEG2. Voici un moyen simple de faire marcher votre carte et voir les chaines tourner.

Il vous les dépôts rpmfusion, allez voir http://rpmfusion.org/ ou tapez cette commande:

su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'

Ensuit, il faut installer ce qu'il faut. La plus simple et qui marche sans souci est de faire:

su -c "yum install -y me-tv xine-lib-extras xine-lib-extras-freeworld && modprobe bttv"

Cela va faire deux choses:

  • installer les librairies xine nécessaires au décodage mpeg 1/2
  • charger le module bttv nécessaire à la vision de la télé

Ensuite, j'ai dut récupéré le firmware de ma carte, dans mon cas l'erreur apparaissait lorsque je branchais ma carte, un "dmesg" me disait que le fichier "dvb-usb-af9015.fw". En fouillant sur le net, je l'ai trouvé sur un site, faison simple:

cd /tmp
wget http://www.otit.fi/~crope/v4l-dvb/af9015/af9015_firmware_cutter/firmware_files/4.95.0/dvb-usb-af9015.fw
su -c "mv dvb-usb-af9015.fw /lib/firmware/"

On débranche la clef, on la rebranche, et c'est bon.

Voilà reste à lancer "me-tv" et a demander un scan à partir d'un fichier de configuration connu. Pour ma part ce fut le fichier "fr-Lyon-Fourviere". 42 chaines trouvées et les chaines HD passent sans souci, y compris avec l'antenne fournie (pourtant toute petite) avec la carte.

Le seul hic est que (pour le moment) je n'arrive pas à faire marcher la télécommande (irda). Avec un peu de patience je pense y arriver un jour. En espérant que cela vous rende service...

Catpure vidéo écran screencast sous Fedora avec ffmpeg

Patrice Ferlet

La capture vidéo d'écran est un sujet maintes fois soulevé sous Linux et il existe de jolis services fais pour ça. Mais quand ça ne marche pas on a du mal à trouver des solutions simples... Istanbul, gtk-recordMyDesktop, je les ai essayé... mais à chaque fois un souci apparait, soit avec le son, soit avec la vidéo. Alors pourquoi ne pas passer par la ligne de commande ? ffmpeg est juste parfait ! alors on se lance. Encore une fois, si je trouve pas ce qui me plait, je le code :)" class="smiley donc vous aurez un script en bas de billet qui fait tout ça.

En premier lieu, le but est d'avoir: une vidéo de bonne qualité, capture du son depuis un micro, et un contrôle possible de la zone à sauver. Bref, il nous faut chercher tout ça dans les documentations. Comme je suis gentil, je vous donne au fur et à mesure la méthode, et même un petit script qui va vous aider.

Permière tâche à effecturer: capturer l'écran. ffmpeg à un format d'entré nommé "x11grab". Ce format d'entrée permet d'utiliser un port X de capture. Dans la majeur partie des cas on utilise "0.0"

Il faut par contre définir une taille obligatoirement, mon écran est de résoltion 1366x768. On trouve facilement la configuration de cette manière:

xrandr
creen 0: minimum 320 x 200, current 1366 x 768, maximum 1600 x 1600
LVDS connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768       60.0*+
   1360x768       60.0  
   1280x768       60.0  
   1280x720       60.0  
   1024x768       60.0  
   1024x600       60.0  
   800x600        60.0  
   800x480        60.0  
   640x480        60.0  
DFP1 disconnected (normal left inverted right x axis y axis)
CRT1 disconnected (normal left inverted right x axis y axis)

Il faut aussi spécifier la fréquence de frame par seconde, 15 est un minimum, mais 25 ou 30 images par seconde est plus fluide. Bref...

Donc, pour capturer l'écran:

ffmpeg -f x11grab -i 0.0 -s 1366x768 -r 25 -y /tmp/out.avi

Cela fonctionne bien, en pressant "q" dans la console on coupe la capture, voyez ensuite la vidéo:

ffplay /tmp/out.avi

Niveau qualité... moyen... on ajoute alors un débit de lecture pour s'assurer d'un bon rendu. Personnellement j'ai trouvé que 7000kb/s est pas mal du tout:

ffmpeg -f x11grab -i 0.0 -s 1366x768 -r 25 -b 7000k -y /tmp/out.avi

Voilà. Pour le moment on a bien une manière de capturer la vidéo. Reste à capturer du son. ffmpeg sait très bien capturer le son depuis votre interface alsa.

Tout le problème est de savoir quel est l'identifiant alsa à capturer... personnellement j'ai une webcam avec micro, une carte hdmi qui peut sortir du son et une interface interne pour sortir du son sur mes enceintes... bref, 3 cartes...

L'investigation est en fait très simple, Linux a cet avantage de tout faire dans des fichiers ou pseudo fichiers. Nos cartes sons sont en fait interrogeables depuis /proc/asound qui nous donne un paquet d'informations.

Regardons:

D'abords je cherche ma webcam... ne vous fiez pas au nom complètement batard que vous allez voir, c'est juste que cette webcam envoit un nom bien affreux. Dans les autres cas vous verrez certainement des choses plus lisibles.

cat /proc/asound/cards
 0 [U0x46d0x825    ]: USB-Audio - USB Device 0x46d:0x825
                      USB Device 0x46d:0x825 at usb-0000:00:1d.0-1.2, high speed
 1 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xb4100000 irq 44
 2 [Generic        ]: HDA-Intel - HD-Audio Generic
                      HD-Audio Generic at 0xb4020000 irq 45

donc ici on voit mes 3 cartes, La Intel, la Generic et ma webcam avec ce fameux nom "U0x46d0x825". Ce qui nous intéresse ici c'est surtout l'index, le permier chiffre qui apparait sur la première colone. Ma webcam (ou du moins son interface de son) est "0". Cela va vouloir dire que nous utiliserons ce chiffre pour définir la carte à utiliser.

Attention, un carte peut avoir plusieurs interfaces de capture, par exemple une entrée "line in" et "mic"... il faut donc trouver quel est l'interface qui nous convient. Cela se passe dans un second fichier:

cat /proc/asound/devices 
  2:        : timer
  3:        : sequencer
  4: [ 1- 0]: digital audio playback
  5: [ 1- 0]: digital audio capture
  6: [ 1- 0]: hardware dependent
  7: [ 1]   : control
  8: [ 2- 3]: digital audio playback
  9: [ 2- 0]: hardware dependent
 10: [ 2]   : control
 11: [ 0- 0]: digital audio capture
 12: [ 0]   : control

Ce qui est intéressant ici, c'est la seconde colonne, elle spécifie l'index de la carte suivi de l'index d'interface. Dans notre cas, pour ma webcam, je cherche l'index 0, c'est à dire les ligne préfixées par 11 et 12. On voit que l'interface 0-0 est une entré de capture de son... parfait !

La notation alsa est simple: "hw:" suivit de l'index, une virgule, le numéro d'interface. Ma webcam est représentée par "hw:0,0"

ainsi, ffmpeg me permet d'enregistrer du son depuis mon micro de cette manière:

ffmpeg -f alsa -i hw:0,0 -y /tmp/out.ogg

Et de ce fait, /tmp/out.ogg est un fichier son qui a enregistré ma voix depuis ma webcam. Bon, et bien allons y maintenant, on va utiliser les deux flux (vidéo et audio) et on les envoit dans un fichier:

ffmpeg -f x11grab -i 0.0 -s 1366x768 -r 25 -b 7000k -f alsa -i hw:0,0 -y /tmp/out.avi

Evidamment, vous pouvez utiliser d'autres formats de sortie, comme le webm, libx264, ogv, etc...

C'est bien gentil mais chercher ma carte son, etc... pas cool hein ? et bien on va simplifier tout ça via du bash avec zenity... comme ça ce sera plus simple.

On va utiliser un petit programme que j'ai trouvé sur le net qui permet de faire une sélection sur X:

wget https://github.com/lolilolicon/ffcast/raw/master/xrectsel.c --no-check-certificate
$(grep -Eo "gcc(.*)" xrectsel.c)
su -c "install xrectsel /usr/local/bin/"

Cela a installé une commande nommé xrectsel sur votre système, dans /usr/local/bin

Reste à faire un script pour lire les coordonnées, choisir le périphérique de capture et enfin lancer la capture...

Plutôt que de chercher les infos dans /proc/asound/devices et cards, je vais utiliser une autre méthode, plus adapté au scripting, qui consiste à chercher les cartes et leur capacité dans /proc/asound/cardN où N est un numéro. En lisant les fichiers pcmNc/info, j'aurais toutes les informations nécessaires. Par exemple:

cat /proc/asound/card0/pcm0c/info
card: 0
device: 0
subdevice: 0
stream: CAPTURE
id: USB Audio
name: USB Audio
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 1

Voici le script, moins de 100 lignes:

#!/bin/bash
#author Patrice Ferlet - Metal3d@gmail.com - http://www.metal3d.org
#Licence: GPLv3
 
#get Desktop dir for user
DESKTOP=$HOME/Desktop
if [[ -f ~/.config/user-dirs.dirs ]]; then
    source ~/.config/user-dirs.dirs
    DESKTOP=$XDG_DESKTOP_DIR
fi
 
getCards(){
    ## this function seeks every sound card that can be use to capture sound (mic, line in...)
 
    #find cards directory
    i=0
    capdevices=""
    while [[ -d /proc/asound/card$i ]]
    do
        #find pcmNc
        capdevices=$capdevices" "$(find /proc/asound/card$i -name "pcm*c" -type d)
        i=$((i+1))
    done
 
    for cap in $capdevices
    do
        #get options... index, subdevice etc...
        card=$(awk '/^card: /{print $2}' $cap/info)
        dev=$(awk '/^device: /{print $2}' $cap/info)
        subdev=$(awk '/^subdevice: /{print $2}' $cap/info)
        name=$(awk -F":" '/^name: /{print $2}' $cap/info)
        name=$(echo $name | sed 's/ /\-/g')
        echo "hw:$card,$dev,$subdev" "$name"''    
        echo
    done
 
}
 
__ffcast(){
    #lauch ffmpeg with options
    winsize=$1
    off=$2
    asound=$3
    options=$4
    file=$(echo "$options" | awk '{print $NF}')
 
    #run ffpmeg and get pid
    ffmpeg -f x11grab -s $winsize -r 30 -i :0.0+$off  -f alsa -i $asound $options &
    pid=$!
    zenity --notification \
        --window-icon /usr/share/icons/gnome/scalable/actions/media-record-symbolic.svg \
        --text "to stop ffcast, press icon" 2>/dev/null
    kill $pid
    zenity --info --title "Screencast stopped" --text "$file has been saved" 
}
 
chooseFFopts(){
    #this function allows you to choose output formats; it returns options + filename
    file=$DESKTOP/"screencast-"$(date +"%Y.%m.%d-%H:%M")
    ogv="-b 9000k $file.ogv"
    webm="-b 9000k $file.webm"
    avi="-b 9000k $file.avi"
    response=$(zenity --list --column "Format" avi x264 ogv) || exit 1
    echo ${!response}
}
 
main(){
    #main function
 
    captures=$(getCards)
    interface=$(zenity --title "Choose a sound device to capture" \
            --list --column "Port" \
            --column "Interface name" $captures) || exit 1
 
    #run xrectset to get a X rect selection made with mouse
    coords=$(xrectsel | sed 's/\+/ /')
    win=$(echo $coords | awk '{print $1}')
    offset=$(echo $coords | awk '{print $2}' | sed 's/\+/,/')
 
    #get ffmpeg options
    opts=$(chooseFFopts)
 
    #prepare screencast
    zenity --question \
        --title "Capture will begin after you press OK" \
        --text "An icon will appear in notification, press it to stop screencast"\
        --ok-label "Start screencast"\
        --cancel-label "Cancel" || exit 1
 
    #run screencast
    __ffcast $win $offset $interface "$opts"
}
 
#run main function
main

Sauvez ce fichier dans /usr/local/bin/ffmpeg-screencast (en root) et rendez le exécutable

su -c "chmod +x /usr/local/bin/ffmpeg-screencast"

Créez vous un lanceur dans le bureau, c'est plus sympa je trouve...

Vous le lancez, on vous propose de capturer l'audio sur ce qu'on trouve, puis vous faites une boite de sélection... reste ensuite à lancer le screencast. Une icone ronde apparait dans barre de notification, si vous cliquez dessus alors la capture s'arrête. Dans votre bureau apparait alors la capture vidéo que vous vouliez.

Bleachbit et votre PC souffle un peu

Patrice Ferlet

On télécharge, on joue avec des compilations de programme, on se teste au package, on ferme brutalement des éditeurs de texte, on utilise firefox et google-chrome... et puis un jour on se rend compte que son PC est un peu lent, que le disque "craque" et que l'espace disque commence à manquer. Je vais vous présenter l'outil magique qui va vous soulager la douleur.

Bleachbit est un outil très intéressant pour tout utilisateur qui remplis son disque dur très vite, qui navigue énormément sur internet ou encore qui fait pas mal de code... en fait, il est bon pout tout le monde, y compris l'utilisateur bureautique.

Bleachbit vient en fait avec des "plugins" qui s'activent si il découvre une utilisation possible sur votre PC, par exemple si vous utilisez aMule alors l'outil vous proposera de nettoyer votre espace aMule, idem pour Firefox, Google-Chrome, etc...

Pour utiliser ce programme, installez le via l'outil de gestion de paquets ou dans une console:

su -lc "yum -y install bleachbit"

Vous pouvez alors le lancer en tant qu'utilisateur ou root. Pour le second cas, cela sera utile pour nettoyer les cache de yum par exemple... Bref, lancez l'outil avec la commande "bleachbit" (le plus simple étant de presser ALT+F2 et de taper dans l'invite: bleachbit)

S'ouvre alors une fenêtre de ce type: Bleachbit

En cochant des cases, vous activerez alors les opérations possible de bleachbit. En tant qu'utilisateur vous ne pourrez pas toucher à yum, mais par contre les fichiers temporaires (inutiles en général) ou l'optimisation les bases SQLite de firefox ou chrome est une opération qui peut vous faire gagner beaucoup de place.

Personnellement, je code beaucoup sous vim, gedit et geany. J'ai pas mal de compilation dans mon répertoire de rpm (rpmbuild) et j'utilise énormément de cache dans mes navigateurs étant donné le nombre de site que je visite en une journée. J'ai gagné 9 gigas lors de mon dernier nettoyage.

En tant que root, c'est une opération qui peut vous faire gagner quelques centaines de mégas rien qu'en vidant les cache yum et les traduction inutiles (désolé mais les man pages en polonais ça m'aide pas des masses..)

Pour ce dernier cas notez bien que les mises à jour de page de manuels vous feront apparaître un "warning" qui stipule que des fichiers sont manquants. Oui, c'est normal et pas grave du tout...

Voilà, moi je vous conseille d'utiliser cet outil de temps en temps. Commencez toujours par utiliser le bouton "Prévisualiser" qui vous donnera une estimation de l'espace que vous allez retrouver (presque toujours inférieur au gain réél). Et surtout, lisez bien les informations sur la gauche quand vous sélectionner une option pour savoir ce que va faire Bleachbit.

Mais dans l'ensemble, il ne fait rien de bien dangereux.

Comment lancer Compiz au démarrage de Gnome en UNE instruction

Nicolas Rodt Voici une petite astuce qui permet de lancer Gnome avec Compiz directement activé: exécutez simplement l'instruction suivante :
  • si vous avez une version de Gnome ≥ 2.24 (ex. : Fedora 10) :
gconftool-2 --set --type string /desktop/gnome/session/required_components/windowmanager "env LIBGL_ALWAYS_INDIRECT=1 compiz --sm-client-id default1 ccp"
  • si vous avez une version de Gnome plus ancienne (ex. : Fedora ≤ 9) :
gconftool-2 --set --type string /apps/gnome-session/rh/window_manager "env LIBGL_ALWAYS_INDIRECT=1 compiz --sm-client-id default1 ccp"
ensuite déloguez-vous et reloguez-vous (1). Gnome s'exécutera avec Compiz directement, c'est-à-dire sans passer par metacity (le gestionnaire de fenêtres classique de Gnome), ce qui est beaucoup plus efficace.

En effet, l'autre moyen d'avoir Compiz à chaque démarrage consiste à ajouter fusion-icon dans les programmes exécutés au démarrage de Gnome (Système > Préférences > Personnel > Session). À chaque nouvelle session, Gnome est alors démarré normalement avec metacity, puis fusion-icon est exécuté, lequel lance compiz en remplacement de metacity. Ce dernier a donc été exécuté... pour rien !

(1)
Si vous l'aviez ajouté, n'oubliez pas de supprimer fusion-icon des programmes lancés au démarrage de Gnome.

Continuer à utiliser fusion-icon
Si vous voulez toujours avoir fusion-icon à portée de main (ou de clic), ajoutez "fusion-icon -n" dans les programmes exécutés au démarrage de Gnome. L'option -n empêche juste fusion-icon de relancer Compiz une nouvelle fois.

Help, je n'ai pas de contours de fenêtres
Pas de panique, ceci pourrait se produire si vous n'avez encore jamais utilisé Compiz. Lancez fusion-icon, puis clic droit sur son l'icône (dans la barre des tâches) > Select Window Decorator > GTK Window Decorator.
Une autre solution est d'utiliser emerald comme décorateur de fenêtres. En effet c'est celui-ci qui est utilisé par défaut par Compiz.

Ne plus utiliser compiz
Vous voulez supprimer le démarrage de Compiz avec Gnome ? Lancez :
  • si vous avez une version de Gnome ≥ 2.24 (ex. : Fedora 10) :
gconftool-2 --set --type string /desktop/gnome/session/required_components/windowmanager metacity
  • si vous avez une version de Gnome plus ancienne (ex. : Fedora ≤ 9) :
gconftool-2 --set --type string /apps/gnome-session/rh/window_manager metacity

À voir aussi : Fedora et Compiz Fusion : tout ce que vous avez toujours voulu savoir sur Compiz, fusion-icon, emerald, etc...

Fedora et Compiz Fusion

Nicolas Rodt Fedora 9 à peine installé, j'ai voulu installer Compiz Fusion. Pas besoin, il est déjà installé en fait, mais dans une version un peu... allégée : on trouve juste dans le menu System > Preferences > Look and Feel l'application fort dépouillée Desktop Effects :

Desktop Effects
Ça a bien pour effet de lancer compiz, mais il faut avouer que les possibilités (réglages, effets 3D) ne sont pas nombreuses !

1) Compiz Fusion
On va arranger ça en installant quelques plugins : compiz-fusion ! Installez les paquets suivants suivant votre méthode préférée (yum install ou le nouveau "Add/Remove Software" - PackageKit) :
compiz-fusion
compiz-fusion-gnome
compiz-fusion-extras
compiz-fusion-extras-gnome
2) CompizConfig Setting Manager
C'est bien mais on ne sait rien faire avec ça ? Pour pouvoir configurer compiz et tous ses effets, il faut encore installer CompizConfig Settings Manager, ccsm de son petit nom : installez les paquets suivants :
ccsm
compizconfig-backend-gconf
compizconfig-backend-kconfig
Rendez-vous maintenant dans System > Preferences > Look and Feel et lancez CompizConfig Setting Manager :

compiz-fusion CompizConfig Setting Manager Fedora
Remarque : compiz peut enregistrer ses paramètres de trois manières différentes ("backend") : via gconf (le gestionnaire de configuration de Gnome), kconfig (idem pour KDE) ou dans un fichier (~/.config/compiz/compizconfig/). Pour que vos modifications soient prises en compte, assurez-vous que CompizConfig Setting Manager utilise le même mode de configuration (à savoir : Desktop Effects lance compiz avec le backend gconf) : dans Preferences, sélectionnez le backend souhaité :

compiz-fusion CompizConfig Setting Manager Fedora backend gconf
Pour lancer compiz avec un autre backend : voir le point 5 ci-dessous.

3) Emerald
En installant compiz, vous pouvez aussi installer un décorateur de fenêtres entièrement configurable en remplacement du décorateur de fenêtre par défaut de Gnome ou KDE :
emerald
emerald-themes
Pour l'utiliser, le plus simple est de passer par fusion-icon ou par la commande emerald --replace.

4) Fusion Icon
Encore un petit gadget ? Vous pouvez installer Fusion Icon, une icône qui permet en quelques clics de lancer/arrêter compiz, de le configurer, changer de décorateur de fenêtres, etc. Installez les paquets suivants (le premier pour Gnome, le second pour KDE) :
fusion-icon-gtk
fusion-icon-qt
Il est accessible dans le menu System Tools ou via la commande fusion-icon.

Fusion icon Fedora
5) Utiliser compiz manuellement
En ligne de commande, vous pouvez lancer compizvia l'une de ces deux commandes :
compiz --replace --ignore-desktop-hints gconf    #backend gconf                - OU -
compiz --replace --ignore-desktop-hints ccp      #backend configuration dans un fichier
Si vous obtenez le message
compiz (core) - Fatal: GLX_EXT_texture_from_pixmap is missing
compiz (core) - Error: Failed to manage screen: 0
compiz (core) - Fatal: No manageable screens found on display :0.0

il suffit de lancer compiz avec l'option supplémentaire :
LIBGL_ALWAYS_INDIRECT=1 compiz --replace --ignore-desktop-hints gconf     - OU -
LIBGL_ALWAYS_INDIRECT=1 compiz --replace --ignore-desktop-hints ccp

Ensuite, pour ajouter un décorateur de fenêtres, choisissez celui de gnome ou emerald :
gtk-window-decorator --replace         - OU -
emerald --replace
Enfin, si vous voulez quitter compiz, relancez metacity (sous Gnome) ou kwin (sous KDE) :
metacity --replace       #sous Gnome        - OU -
kwin --replace           #sous KDE

Fusion Icon permet de faire tout ceci en mode graphique.



6) Résultat

compiz-fusion Fedora 9