A la découverte d'UNIX (FreeBSD)
Last updated on Tuesday, January 8, 2013
  • 4 semaines
  • Moyen

Ce cours est visible gratuitement en ligne.

Got it!

De belles fenêtres

Pour embellir votre environnement graphique, et surtout, pour rendre vos fenêtres plus maniables, vous avez maintenant besoin d'un gestionnaire de fenêtres. Vous avez de la chance : ce n'est vraiment pas ça qui manque.

Le dossier /usr/ports/x11-wm/ (window manager) en est plein ! dwm, azalea, fluxbox, openbox, fvwm, etc. Ce ne sont là que quelques-uns des environnements qu'UNIX et FreeBSD vous proposent. Une sacré différence avec Windows et son bureau unique, n'est-ce pas ? En plus, chacun d'eux est extrêmement personnalisable.

Là encore, il faut donc faire un choix. Je vais vous parler de Fluxbox.

A - Fluxbox

Faites travailler votre installateur préféré :

[Nom de l'ordinateur]# pkg_add -r fluxbox

ou

[Nom de l'ordinateur]# cd /usr/ports/x11-wm/fluxbox && make install clean BATCH=yes

Il faut ensuite mettre à jour le fichier .xinitrc, dans votre dossier personnel, pour qu'il lance Fluxbox au lieu de Twm :

exec startfluxbox

Maintenant que tout est prêt, vous pouvez changer de gestionnaire de fenêtres. Fermez Twm à l'aide de son menu puis loguez-vous à nouveau avec SLiM.

Image utilisateur

Comme vous le voyez, l'interface de Fluxbox est très dépouillée. Il y a juste une barre de tâches en bas, dans laquelle vous pouvez réduire les fenêtres. Les flèches à gauche permettent de changer de bureau : si vous avez beaucoup de fenêtres ouvertes, vous pouvez les répartir sur plusieurs bureaux et passer de l'un à l'autre avec ces flèches ou avec la molette de la souris.

Bien. :) Tout ceci commence un peu à ressembler à quelque chose. Bon, je vous accorde qu'on est encore loin du paradis. :ange:

B - Demandez le menu

Image utilisateur

Un clic droit sur l'écran affiche le menu de Fluxbox, à partir duquel vous pouvez ouvrir des terminaux ou lancer des applications graphiques. Sachez qu'il est possible d'adapter ce menu pour qu'il propose exactement les options que vous voulez. En voici un exemple (à droite).

C'est le fichier ~/.fluxbox/menu qui définit le contenu du menu. Je vous rappelle que le symbole ~ désigne votre dossier personnel.

~/.fluxbox/menu est donc équivalent à /usr/home/[votre identifiant]/.fluxbox/menu. Et c'est quand même plus court. ;)

Vous pouvez éditer ce fichier manuellement avec emacs ou utiliser un outil de configuration graphique. Voici, par exemple, le fichier permettant d'obtenir le menu ci-contre.

[begin] (FreeBSD 8.2) {} 
    [encoding] () {UTF-8} <>
    [exec] (Terminal) {terminal} </usr/local/share/pixmaps/terminal.xpm>
    [exec] (Firefox) {firefox} <~/icones/firefox.xpm>
    [exec] (Rekonq) {/usr/local/kde4/bin/rekonq} <~/icones/rekonq.xpm>
    [exec] (Thunar) {thunar} <~/icones/thunar.xpm>
    [exec] (LibreOffice) {libreoffice} <~/icones/libreoffice.xpm>
    [exec] (KolourPaint) {/usr/local/kde4/bin/kolourpaint} <~/icones/kolourpaint.xpm>
    [exec] (VLC) {vlc} <~/icones/vlc.xpm>
    [exec] (emacs) {emacs} <~/icones/emacs.xpm>
    [exec] (Mousepad) {mousepad} </usr/local/share/pixmaps/mousepad.xpm>
    [exec] (ePDFview) {epdfview} <~/icones/epdfview.xpm>
    [exec] (Gwenview) {/usr/local/kde4/bin/gwenview} <~/icones/gwenview.xpm>
    [submenu] (Configuration) {} <>
        [exec] (Fluxbare) {fluxbare} <>
        [config] (Configure) {} <>
        [submenu] (System Styles) {Choose a style...} <>
            [stylesdir] (/usr/local/share/fluxbox/styles) {} <>
        [end]
        [submenu] (User Styles) {Choose a style...} <>
            [stylesdir] (~/.fluxbox/styles) {} <>
        [end]
        [workspaces] (Workspace List) {} <>
        [submenu] (Tools) {} <>
            [exec] (Window name) {xprop WM_CLASS|cut -d \" -f 2|xmessage -file - -center} <>
            [exec] (Top) {terminal -e top}
            [exec] (Screenshot - JPG) {import screenshot.jpg && display -resize 50% screenshot.jpg} <>
            [exec] (Screenshot - PNG) {import screenshot.png && display -resize 50% screenshot.png} <>
        [end]
        [submenu] (Window Managers) {} <>
            [restart] (twm) {twm} <>
            [restart] (xfce4) {startxfce4} <>
        [end]
        [commanddialog] (Fluxbox Command) {} <>
        [reconfig] (Reload config) {} <>
        [restart] (Restart) {} <>
        [exec] (About) {(fluxbox -v; fluxbox -info | sed 1d) | xmessage -file - -center} <>
        [separator] () {} <>
        [exit] (Exit) {} <>
    [end]
    [exit] (Quitter Fluxbox) {} <>
    [endencoding] () {} <>
[end]

Recopier bêtement ce fichier n'aurait aucun intérêt. Voyez comment vous voulez organiser votre menu et quels logiciels vous prévoyez d'installer. De plus, tous ces fichiers d'icônes en .xpm n'existent probablement pas chez vous. Vous devrez créer ceux qui vous intéressent et les ranger dans un dossier adéquat.

Par contre, je vous ai montré ce fichier pour que vous en compreniez la structure. La plupart des lignes sont du type :

[exec] (Nom d'un programme) {commande lançant le programme} <chemin vers le fichier d'icône>

Bien entendu, l'icône n'est pas indispensable.

Configuration ouvre un sous-menu. Là, ça se complique un peu mais vous pouvez laisser le contenu par défaut.

Si, plutôt que d'éditer le menu à la main, vous préférez un outil de configuration graphique, il va falloir l'installer. Il s'appelle fluxconf. FreshPorts vous dira comment le télécharger. Pour le lancer, il faut taper fluxbare dans un terminal. Vous verrez alors apparaitre cette petite fenêtre :

Image utilisateur

Chacun de ces trois boutons ouvre une boîte de dialogue assez intuitive vous permettant de configurer :

  • Le menu

  • Les raccourcis clavier

  • Tout le reste

La boîte de dialogue du bouton Fluxconf parle d'un "slit". C'est quoi ?

C'est un objet invisible situé sur le bureau. Certaines applications, programmées avec la bibliothèque GnuStep, peuvent y être rangées. Un peu comme dans un dock, pour ceux qui connaissent. Il devient alors visible. Comme GnuStep est de moins en moins utilisée, vous ne devriez jamais avoir affaire à lui.

Nous, c'est le menu qui nous intéresse :

Image utilisateur

N'oubliez pas de sauvegarder avant de partir.

Remarquez les boutons en haut des fenêtres. A droite, il y a les traditionnels Agrandir, Réduire, Fermer. A gauche, il y a un quatrième bouton, représentant un cercle. Quand vous cliquez dessus, le cercle se remplit et, apparemment, rien d'autre ne se passe. Mais si vous changez alors de bureau, avec la molette de la souris ou les flèches de la barre de taches, cette fenêtre-ci viendra avec vous. Une autre manière de déplacer une fenêtre d'un bureau à un autre consiste à la faire glisser hors de l'écran, à gauche ou à droite.

En double-cliquant sur le titre d'une fenêtre, vous l'enroulez : toute la fenêtre disparaît, sauf la barre de titre. Double-cliquez à nouveau pour qu'elle réapparaisse.

C - Thèmes et fond d'écran

Le fond d'écran tout noir ou tout gris, ça commence à bien faire. On est au XXIème siècle, quand même ! :colere2: Un bureau comme celui-ci, ce n'est quand même pas trop demander :

Image utilisateur
Image utilisateur

Vous pouvez facilement changer de thème à l'aide du menu de Fluxbox, qui en propose une bonne trentaine. Sur la capture ci-dessus, vous voyez le thème Makro, avec sa petite barre marron qui ne prend pas trop de place. Chacun de ces thèmes peut être modifié en éditant le fichier /usr/local/share/fluxbox/styles/[Nom du thème]/theme.cfg.

Définir le fond d'écran est à peine plus compliqué. Il faut éditer le fichier ~/.fluxbox/startup. Vers le début du fichier, avant la ligne exec fluxbox, ajoutez :

fbsetbg -f [chemin vers l'image à mettre en fond d'écran]

La commande fbsetbg définit (set) le fond d'écran (background) pour fluxbox. L'option -f indique que l'image doit occuper tout l'écran. Si vous préférez une image centrée ou une mosaïque, choisissez plutôt l'option -c ou -t.

Plus élaboré, vous pouvez aussi mettre plusieurs images dans un dossier et écrire dans ~/.fluxbox/startup la ligne :

fbsetbg -r [chemin vers ce dossier]

Une image sera prise au hasard dans ce dossier.

Non, ça ne fonctionne pas. J'ai raté quelque chose ?

Avec fbsetbg, nous avons demandé à fluxbox de mettre une image en fond d'écran. L'ennui, c'est que fluxbox ne sait pas faire ça. Pas tout seul, en tout cas. Il a besoin de l'aide de feh, un logiciel afficheur d'images. Installez-le puis tapez fbsetbg -i. Vous devez obtenir cette réponse :

feh is a nice wallpapersetter. You won't have any problems.

Redémarrez fluxbox. Vous aurez votre fond d'écran. Vous pouvez aussi choisir Reload config dans le menu.

feh ne sert pas qu'à ça. Pour afficher monimage.png, tapez dans un terminal graphique :

% feh monimage.png
Image utilisateur

D - Top et kill

Dans son menu par défaut, fluxbox vous propose le programme top. Vous vous demandez peut-être de quoi il s'agit. Cet utilitaire en mode console est très pratique pour surveiller l'activité des DAEMONs et faire le point sur l'état de votre système. Vous pouvez le lancer depuis le menu ou en tapant top dans un terminal.

Image utilisateur

En haut, vous lisez la charge du système : celle du microprocesseur (CPU), celle de la mémoire RAM (Mem), et celle du swap. Vous trouvez aussi le nombre de processus actifs ou dormants. En dessous, un tableau vous présente les principaux programmes en cours et les classe, en commençant par celui qui occupe le plus de place en mémoire.

Dans les colonnes de droite, vous trouvez le nom du programme et la part du CPU qu'il utilise. Dans celles de gauche, vous découvrez son numéro PID et l'utilisateur qui l'a lancé. Il peut s'agir d'utilisateurs en chair et en os ou de DAEMONs. Quand vous lancez un programme qui en lance lui-même un autre, c'est votre nom qui apparaît pour les deux.

Le numéro de PID est très utile pour manipuler un processus. Naturellement, vous n'avez accès qu'aux vôtres, à moins d'être root. Dans cet exemple, je peux interrompre firefox-bin en tapant :

% kill 1610

Parfois, un programme refuse de se fermer. Il a souvent une bonne raison pour ça et vous devriez chercher laquelle.

kill a la mine patibulaire d'une brute épaisse. :pirate: Mais c'est une commande bien plus sophistiquée qu'elle en a l'air. Elle peut envoyer aux programmes divers signaux :

  • kill ou kill -15 : signal TERM "Ferme-toi, s'il te plait."

  • kill -1 : signal HUP "Suspends-toi un moment."

  • kill -6 : signal ABRT "Enregistre un rapport d'erreur dans un fichier en .core et ferme-toi."

  • kill -9 : signal KILL "Tu discutes pas, tu te fermes et puis c'est tout."

  • Et il y en a d'autres...

On peut aussi préciser en toutes lettres le nom du signal à envoyer.

kill -s KILL 1290

Cette commande "tuera" immédiatement le DAEMON moused, sans aucune négociation. Bien entendu, vous n'aurez plus de souris tant que vous ne l'aurez pas relancé avec le script /etc/rc.d/moused start.

E - Eteindre l'ordinateur

Pour l'instant, seul root peut redémarrer ou éteindre l'ordinateur. Peut-être que c'est très bien comme ça. Si plusieurs utilisateurs sont susceptibles d'utiliser cette machine simultanément (par exemple, s'il s'agit d'un serveur), on ne peut pas laisser n'importe qui l'éteindre et interrompre brutalement :o les programmes des autres.

Mais s'il s'agit de votre ordinateur personnel, vous n'avez peut-être pas envie de passer en mode root chaque fois que vous voulez l'éteindre. Il faut donc modifier la politique de l'ordinateur en éditant le fichier /usr/local/etc/PolicyKit/PolicyKit.conf. Il est rédigé en XML et voici son contenu par défaut :

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->

<!DOCTYPE pkconfig PUBLIC "-//freedesktop//DTD PolicyKit Configuration 1.0//EN"
"http://hal.freedesktop.org/releases/PolicyKit/1.0/config.dtd">

<!-- See the manual page PolicyKit.conf(5) for file format -->

<config version="0.1">
    <match user="root">
	<return result="yes"/>
    </match>
    <define_admin_auth group="wheel"/>
</config>

En clair, root a tous les droits et, dès qu'il demande quelque chose, il faut lui répondre "Oui, chef !" :) Par ailleurs, le groupe des administrateurs est le groupe wheel.

On veut que les utilisateurs ordinaires puissent, depuis le mode graphique (donc par l'intermédiaire de HAL), se servir des commandes shutdown et reboot. On ajoute donc avant </config> les lignes suivantes :

<match action="org.freedesktop.hal.power-management.shutdown">
   <return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.reboot">
   <return result="yes"/>
</match>

Maintenant, vous pouvez ajouter les commandes reboot et shutdown -p now au menu de fluxbox. Soyez toutefois conscients que, si vous cliquez dessus, on ne vous demandera pas confirmation.

Pour compléter votre bureau fluxbox, un gestionnaire de fichiers comme Thunar est indispensable. Vous pouvez aussi installer le programme fbdesk, qui vous permettra de placer des icônes sur le bureau, ainsi que fluxspace, pour configurer différemment chaque bureau virtuel.

Personnalisez votre bureau à l'envi. Faites en sorte qu'il soit joli :soleil: et bien adapté à l'usage que vous souhaitez en faire.

Example of certificate of achievement
Example of certificate of achievement