Table des matières

, , ,

Fluxbox

La version des dépôts est l’avant-dernière version officielle, toutefois cette version est pleinement fonctionnelle.

Le site officiel n’est plus actif, toutefois le projet reste en activité sur GitHub.

Fluxbox est un gestionnaire de fenêtres très léger, qui permet de faire "revivre" quelques ordinateurs qui ne supporteraient pas GNOME ou KDE, ni même XFCE.
Bien sûr Fluxbox n'est pas tout seul à proposer cela, il existe aussi Enlightenment ou Openbox et bien d'autres.

Les autres avantages de Fluxbox sont qu'il est entièrement personnalisable (par la ligne de commande ou via des logiciels graphiques), rapide, etc.

Bien sûr, vous pouvez aussi l'installer sur un ordinateur puissant: pour optimiser le lancement de certaines applications.

Installation

Il suffit d'installer le paquet fluxbox.

Démarrer Fluxbox

Une fois fluxbox installé, vous pouvez le sélectionner au moment du choix de l'environnement graphique.

Sinon, si vous n'avez pas GDM ni lightDM ni un équivalent, vous pouvez le lancer via la commande startx, en mettant les lignes suivantes dans le fichier ~/.xinitrc :

#!/bin/bash
exec /usr/bin/startfluxbox

Puis mettez les droits adaptés sur ce fichier :

chmod 755 ~/.xinitrc
Mais pourquoi startfluxbox me direz-vous, et pourquoi pas fluxbox tout court ? Startfluxbox est un script qui gère le démarrage de Fluxbox. Au lancement, il va vérifier s'il existe ~/.fluxbox, puis s'il n'existe pas, il va le créer ainsi que les fichiers de configuration de base. Parmi ces fichiers, startup sera appelé par startfluxbox pour le lancement de Fluxbox.

Le thème de base n'est pas très attirant mais rassurez-vous, vous pourrez modifier tout ce que vous voudrez en temps voulu.

Configuration

Startup

Pour lancer une commande au lancement de Fluxbox, il y a plusieurs manières de lancer des applications, je ne vous en présenterai qu'une, qui est à mon sens la meilleure. Cette méthode fonctionne que vous démarriez en mode console ou en graphique (gdm, kdm, xdm, etc.). Il suffit pour cela de rajouter une commande dans votre fichier ~/.fluxbox/startup, de la façon suivante :

  nom_de_la_commande &

Le & sert à permettre l'exécution du reste des commandes qui suivent dans ce fichier. La commande insérée dans startup doit toujours se trouver avant le démarrage de Fluxbox, c'est-à-dire avant ce genre de ligne :

  exec /usr/bin/fluxbox &

Voici par exemple un fichier startup :

  # fluxbox startup-script:
  #
  # Lines starting with a '#' are ignored.
  fbsetbg -l
  fbpager -w &
  conky &
  xmodmap ~/.xmodmaprc
  exec /usr/local/bin/fluxbox -log ~/.fluxbox/log

FluboxLauncher : logiciel graphique (glissé/déposé) permettant l'ajout d'applications au lancement de Fluxbox. Disponible via :

Ou dans un terminal, saisir les commandes suivantes :

sudo add-apt-repository ppa:jerem-ferry/fluxbox
sudo apt-get update
sudo apt-get install fluxboxlauncher

Temporiser les commandes : sous certaines conditions ou si des bugs de chargement d’application au démarrage sont présents. Il est possible d'utiliser la commande sleep afin de créer des temporisations de lancement entre les applications (particulièrement utile en cas de cumule d'applets).

Exemple d’une commande sleep de 1 seconde et 1 minute (le « & » finale n’est pas nécessaire) :

sleep 1 
sleep 60

Pour faciliter et rendre rapide le chargement en cas de cumul de commandes sleep dans startup, des scripts bash peuvent être aussi créés et appeler au lancement. Les scripts bash ou toute commande sont globalement acceptés dans le fichier startup.

Si vous avez quelconque astuce à lancer au démarrage… N'hésitez pas à la rajouter !

Le papier peint

Il suffit de modifier le fichier ~/.fluxbox/overlay

Ce fichier permet de redéfinir n'importe quelle directive écrite dans un fichier de thème, et tout ce qui s'y trouve prime sur le contenu d'un fichier de thème.

Il suffit de modifier les options suivantes:

Un logiciel Wallpabox permet de changer de papier peint facilement grâce à une interface graphique. Wallpabox utilise la commande fbsetbg, il faut donc que fbsetbg -l soit appelé au démarrage.

Récupérer le paquet de la dernière version stable ici. Installer le paquet avec dpkg.

Une entrée dans le menu est crée, vous pouvez aussi le lancer en ligne de commande par wallpabox.

Le splash screen

Cette partie n'est pas d'une très grande utilité mais certaines personnes aiment bien personnaliser à fond leur Fluxbox alors bon, comment mettre un splash screen au démarrage de Fluxbox ? Rien de plus simple, il suffit de rajouter cette ligne dans votre ~/.fluxbox/startup :

fbsetbg -C /path/img

Voilà, relancez Fluxbox et admirez…

Inutile de fermer toutes les fenêtres pour relancer Fluxbox.

Les thèmes

Les fichiers thèmes installés par défaut sont dans /usr/share/fluxbox/styles/. Pour vos fichiers thèmes, après les avoir téléchargés, décompressez, ou copiez-les si ce ne sont pas des archives, directement dans ~/.fluxbox/styles/.
Vous pouvez sélectionner votre thème via le menu accessible d'un clic droit sur le bureau.

Pour ceux qui ont fait leur menu, si vous avez omis de mettre un sous-menu de configuration de Fluxbox, vous pouvez modifier le fichier ~/.fluxbox/init à la ligne:

    session.styleFile: ~/fluxbox/styles/votre-style

Thèmes GTK

La doc. officielle (en français) est très explicite à ce sujet.

Thèmes

Pour les amateurs de thèmes, plusieurs sites proposent de nombreux thèmes très originaux :

DeviantArt

Pling

:!: N'oubliez pas de décompresser l'archive dans le répertoire ~/.fluxbox/styles/. :!:

Si la police du thème choisi est petite, il faut éditer le fichier theme.cfg, changer les numéros après les lignes terminant par (.font)

Par exemple : "menu.frame.font: Droid Sans-9" peut devenir "menu.frame.font: Droid Sans-11", police de la taille 9 à 11.

Les icônes sur le bureau

Sachez que Fluxbox ne veut pas être un environnement de bureau complet. Pour les icônes il faut donc utiliser un programme annexe.

Nous en présenterons ici trois :

Rox

Beaucoup de personnes pensent que Rox n'est qu'un gestionnaire de fichier… et bien c'est faux ! voyez plutôt :

fbdesk

Fbdesk est certainement le plus simple et le plus léger. Installez le paquet fbdesk.

Une fois installé, éditez le fichier fbdesk.icons.

Chaque entrée se présente comme suit :

[Desktop Entry]
Name=default
Exec=
Icon=
Pos= 100 100
[end]

Exemple d'un fichier configuré :

[Desktop Entry]
Name=Roxfiler
Exec=rox-filer
Icon=~/icones/home.png
Pos= 50 50
[end]

[Desktop Entry]
Name=Gaim
Exec=gaim
Icon=~/icones/gaim.png
Pos= 50 150
[end]

[Desktop Entry]
Name=VideoLan
Exec=vlc
Icon=~/icones/tv.png
Pos= 50 250
[end]

[Desktop Entry]
Name=Firefox
Exec=firefox
Icon=~/icones/firefox.png
Pos= 50 350
[end]

[Desktop Entry]
Name=Terminal
Exec=gnome-terminal
Icon=~/icones/term.png
Pos= 50 450
[end]

(~ sera remplacé par /home/user une fois fbdesk relancé)

Idesk

Installez le paquet idesk.

Après l'installation, vous trouverez un fichier ~/.ideskrc qui permet de configurer le comportement de vos futures icônes. Voici le mien :

  table Config
    FontName: gothic
    FontSize: 11
    FontColor: #37CFA6
    ToolTip.FontSize: 11
    ToolTip.FontName: gothic
    ToolTip.ForeColor: #0000FF
    ToolTip.BackColor: #FFFFFF
    ToolTip.CaptionOnHover: true
    ToolTip.CaptionPlacement: Right
    Locked: false
    Transparency: 100
    Shadow: true
    ShadowColor: #000000
    ShadowX: 1
    ShadowY: 1
    Bold: true
    ClickDelay: 300
    IconSnap: true
    SnapWidth: 20
    SnapHeight: 20
    SnapOrigin: BottomRight
    SnapShadow: false
    SnapShadowTrans: 200
    CaptionOnHover: false
    CaptionPlacement: bottom
    FillStyle: fillinvert
    Background.File: latina.jpg
  end
  
  table Actions
    Lock: control right doubleClk
    Reload: middle doubleClk
    Drag: left hold
    EndDrag: left singleClk
    Execute[0]: left doubleClk
    Execute[1]: right doubleClk
  end

Pour pouvoir mettre des icônes sur votre bureau, il vous faut au préalable créer un répertoire ~/.idesktop. Pour cela :

mkdir .idesktop

Maintenant placez-vous dans ce répertoire et créez, par exemple, un fichier firefox.lnk, en y mettant à l'intérieur:

  table Icon
    Caption: Firefox
    Command: /usr/bin/firefox 
    Icon: /usr/share/pixmaps/firefox.png
    Width: 48
    Height: 48
    X: 1179
    Y: 253
  end

Et voilà, quand vous lancerez idesk, vous aurez un belle icône Firefox sur votre bureau, que vous placerez où vous voulez. Créez autant de fichier.lnk que d'icône que vous voulez placer sur votre bureau.

fbdesk/Idesk au démarrage

Si vous voulez automatiser le démarrage de fbdesk/idesk, éditez le fichier ~/.fluxbox/startup comme expliqué précédemment:

# fluxbox startup-script:
#
# Lines starting with a '#' are ignored.
    idesk &

Attention à bien mettre le &, cela permet d'exécuter la suite du startup.

NB: à placer avant le exec /usr/bin/fluxbox

Sachez qu'il existe également Nautilus (le célèbre navigateur de fichier de GNOME), mais il empêche l'ouverture du menu par clic droit : ce menu est remplacé par la création/suppression de dossier/fichier, etc… Si vous souhaitez tout de même l'essayer (et que vous avez réussi à mettre votre menu dans votre toolbar), tapez nautilus en ligne de commande ou mettez nautilus & dans votre fichier ~/.fluxbox/startup.

Si vous l'avez lancé et que votre menu vous est inaccessible : pas la peine d'éteindre brutalement votre ordinateur ! Lancez un terminal en faisant "ALT + F2" puis tapez le nom d'un terminal comme xterm, eterm, aterm ou encore gnome-terminal s'il est installé.

Une fois dans le terminal de votre choix, tapez simplement:

killall nautilus

Si vous n'avez pas de terminal d'installé (quelle idée!), vous pouvez toujours accéder au tty (celui de votre choix) en faisant "ctrl + alt + F*", * étant un nombre de 1 à 6, puis tapez simplement :

killall nautilus

Revenez ensuite sur l'interface graphique en tapant "ctrl + alt + F7/F8" et le tour est joué !

N.B : Si ce code ne fonctionne pas, tapez "sudo service gdm restart" pour relancer l'interface graphique. Vous serez automatiquement déconnecté et vos travaux en cours seront perdus.

Liens

  1. Si vous voulez quelques icônes qui vont bien avec Fluxbox, allez voler Gentoo (lien mort).

Informations système sur le bureau - Conky

Si aimez bien avoir tout sous la main, l'heure, le jour, le kernel, la place restante sur vos disques dur, vous allez certainement aimer Conky !

Installation

Il suffit d'installer le paquet conky.

Ensuite pour lancer conky, faites simplement :

conky

Pour mettre conky au démarrage de fluxbox, je vous renvoie sur la page startup.

Configuration

Pour voir le manuel :

man conky

Pour une configuration avancée, il vous faudra créer un fichier nommé ".conkyrc" dans votre /home/user/. Pour le remplir, au choix :

# Conky sample configuration
#
# the list of variables has been removed from this file in favour
# of keeping the documentation more maintainable.
# Check http://conky.sf.net for an up-to-date-list.

# set to yes if you want Conky to be forked in the background
background yes

# X font when Xft is disabled, you can pick one with program xfontsel
#font 5x7
#font 6x10
#font 7x13
#font 8x13
#font 9x15
#font *mintsmild.se*
#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*


# Use Xft?
use_xft yes

# Xft font when Xft is enabled
xftfont Bitstream Vera Sans Mono:size=8

# Text alpha when using Xft
xftalpha 0.8

# Print everything to stdout?
# out_to_console no

# MPD host/port
# mpd_host localhost
# mpd_port 6600
# mpd_password tinker_bell

# Print everything to console?
# out_to_console no

# mail spool
mail_spool $MAIL

# Update interval in seconds
update_interval 5.0

# This is the number of times Conky will update before quitting.
# Set to zero to run forever.
total_run_times 0

# Create own window instead of using desktop (required in nautilus)
own_window no

# If own_window is yes, you may use type normal, desktop or override
# own_window_type normal

# Use pseudo transparency with own_window?
# own_window_transparent yes

# If own_window_transparent is set to no, you can set the background colour here
# own_window_colour hotpink

# If own_window is yes, these window manager hints may be used
# own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
minimum_size 280 5

# Draw shades?
draw_shades no

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no

# Draw borders around graphs
draw_graph_borders no

# Stippled borders?
# stippled_borders 8

# border margins
# border_margin 4

# border width
# border_width 1

# Default colors and also border colors
default_color white
default_shade_color black
default_outline_color black

# Text alignment, other possible values are commented
#alignment top_left
alignment top_right
#alignment bottom_left
#alignment bottom_right
#alignment none

# Gap between borders of screen and text
# same thing as passing -x at command line
gap_x 12
gap_y 12

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

# number of cpu samples to average
# set to 1 to disable averaging
cpu_avg_samples 2

# number of net samples to average
# set to 1 to disable averaging
net_avg_samples 2

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale no


# Add spaces to keep things from moving about?  This only affects certain objects.
use_spacer no

#   mldonkey_hostname     Hostname for mldonkey stuff, defaults to localhost
#   mldonkey_port         Mldonkey port, 4001 default
#   mldonkey_login        Mldonkey login, default none
#   mldonkey_password     Mldonkey password, default none

# boinc (seti) dir
# seti_dir /opt/seti

# Allow for the creation of at least this number of port monitors (if 0 or not set, default is 16) 
#min_port_monitors 16

# Allow each port monitor to track at least this many connections (if 0 or not set, default is 256)
#min_port_monitor_connections 256

# none, xmms, bmp, audacious, infopipe (default is none)
xmms_player none

# variable is given either in format $variable or in ${variable}. Latter
# allows characters right after the variable and must be used in network
# stuff because of an argument

# stuff after 'TEXT' will be formatted on screen

TEXT
$nodename - $sysname $kernel on $machine
$stippled_hr
${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg
${color lightgrey}CPU Usage:${color #cc2222} $cpu% ${cpubar}
${color red}${cpugraph 0000ff 00ff00}
${color lightgrey}RAM Usage:$color $mem/$memmax - $memperc% ${membar}
${color lightgrey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar}
${color lightgrey}Processes:$color $processes  ${color grey}Running:$color $running_processes
$color$stippled_hr
${color lightgrey}Networking:
 Down:${color #8844ee} ${downspeed eth0} k/s${color lightgrey} ${offset 80}Up:${color #22ccff} ${upspeed eth0} k/s
${color #0000ff}${downspeedgraph eth0 32,150 ff0000 0000ff} ${color #22ccff}${upspeedgraph eth0 32,150 0000ff ff0000}
${color lightgrey}File systems:
 / $color${fs_used /}/${fs_size /} ${fs_bar /}
${color #88aadd}MPD: ${alignc}$mpd_artist - $mpd_title
${color #88aadd}$mpd_bar
${color #88aadd}${alignc}$mpd_status
${color}Name              PID     CPU%   MEM%
${color #ddaa00} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
${color}Mem usage
${color #ddaa00} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1}
${color lightgrey} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2}
${color lightgrey} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3}
${tail /var/log/Xorg.0.log 3 30}
$stippled_hr
${color #ddaa00}Port(s)${alignr}#Connections   
$color Inbound: ${tcp_portmon 1 32767 count}  Outbound: ${tcp_portmon 32768 61000 count}${alignr}ALL: ${tcp_portmon 1 65535 count}
${color #ddaa00}Inbound Connection ${alignr} Local Service/Port$color
 ${tcp_portmon 1 32767 rhost 0} ${alignr} ${tcp_portmon 1 32767 lservice 0}
 ${tcp_portmon 1 32767 rhost 1} ${alignr} ${tcp_portmon 1 32767 lservice 1}
 ${tcp_portmon 1 32767 rhost 2} ${alignr} ${tcp_portmon 1 32767 lservice 2}
 ${tcp_portmon 1 32767 rhost 3} ${alignr} ${tcp_portmon 1 32767 lservice 3}
 ${tcp_portmon 1 32767 rhost 4} ${alignr} ${tcp_portmon 1 32767 lservice 4}
 ${tcp_portmon 1 32767 rhost 5} ${alignr} ${tcp_portmon 1 32767 lservice 5}
${color #ddaa00}Outbound Connection ${alignr} Remote Service/Port$color
 ${tcp_portmon 32768 61000 rhost 0} ${alignr} ${tcp_portmon 32768 61000 rservice 0}
 ${tcp_portmon 32768 61000 rhost 1} ${alignr} ${tcp_portmon 32768 61000 rservice 1}
 ${tcp_portmon 32768 61000 rhost 2} ${alignr} ${tcp_portmon 32768 61000 rservice 2}
 ${tcp_portmon 32768 61000 rhost 3} ${alignr} ${tcp_portmon 32768 61000 rservice 3}
 ${tcp_portmon 32768 61000 rhost 4} ${alignr} ${tcp_portmon 32768 61000 rservice 4}
 ${tcp_portmon 32768 61000 rhost 5} ${alignr} ${tcp_portmon 32768 61000 rservice 5}

Liens

http://conky.sourceforge.net/

tutoriel pour conky : http://www.pcinpact.com/forum/index.php?showtopic=97542 "lien mort, trouver une alternative simple".

(version archivé du tutoriel) https://web.archive.org/web/20100521020853/http://www.pcinpact.com/forum/index.php?showtopic=97542

documentation conky : https://doc.ubuntu-fr.org/conky

Bureau virtuel

Ajouter/Enlever/Renommer des bureaux

Fichier init

Vous devez ouvrir le fichier init : si vous ajoutez des bureaux, vous constaterez que ceux-ci n'ont pas de noms.

Pour les renommer, rendez-vous dans :

sudo nano ~/.fluxbox/init

Les 2 paramètres qui nous concernent sont :

session.screen0.workspaces:	4
session.screen0.workspaceNames:	one,two,three,four,

Mettre un outil graphique pour visualiser les bureaux

Pour avoir une interface graphique pour bureau façon gnome/kde/XFCE, il vous faudra installer un paquet spécifique.

fbpager

Vous avez sans doute dejà testé Gnome ou KDE. Vous vous êtes peut être servi des 4 bureaux virtuels qui sont assez pratiques. Je dis 4 mais il est possible d'en mettre 1 comme 32, à vous de voir. Pour avoir la même chose sous fluxbox, il vous suffit d'installer fbpager :

sudo apt-get install fbpager

Puis par la suite, de créer, s'il n'est pas dejà présent, le fichier /.fluxbox/fbpager. Voici le contenu du mien :

  fbpager.alpha: 30
  fbpager.x: 10
  fbpager.y: 0
  fbpager.workspace.width: 40
  fbpager.workspace.height: 40
  fbpager.workspacesPerRow: 6400
  fbpager.followDrag: false
  fbpager.followMove: false
  fbpager.changeWorkspaceButton: 11
  fbpager.raiseWindowButton: 2
  fbpager.lowerWindowButton: 3
  fbpager.closeWindowButton: 3 3 1
  fbpager.exitButton: 1 3 3
  fbpager.nextWorkspaceButton: 4
  fbpager.prevWorkspaceButton: 5
  fbpager.moveInWorkspaceButton: 1
  fbpager.dragToWorkspaceButton: 2
  fbpager.align: LeftToRight
  fbpager.color: white
  fbpager.windowColor: green
  fbpager.focusedWindowColor: blue
  fbpager.windowBorderColor: green
  fbpager.backgroundColor: black
  fbpager.currentBackgroundColor: yellow
  fbpager.multiClickTime: 250
  fbpager.icons: false

Par la suite vous pourrez personnaliser entièrement fbpager. Référez-vous à la documentation.

Les raccourcis clavier

Sous Fluxbox, la configuration des raccourcis clavier a été, selon moi, très bien pensée. Tous vos raccourcis clavier sont indiqués dans le fichier ~/.fluxbox/keys sous la forme suivante :

Code_Touche :action

Par exemple, si vous voulez que l'action des touches Alt–T ouvre gnome-terminal voilà ce que cela donnerait :

Mod1 T :ExecCommand /usr/bin/gnome-terminal

Le nom des touches

Pour ce qui est du Mod1 c'est le nom de Alt pour X11, voici la liste des noms de touches « spéciales » :

Nom de la touche Nom X11
Alt Mod1
Ctrl, Contrôle, Str Control
Super, Méta, Win, Windows Mod4
Maj, Majuscule Shift
Print Screen "imprime écran" Print

Comment connaître le nom des autres touches me direz-vous, par exemple les touches multimédia ? Il suffit pour cela de trouver son keycode, avec xev. Lancez xev en ligne de commande, puis appuyez sur une touche, par exemple Alt–←, vous devriez avoir un résultat de ce genre :

  KeyRelease event, serial 30, synthetic NO, window 0x1000001,
      root 0x4c, subw 0x0, time 1233256903, (-34,357), root:(715,390),
      state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
      XLookupString gives 0 bytes:

Ne vous préoccupez pas de tout ce qui est écrit mais seulement de cette partie :

  keycode 64 (keysym 0xffe9, Alt_L)

On peut voir ici que le keycode de la touche Alt_L est 64, donc par exemple si vous avez des touches multimédia dont le keycode est par exemple 153, et que l'on veuille qu'il change de chanson dans xmms, voici ce que cela donnerait :

  None 153 :ExecCommand xmms -f

N'oubliez pas que le None est important ici.

Les actions

Pour le moment veuillez consulter la page prévue à cet effet dans la documentation.

Voici un exemple de fichier keys :

Mod1 Tab :NextWindow
Mod1 Shift Tab :PrevWindow
Mod1 T :ToggleDecor
Mod1 F1 :Workspace 1
Mod1 F2 :Workspace 2
Mod1 F3 :Workspace 3
Mod1 F4 :Workspace 4
Control Mod1 Right :NextWorkspace
Control Mod1 Left :PrevWorkspace
None 233 :NextWorkspace
None 234 :PrevWorkspace
Control Shift F1 :SendToWorkspace 1
Control Shift F2 :SendToWorkspace 2
Control Shift F3 :SendToWorkspace 3
Control Shift F4 :SendToWorkspace 4
Mod1 N :Minimize
Mod1 M :MaximizeWindow
Mod1 C :Close

Configuration avancée

Le menu Fluxbox

Les menus sont configurés automatiquement, et la plupart des applications apparaitront dans les menus automatiquement. Malgré tout vous pouvez modifier manuellement la liste.

Sachez avant tout que les fichiers de configuration de Fluxbox se trouvent dans ~/.fluxbox, ou si vous préférez, dans /home/votre_nom/.fluxbox/. Il y a aussi des fichiers qui se trouvent dans /usr/share/fluxbox/, mais aussi /etc/X11/fluxbox/. Enfin, si vous devez en modifier un, préférez ceux de votre ~/.fluxbox/ et s'ils ne s'y trouvent pas, alors modifiez les autres, mais attention, avec précaution ! Par défaut, ce répertoire contient :

  apps/
  init
  keys
  menu
  slitlist
  startup
  styles/

S'il vous manque un de ces fichiers, ne vous inquiétez pas, j'ai sans doute rajouté ici un fichier qui sera créé par Fluxbox ultérieurement. Maintenant, vérifions que le menu est bien pris en compte, pour cela placez-vous dans ~/.fluxbox/ et faites :

grep session.menuFile: init

Puis vérifiez que le fichier indiqué est bien votre ~/.fluxbox/menu. C'est ce fichier que vous pourrez modifier à votre guise pour personnaliser votre menu.

Structure du menu

Le fichier menu commence impérativement par:

    [begin] (Nom_du_menu) 

Pour ajouter une application de votre choix, la syntaxe est très simple :

    [exec] (nom_du_programme) {commande} <icon_path>

Donc par exemple si vous voulez créer un lien vers gedit il vous suffira de mettre:

    [exec] (Gedit) {gedit}

Comme vous aimez personnaliser votre menu, vous serez heureux d'apprendre que vous pouvez ajouter un logo correspondant. Pour cela vous devez d'abord convertir votre image au format XPM. Vous pouvez utiliser convert par exemple (provient de imagemagick) :

  convert image.png image.xpm

Pour ajouter votre image au lien correspondant, mettez-vous à la ligne du lien et modifiez-le de la façon suivante :

    [exec] (Gedit) {gedit} </usr/share/pixmaps/gedit-icon.xpm>

Après vous avez la possibilité de créer des sous-menus. La syntaxe est très simple encore une fois :

    [submenu] (Nom_du_menu)
        [exec] ........
    [end]

Voilà, c'est aussi simple que ça. Ensuite, vous aurez la possbilité de rajouter un séparateur:

    [separator] () {}

Pour mettre un bouton Redémarrer :

    [restart] (Redémarrer) 

Le sous-menu de configuration de Fluxbox :

    [config] (Configuration)

Le sous-menu pour choisir le thème :

    [submenu] (Styles) {}
        [stylesdir] (/usr/share/fluxbox/styles)
        [stylesdir] (~/.fluxbox/styles)

Le fichier de menu se termine par :

[exit] (Quitter)

Vous avez plein d'autres options bien sûr, mais ne vous inquiétez pas, le menu est généré de base, et si vous ne voulez pas le modifier vous n'avez qu'à simplement ignorer cette partie.

Voici un morceau de mon menu :

[exec] (DevHelp) {/usr/bin/devhelp} </usr/share/pixmaps/devhelp-debian.xpm>
[exec] (eric) {/usr/bin/eric3} </usr/share/eric/pixmaps/eric-icon.xpm>
[exec] (GDB) { x-terminal-emulator -T "GDB" -e /usr/bin/gdb} <>
[exec] (Glade) {/usr/bin/glade} </usr/share/pixmaps/glade.xpm>
[exec] (Kiki) {/usr/bin/kiki} </usr/share/pixmaps/kiki.ico>
[exec] (pycrust) {/usr/bin/pycrust} <>
[exec] (pyshell) {/usr/bin/pyshell} <>
[exec] (Python (v2.4\)) { x-terminal-emulator -T "Python (v2.4)" -e /usr/bin/python2.4} </usr/share/pixmaps/python2.4-32.xpm>
[exec] (Pyunit (2.4\)) {unittestgui.python2.4} <>
[exec] (SPE (Stani's Python Editor\)) {/usr/bin/spe} </usr/share/pixmaps/spe.png>

Les astuces

Vous étiez sûrement en train de vous dire qu'un menu qui se régénère à chaque boot de Fluxbox ne serait pas trop demander ;-). Alors il existe pour cela plusieurs astuces, dont un script fourni de base avec fluxbox :

Script pour générer le menu

Pour cela suivez ces instructions :

cd /usr/share/doc/fluxbox
gzip -d fluxbox-generate_menu.gz
cp fluxbox-generate_menu /usr/bin

Puis rendez le fichier exécutable :

chmod a+x /usr/bin/fluxbox-generate_menu

Vous pouvez désormais générer votre menu :

cd
fluxbox-generate_menu

Pour lancer cette commande dès le lancement de fluxbox référez-vous à la partie Startup. Malgré tout, ce script génère un menu que je n'apprécie pas trop alors voilà la seconde méthode :

Générer le menu (2)

Avant toute chose nous aurons besoin d'installer le paquet menu (dépôt universe pour Dapper) :

sudo apt-get install menu

Puis éditez le fichier ~/.fluxbox/menu

et remplacez son contenu par celui-ci :

[begin] (-Fluxbox-)
[include] (~/.fluxbox/menudefs.hook)
[separator] () {}
[config] (Configuration)
[submenu] (Styles) {}
          [stylesdir] (/usr/share/fluxbox/styles)
          [stylesdir] (~/.fluxbox/styles)
[end]
     [workspaces] (Workspaces)
[separator] () {}
     [restart] (Restart)
     [exit] (Exit)
[separator] () {}
          [exec] (run) {fbrun}
[end]

Comme vous l'aurez remarqué, la ligne importante ici est :

[include] (~/.fluxbox/menudefs.hook)

Ce fichier se génère avec la commande:

update-menus

Voici le résultat :

FIXME mettre une capture (lien mort …)

P.-S. : Vous pouvez aussi configurer votre menu avec le logiciel Fluxmenu fourni avec le paquet Fluxconf (disponible dans Universe) disposant d'une interface graphique.

Voir aussi


Contributeurs : gapz , …