noDE -- fluxbox -- doc

noDE aka no Desktop Environment ...
quelques informations à propos de fluxbox :
sources : doc thuban cc-by-sa & 3hg team

présentation

Fluxbox est un gestionnaire de fenêtre extrêmement léger et rapide. Dans la lignée des *box, il peut à lui tout seul constituer un environnement de bureau très complet. Par ailleurs, il présente quelques avantages intéressants devant le plus connu openbox.

Quelques avantages non exhaustifs :

Quelques inconvénients :

fluxbox sur nakeDeb

nakeDeb embarque une session préconfigurée de fluxbox qui répond à la documentation générale en y ajoutant quelques raccourcis clavier. "Mod1" = Alt, "Mod4" = logo m$

les menus :

les applications :

control :

un peu de tiling :

la session fluxbox intègre également l'afficheur d'information conky. pour le configurer, direction le menu fluxbox > configuration > conky > éditer ou directement depuis son emplacement ~/.fluxbox/conkyrc_fluxbox.

plus de détails à propos de conky avec votre man conky.

la session fluxbox profite aussi d'un petit programme codé par prx, le fluxbox-automenu, permettant de lister les applications installées (un genre de menu auto-généré comme celui que vous trouvez dans les autres DE) et de les afficher dans le menu principal de fluxbox.

configuration graphique

Fluxbox permet une configuration fine depuis son menu : clic-droit sur le bureau > menu > configuration > fluxbox... les entrées sont explicites.

configuration manuelle

Fluxbox peut être configuré via le menu accessible par un clic-droit sur le bureau. La barre des tâches peut être configurée de la même façon. Cependant, nous pouvons configurer fluxbox encore un peu plus.

Démarrage automatique de programmes

Pour lancer des programmes automatiquement au démarrage de fluxbox, complétez le fichier ~/.fluxbox/startup. Une seule règle : ne pas oublier d'ajouter un '&' après chaque commande, sauf la dernière "fluxbox".

Exemple : le startup script de la nakeDeb-0.1

#!/bin/sh
#
# fluxbox startup-script:
#
# Lines starting with a '#' are ignored.

# Change your keymap:
#xmodmap "/home/human/.Xmodmap"

# Applications you want to run with fluxbox.
# MAKE SURE THAT APPS THAT KEEP RUNNING HAVE AN ''&'' AT THE END.
#
# unclutter -idle 2 &
# wmnd &
# wmsmixer -w &
# idesk &
#
# Debian-local change:
#   - fbautostart has been added with a quick hack to check to see if it
#     exists. If it does, we'll start it up by default.
which fbautostart > /dev/null
if [ $? -eq 0 ]; then
    fbautostart
fi
# read ~.Xresources file
xrdb ~/.Xresources &

# set ctrl_alt_bksp as session-killer
setxkbmap -option terminate:ctrl_alt_bksp &

# set startscreen
if [ -e ~/.fehbg ]; then
    sh ~/.fehbg &
else
    feh --bg-fill /usr/share/backgrounds/nakedeb.jpg &
fi

# fluxbox automenu by thuban
sleep 3s && rm -f ~/.fluxbox/automenu/* && fluxbox-automenu \
    && fluxbox-update_configs &

# authentification
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &

# monitor
sleep 7s && conky -c ~/.fluxbox/conkyrc_fluxbox &

# eyecandy
sleep 3s && eyecandy -l &

# And last but not least we start fluxbox.
# Because it is the last app you have to run it with ''exec'' before it.
exec fluxbox

# or if you want to keep a log:
# exec fluxbox -log "/home/$USER/.fluxbox/log"

Raccourcis clavier et souris

Vous pouvez configurer des raccourcis clavier et souris dans le fichier ~/.fluxbox/keys. La syntaxe est la suivante :

Modificateur touche :commande [arguments...]

Sachez aussi que vous pouvez appliquer des conditions sur ces raccourcis, mais cet usage avancé, permettant de contrôler totalement votre environnement, nécessite une lecture du lien ci-dessous.

La liste des commandes est disponible ici ou depuis votre terminal man fluxbox-keys.

Règles sur les fenêtres.

vous pouvez remplir ce fichier par le menu des fenêtres en spécifiant 'se souvenir...'. mais toutes les options ne sont pas accessibles depuis le menu. pour plus de configuration, il faut éditer le fichier ~/.fluxbox/apps. la syntaxe est simple et quelques exemples vous seront donnés en fin de section :

[app]/[group] (app-name) {count - optional}
	[Property1]  {value1}
	[Property2]  {value2}
		  ...
[end]

une application est identifiée grâce à la commande xprop et peut être déterminé par

l'option [app]...[end] détermine les propriétés d'une seule application.
cette section débute avec '[app] (pattern) {count}' avec 'pattern' qui peut être un ou plusieurs identifiants (voir la section 'pattern'). 'count' est optionnel et détermine le nombre maximum de fenêtres concernées par la règle. si il est omit, toutes les fenêtres répondant à 'pattern' seront concernées.
cette première ligne est suivie d'une série de propriétés (voir la section 'settings') et se termine par [end].

l'option [group]...[end] détermine les propriétés de plusieurs application pour les regrouper en onglets.
cette section débute avec '[group] (pattern) {count}' avec 'pattern' optionnel qui peut être un ou plusieurs identifiants (voir la section 'pattern'). 'count' est optionnel et détermine le nombre maximum de fenêtres concernées par la règle. si il est omit, toutes les fenêtres répondant à 'pattern' seront concernées.
cette première ligne est suivie d'autant de ligne [app] que d'applications que vous souhaitez grouper. cette section se termine par [end].

les settings sont les propriétés appliqués aux fenêtres répondant à 'pattern'
le format est simple '[setting] {value}'
voici la liste des 'settings' :

les pattern sont les caractéristiques désignant les fenêtres.
une 'pattern' ressemble à ça:

([propertyname[!]=]regexp)

les propriétés successives sont placées entre ().
si 'propertyname' est omit, il est remplacé par 'name'.
'propertyname' n'est pas sensible à la casse, tandis que regexp l'est.
si vous spécifiez plusieurs regexp, le "AND" est implicite: toutes les 'pattern' doivent correspondre pour que la propriété s'applique.
on utilise '=' pour égal ou '!=' pour inégal.
les 'propertyname' acceptés par fluxbox:

exemples :

Un menu déjà bien rempli est proposé par défaut sous debian. Cependant, vous pourriez souhaiter créer votre propre menu. Ici aussi, la syntaxe est des plus simple :

[etiquette] (titre) {commande} <'icone'>

Vous pouvez donc créer des entrées pour lancer une commande, par exemple :

[exec] (Internet) {firefox}

Vous pouvez aussi créer des sous-menus. Attention, dans ce cas, il faudra ensuite ajouter '[end]' :

[submenu] (Capture d'écran)
[exec] (... maintenant) {scrot -e 'mv $f ~/shots'}
[exec] (... avec sélection) {scrot -s -e 'mv $f ~/shots'}
[exec] (... dans 10s) {scrot -s -d 10 -e 'mv $f ~/shots'}
[exec] (... dans 5s) {scrot -s -d 5 -e 'mv $f ~/shots'}
[exec] (... puis upload) {~/bin/bin/sscrot}
[end]

Il existe des sections particulières. En voici quelques unes, mais je vous invite à lire la section dédiée sur le site officiel :

Configurer la barre de tâches.

Afin de changer l'ordre des éléments présent dans la barre des tâches (choix du bureau, liste des fenêtres, horloge, systray), éditez le fichier

~/.fluxbox/init

Ensuite, modifiez à votre guise la ligne suivante :

session.screen0.toolbar.tools: prevworkspace, workspacename, nextworkspace, prevwindow, nextwindow, iconbar, systemtray, clock

Ce fichier contient de nombreuses options à modifier à souhait.
astuce : pour insérer un bouton de menu dans la barre de tâches, ajouter RootMenu dans la ligne de configuration de la toolbar.

Les styles

Pour installer de nouveaux styles, placez-les dans ~/.fluxbox/styles. Cependant, si vous ne voulez pas que le style impose certaines options, alors définissez les vôtres dans le fichier ~/.fluxbox/overlay. Par exemple, pour choisir la police, ne pas appliquer de fond d'écran et choisir la taille de la barre :

background: none
*font: DejaVu Sans -9
toolbar.height: 20