- Publié le 08 Août 2008 à 21:58
Si il y'a un truc insupportable sous Linux c'est bien le biiiiip si on a le malheur de se tromper de touche. Le pire est probablement celui du mode console (hors X11) mais celui sous X est pas mal non plus. Heureusement comme d'habitude tout cela est configurable.
Sous X11
En général avec un Desktop Manager (environnement de bureau ?) type KDE ou GNOME, il y a une petite case à cocher bien planquée quelque part. Sans environnement de bureau, une simple ligne de commande avec l'utilitaire xset suffit :
$ xset b off
Dans mon cas avec Openbox, je l'a met dans mon fichier .xsession qui lance ma session après le login dans GDM. Simple rapide et efficace :)
En mode console
En mode console deux solutions. il est possible d'utiliser setterm avec la ligne suivante :
$ setterm -blength 0
Cette ligne peut être insérée dans le .bashrc (si vous utiliser bash comme shell évidemment). Il existe cependant une méthode beaucoup plus radicale qui consiste à empêcher le chargement du module pcspkr du noyau qui gère ce fameux bip. Pour cela il suffit de créer un fichier dans /etc/modprob.d, par exemple blacklist-bip avec la ligne suivante à lancer avec sudo (ou en root) :
$ sudo echo "blacklist pcspkr" > /etc/modprobe.d/backlist-bip
Et pour ne pas attendre le prochain démarrage une dernière ligne de commande avec modprobe est possible pour supprimer le module directement :
$ sudo modprobe -r pcspkr
Maintenant, vos lignes de commande seront silencieuses à souhait, reposant et magique !
- Publié le 15 Décembre 2006 à 23:56
En écrivant mon précédent billet sur le logiciel Apwal, j'ai vainement cherché un logiciel permettant de faire une capture d'écran "animée" que ce soit en vidéo, en flash ou en GIF animé. J'avais bien trouvé Xvidcap mais il n'est pas dans les dépôts Ubuntu et le paquet non-officiel pour Debian ne fonctionne pas correctement...
Je me suis donc rabbattu sur deux captures d'écran consécutives réalisées avec mon script de capture basé sur import (de la suite ImageMagick) montées en GIF animé avec The GIMP... Mais depuis, au détour d'un commentaire d'un journal trollogène sur LinuxFr, j'ai découvert que plusieurs logiciels font cela et qu'ils portent tous le nom d'une ville turque :
J'ai retenu byzanz car il produit des GIF animés ce qui est quand même le plus pratique pour publier sur le web et en plus il est disponible dans les dépôts Universe d'Ubuntu ce qui simplifie grandement son installation avec la ligne de commande suivante (ou en cherchant dans synaptic ou équivalent) :
> tigrou@Lorien[192.168.0.243]:~$ sudo apt-get install byzanz
Une fois installé, ce logiciel se manipule soit via une applet dans un panneau GNOME soit via la ligne de commande en lui passant quelques paramètres détaillés dans sa courte page du manuel, comme je n'utilise pas GNOME, la ligne de commande ressemble à la suivante :
> tigrou@Lorien[192.168.0.243]:~$ byzanz-record -l -d 15 -x 249 -y 196 -w 460 -h 300 -c --delay=2 edition_dans_ez_publish.gif
Cette ligne va enregistrer deux secondes après son lancement un GIF animé nommé edition_dans_ez_publish.gif tournant en boucle de 460x300 pixels dont le point d'origine est 249x196 d'une durée de 15 secondes en incluant le curseur X11, ce qui donne l'animation suivante :
Comme c'est du GIF ça ne peut contenir que 256 couleurs mais c'est très léger (64Ko pour 15 secondes dans cet exemple) et donc tout à fait publiable sur le web ou envoyable par mail et peut permettre de facilement montrer une fonctionnalité voire de rapporter un bug difficile à expliquer.
- Publié le 13 Décembre 2006 à 21:36
Apwal est un petit logiciel écrit dans le but de permettre le lancement de ses applications favorites en ayant le moins de mouvements de souris à faire. En effet, le plus souvent lorsque vous voulez lancer une application, il faut diriger le pointeur jusqu'à une barre d'icônes située généralement sur un bord de l'écran et ce même si le pointeur de la souris se trouve à l'opposé. Apwal permet de faire apparaître une barre d'icônes à proximité du pointeur de la souris où qu'il soit.
Par exemple avec le window manager Openbox, j'ai configuré le clic gauche sur le fond d'écran et la combinaison Shift+Tab pour lancer apwal faisant ainsi apparaître ce menu à l'aide de la configuration suivante dans le fichier ~/.config/openbox/rc.xml :
<!-- extrait de ~/.config/openbox/rc.xml -->
<context name="Desktop">
<!-- [...] -->
<mousebind button="Left" action="Press">
<action name="Execute"><execute>apwal</execute></action>
</mousebind>
</context>
<keyboard>
<!-- [...] -->
<keybind key="S-Tab">
<action name="Execute"><execute>apwal</execute></action>
</keybind>
</keyboard>
Comme une image vaut toujours mieux qu'un long discours :
Comme on peut le voir sur ce GIF animé, Apwal fait apparaître chez moi une barre au dessus de toutes les applications en cours me permettant de lancer facilement et rapidement, un xterm, nautilus, Firefox, Thunderbird, ViM ou encore de contrôler mon lecteur audio préféré (Listen en ce moment).
Apwal est disponible sous Ubuntu dans le dépôt Universe et s'installe avec le paquet du même nom :
> tigrou@Lorien[192.168.0.243]:~$ sudo apt-get install apwal
Apwal se configure simplement à l'aide d'une interface graphique (générant un simple fichier XML) en le lançant avec l'option --edit. Quelques captures d'écran de cette étape sont disponibles dans la courte documentation en anglais sur le site officiel.
- Publié le 07 Décembre 2006 à 13:25
Les bureaux virtuels disponibles sur la plupart (tous ?) des gestionnaires de fenêtres modernes permettent d'organiser facilement ses différentes applications par thème ou actaction. J'ai par exemple l'habitude de mettre tout ce qui concerne le web sur le premier bureau (Firefox et Liferea principalement), les emails, l'irc sur le deuxième et les deux dderniers ne sont pas dédiés à une tâche précise. Malgré cette organisation, il m'arrive fréquemment de lancer des programmes en doubles simplement par oubli. Si pour certains cela ne pose pas de problème particulier (firefox ou les xterm par exemple), pour d'autres ça n'a pas vraiment de sens (thunderbird ou irssi) et pour certains autres ça n'est tout simplement pas possible ou c'est même dangereux.
J'ai donc écrit le petit script ci-dessous qui peut remplacer avantageusement un lanceur pour une application donnée. À l'origine je l'ai écrit car sous Breezy Badger, Thunderbird m'affichait le gestionnaire de profil si j'avais le malheur de le lancer deux fois ce qui est assez agaçant à la longue, depuis il semble que ce bug soit résolu.
#! /bin/sh
# Script donnant le focus à un programme sous X en recherchant
# dans le titre le motif passé en paramètre,
# sinon lance la commande passée en second paramètre
if [ $# -lt 1 ] ; then
echo "Usage : $0 motif [commande]"
exit 1
fi
APP=`wmctrl -l | grep "$1" | head -1 `
# identifiant X du programme
CODE=`echo "$APP" | cut -d ' ' -f 1`
if [ "$CODE" != "" ] ; then
wmctrl -i -a $CODE
exit 0
fi
# lancement de la commande si spécifiée
if [ ! -z "$2" ] ; then
exec $2 &
exit 0
fi
exit 2
Pour fonctionner, ce script nécessite l'utilisation du programme wmctrl qui s'installe avec le paquet du même nom :
sudo apt-get install wmctrl
L'utilisation est très simple, avec un argument, le script recherche une fenêtre dont le titre comporte cet argument et la met au premier plan si il la trouve. Si celle-ci se trouve sur un autre bureau, le script change automatiquement de bureau. Si un deuxième argument est fourni et si le script ne trouve pas de fenêtre, il essaie d'éxécuter cet argument comme une commande.
wmctrl permet de faire beaucoup d'autres choses dans la manipulation des fenêtres sous X (la page du manuel de wmctrl est très instructive) pourvu que votre gestionnaire de fenêtre suive les spécifications EWMH ce qui est le cas de beaucoup de gestionnaires de fenêtres. En tout cas testé et approuvé sous Openbox !
Edit : correction dans le script s/head 1/head -1/g
- Publié le 29 Octobre 2006 à 15:36
Bien que la plupart des distributions Linux et Ubuntu en particulier tendent à minimiser voire à rendre complètement inutile l'utilisation de la ligne de commande, il peut être intéressant de rendre cet outil un peu plus accueillant et facile d'utilisation. Pourquoi ? Si Xorg plante, c'est tout ce qui reste et puis pour certaines tâches, il n'y a pas plus rapide... Ce billet ouvre donc une série consacrée à la configuration et l'utilisation de bash.
Le prompt
Laurent - CyberSDF a publié un court billet présentant un outils en ligne permettant de créer un prompt plus fantaisiste que celui par défaut. Au delà de l'aspect purement esthétique, le prompt est la première chose que l'on voit lors de l'utilisation du shell, il peut donc mettre en valeur des informations importantes. Au travail ou à la maison, j'ai potentiellement accès en SSH à 13 machines différentes (3 Ubuntu, 9 Debian et une Solaris pour les curieux), et je suis fréquemment connecté à 3 ou 4 machines en même temps, le prompt doit donc m'indiquer sur quelle machine je suis et surtout avec quel login, pour cela j'utilise la configuration suivante soit dans le fichier /etc/bash.bashrc soit dans mon ~/.bashrc :
# couleurs
C_RED="\[\e[1;31m\]"
C_BLUE="\[\e[1;34m\]"
C_GRAY="\[\e[1;30m\]"
C_WHITE="\[\e[1;37m\]"
C_YELLOW="\[\e[1;33m\]"
C_DEF="\[\033[0m\]"
mUID=`id -u`
MACHINE="Lorien"
IP="192.168.0.243"
if [ "$mUID" = "0" ] ; then
PS1="${C_YELLOW}>${C_DEF} ${C_RED}\u${C_DEF}@${MACHINE}${C_YELLOW}[${C_DEF}$IP${C_YELLOW}]${C_DEF}:\w${C_RED}#${C_DEF} "
PS2="${C_RED}>${C_DEF} "
else
PS1="${C_YELLOW}>${C_DEF} ${C_BLUE}\u${C_DEF}@${MACHINE}${C_YELLOW}[${C_DEF}$IP${C_YELLOW}]${C_DEF}:\w${C_BLUE}\$ ${C_DEF}"
PS2="${C_BLUE}>${C_DEF} "
fi
export PS2
export PS1
Cette configuration fait en sorte d'avoir un prompt bleu, jaune et blanc pour un utilisateur normal et rouge, jaune et blanc pour l'utilisateur root attirant ainsi mon attention sur le fait qu'en root, on ne tape par n'importe quoi... Il m'indique aussi le nom de la machine ainsi que son adresse IP. Ce qui donne :
Le titre des terminaux graphiques
De la même manière que le prompt, le titre des terminaux est très utile pour se repèrer lorsqu'on utilise Xorg. Dans un terminal, il est possible de changer ce titre de manière dynamique avec un simple echo, il suffit alors d'utiliser la variable PROMPT_COMMAND pour stocker une commande que le shell éxécutera à chaque affichage du prompt.
case $TERM in
xterm*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${MACHINE}[$IP]: ${PWD}\007"'
echo -ne "\033]0;${USER}@${MACHINE}[$IP]: ${PWD}\007"
;;
*)
setterm -blength 0
;;
esac
Avec ces quelques lignes, les terminaux affiche la même chose que le prompt dans leur titre (sans les couleurs) lorsque le type de terminal commence par "xterm" (ce qui est le cas avec xterm mais aussi gnome-terminal).
À noter que la seconde partie du case permet de supprimer le beep très énervant beep lorsqu'on est en console sans Xorg.