la session fluxbox
fluxbox est un gestionnaire de fenêtre en mode 'floating' pour X. il est basé sur le code de blackbox et hérite de ses propriétés en ajoutant des fonctionnalités
- menu configurable
- onglets des fenêtres configurables
- barre de titre configurable (placement des boutons, nouveaux boutons, etc.)
- changement d'espace de travail (workspace) avec la roulette de la souris
- prise en charge des applications dockables KDE et GNOME
- Un capteur de touche pour les combinaisons style emacs
- Un slit : une fenêtre qui affiche les applications dockables (dock apps)
- panel intégré avec indicateur de bureau, liste des clients, systray et horloge.
- configurable depuis le menu
screenshot
lancement
fluxbox est lancé par le script ~/bin/start/fluxbox_start.sh.
pour changer vos applications lancées au démarrage, éditer ce fichier: vim bin/start/fluxbox_start.sh ou depuis le menu fluxbox:section config:éditer le script fluxstart
composants
fluxbox est un gestionnaire de fenêtre très complet, un menu, un panel, un systray.. je n'ai ajouté qu'un conky
configuration
pour conky, il faut éditer son conkyrc: vim .conky/conkyrc_fluxbox ou depuis le menu fluxbox section config:conky.
configuration de fluxbox
fluxbox se configure depuis plusieurs fichiers situés dans votre ~/.fluxbox. une partie de cette configuration s'effectue directement depuis le menu fluxbox:section config:fluxbox:configurer fluxbox. les entrées de menu sont très détaillées et écrivent dans le fichier ~/.fluxbox/init
pour le reste, il faut éditer les fichiers de votre ~/.fluxbox:
- le fichier apps permet de déterminer les propriétés de certaines applications.
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
- name - nom de la fenêtre (première partie de WM_CLASS)
- class - classe de la fenêtre (seconde partie de WM_CLASS)
- title - titre de la fenêtre ( WM_NAME )
- role - rôle de la fenêtre ( WM_WINDOW_ROLE )
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':
- [Workspace] {number}: ouverture de l'applications sur un bureau spécifique. le 'number' commence à 0
- [Jump] {bool}: se rendre au bureau spécifié, à utiliser avec [Workspace]
- [Head] {number}: écran d'ouverture de l'application
- [Layer] {number}: niveau de profondeur de la fenêtre.valeur 2-au-dessus du dock, 4-au niveau du dock, 6-au-dessus, 8-normal, 10-en-dessous, 12-sur le bureau.
- [Dimensions] {width height}: taille de la fenêtre avec hauteur largeur en pixels
- [Position] (anchor) {X Y}: placement de la fenêtre. 'anchor' est optionnel et peut être TopLeft, Left, BottomLeft, Top, Center, Bottom, TopRight, Right ou BottomRight pour déterminer le point de départ de {X Y}, en pixels. si 'anchor' est omit, {X Y} sont comptés à partir du coin supérieur gauche.
- [Deco] {value}: configure le type de décoration des fenêtres. les valeurs possibles:
- NORMAL: décoration classique
- NONE: pas de décorations, sauf en onglet
- Border: simple bordure comme décoration
- TINY: barre de titre avec un bouton 'iconifier'
- TOOL: uniquement la barre de titre
- [Shaded] {bool}: la fenêtre est ouverte 'enroulée' sur la barre de titre
- [Tab] {bool}: la fenêtre a des onglets
- [FocusNewWindow] {bool}: le fenêtre prends le focus, ou pas
- [FocusHidden] {bool}: si true, la fenêtre n'apparait pas dans la liste des fenêtres du menu
- [IconHidden] {bool}: si true, la fenêtres n'apparait pas dans le boite à icone de la barre de tache
- [Hidden] {bool}: [FocusHidden]+[IconHidden]
- [Sticky] {bool}: visible sur tous les bureaux, ou pas
- [Minimized] {bool}: la fenêtre démarre minimisée
- [Maximized] {value}: la fenêtre apparait maximisée. 'value' peut être {yes} maximisée, {horz} maximisation horizontale, {vert} maximisation verticale ou {none} non maximisée.
- [Fullscreen] {bool}: fenêtre en plein écran, sans décorations
- [Close] {bool}: sauver les 'settings' lors de la fermeture de la fenêtre.
- [Alpha] {value [value]}: opacité de la fenêtre focus|unfocus entre 0 et 255(opaque).
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:
- Name: expression, correspond à CLASSNAME (la première partie de WM_CLASS depuis xprop).
- Class: expression, correspond à CLASSCLASS (la seconde partie de WM_CLASS depuis xprop).
- Title: expression, correspond à WM_NAME depuis xprop).
- Role: expression, correspond à WM_WINDOW_ROLE depuis xprop(1)).
- Transient: yes/no, correspond à une fenêtre de transition (généralement une fenêtre popup).
- Maximized: yes/no, correspond à une fenêtre maximisée ou non.
- Minimized: yes/no, correspond à une fenêtre minimisée ou non.
- Shaded: yes/no, correspond à une fenêtre enroulée ou non.
- Stuck: yes/no, correspond à une fenêtre sticky (visible sur tous les bureaux) ou non.
- FocusHidden: yes/no, correspond à une fenêtre à laquelle on a demandé de ne pas apparaitre dans la liste des fenêtres, ou non.
- IconHidden: yes/no, correspond à une fenêtre à laquelle on a demandé de ne pas apparaitre dans la liste des icones, ou non.
- Urgent: yes/no, correspond à une fenêtre urgente.
- Workspace: un nombre, correspond au numéro du bureau dans lequel la fenêtre se trouve. les bureaux commencent à 0. vous pouvez utiliser [current] pour sélectionner les fenêtres du bureau actif.
- WorkspaceName: expression, correscpond au nom du bureau dans lequel la fenêtre se trouve.
- Head: un nombre, correpond au numéro de l'écran sur lequel la fenêtre se trouve. vous pouvez utiliser [mouse] pour sélectionner les fenêtres sur l'écran où se trouve la souris.
- Layer: expression, correspond au nom du niveau de la fenre: AboveDock, Dock, Top, Normal, Bottom ou Desktop
- Screen: un nombre, correspond au numéro de l'écran actif.
- @XPROP: expression, correspond à toute expression issue de xprop.
exemples:
- afficher les deux premières fenêtres nommées *term ou *Term sur le bureau 1:
[app] (name=.*[tT]erm) {2}
[Workspace] {1}
[end]
- affiche geany centré avec une taille spécifique, et ajuster cette valeur à la fermeture de l'application:
[app] (name=geany)
[Dimensions] {1022 747}
[Position] (CENTER) {0 0}
[Close] {yes}
[end]
- pour luakit, on se place d'abord sur le bureau 1 puis on lance l'application.
[app] (name=luakit)
[Workspace] {1}
[Jump] {yes}
[end]
- lancer toutes les sessions de aterm sans décorations de fenêtres.
[app] (name=aterm)
[Deco] {NONE}
[end]
- un groupe formé par les fenêtres de gimp s'ouvrent en derrière les autres fenêtres.
[group]
[app] (name=gimp) (role=gimp-dock)
[app] (name=gimp) (role=gimp-toolbox)
[Layer] {4}
[end]
pour plus de renseignements, consulter le man :)
- le fichier keys détermine vos raccourcis clavier/souris
pour le configurer, éditer le fichiervim .fluxbox/keys ou depuis le menu fluxbox:section config:fluxbox:keys.
la syntaxe est simple:
- une commande: 'Mod1 p :Exec fbrun'
- une action de la souris sur le bureau: 'OnDesktop Mouse1 :HideMenus'
- une série d'actions: OnWindow Mod1 Mouse1 :MacroCmd {Raise} {Focus} {StartMoving}
la liste complète des commandes acceptés par le fichier keys:man fluxbox-keys
- le fichier menu configure votre menu fluxbox
pour le configurer, éditer le fichiervim .fluxbox/menuou depuis le menu fluxbox:section config:fluxbox:menu.
la syntaxe est simple:
[tag] (label or filename) {command or filename}
voici les [tag] possibles:
[begin] (label)
debut de menu, obligatoire si vous voulez que votre menu soit pris
en compte. sinon, le menu par défaut sera affiché.
[end]
fin de menu, ou de sous-menu.
[exec] (label) {command}
insérer une commande dans le menu, la commande est exécutée lors du click.
[exit] (label)
quitter fluxbox.
[include] (file-or-directory-name)
inclure un fichier dans le menu. chemin absolu ou relatif (~/)
si le chemin spécifié est un dossier, tous les fichiers contenus
seront lus.
[nop] (label)
insérer une ligne sans commande, utilisé pour organiser le menu en sections.
[separator]
insérer un séparateur graphique.
[style] (label) {filename}
insérer une ligne qui, une fois sélectionnée, applique le theme contenu
dans filename.
[stylesmenu] (label) {directory}
liste tous les fichiers de style contenus dans le 'directory' et affiche
un menu de titre 'label' pour y accéder.
[stylesdir] (directory)
liste tous les fichiers de style contenus dans le 'directory' et affiche
un sous-menu pour y accéder.
[submenu] (label) {menutitle}
créer un sous-menu, doit finir par [end].
[reconfig] (label)
relire le style et le menu. utile pour recharger fluxbox dans le relancer.
[restart] (label) {command}
redémarrer fluxbox. si 'command' est spécifié (généralement un autre
gestionnaire de fenêtre), fluxbox exit puis lance la commande.
[config] (label)
sous-menu de configuration par défaut de fluxbox.
[wallpapers] (directory) {command}
cette entrée vous permet de lister les images de 'directory', puis
de créer un sous-menu vous permettant de choisir votre wallpaper qui
sera affiché par fbsetbg.
autre usage: cette entrée liste aussi tout autre type de fichier:
ex, choisir une playlist:[wallpapers] (~/Music/Playlists) {xmms}.
[workspaces] (label)
insérer un sous-menu pour changer de bureau.
raccourcis clavier/souris
configuré par le fichier ~/.fluxbox/keys, voici les raccourcis de la session fluxbox du livarp:
menus:
- menu fluxbox: clic-droit sur le bureau
- menu des fenêtres: Alt+Space
- fbrun: Alt+p ou Alt+F2
- dmenu: Alt+d
- fermer les menus: clic-gauche sur le bureau
control:
quitter fluxbox: Ctrl+Alt+suppr ou depuis le menu fluxbox:exit
fenêtres:
- fermer le client: Alt+q
- client précédent/suivant: Alt(+Shift)+Tab
- maximiser/restaurer le client: Alt+F10
- minimiser/restaurer le client: Alt+F9
- plein écran: Alt+F11
- déplacer la fenêtre: Alt+clic-gauche
- redimensionner le client: Alt+clic-droit
- enrouler la fenêtre: double-clic-gauche sur la barre de titre
- inclure dans un onglet: clic-central sur la barre de titre
- onglet précédent/suivant: Super(+Shift)+Tab
- onglet 'n': Super+'n'
navigation:
- bureau précédent/suivant: Ctrl+Gauche/Droite ou molette Haut/Bas sur le bureau ou la barre de fluxbox.
- bureau 'n': Ctrl+F'n'
- envoyer au bureau 'n': Super+F'n'
- envoyer et afficher le bureau 'n': Ctrl+Super+F'n'
lanceurs:
- lanceur de terminal par défaut: Ctrl+Enter, Super+Enter ou Alt+F1
- lancer ranger: Alt+r
- lancer rox-filer: Alt+Shift+r
- lancer firefox: Alt+w
- lancer vim: Alt+e
- lancer geany: Alt+Shift+e
- lecteur de musique: Alt+z
- control du volume: Alt+v