LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


openbox

OpenBox

Pour comprendre ce qu'est réelement Openbox, il faut saisir la différence entre un gestionnaire de fenêtres et un environnement de bureau.

Un gestionnaire de fenêtres est un programme qui dessine une “boite” dans laquelle un programme se lance. Un gestionnaire de fenêtres contrôle la façon dont s'affiche la fenêtre du programme, son apparence et son comportement. Il configure les décorations des fenêtres et vous permet de les déplacer, les masquer, les redimensionner, les iconifier et les fermer. Il controle quoi faire lors de la pression d'un bouton ou d'une touche.

Un environnement de bureau contrôle l'intégralité du bureau. il fournit une barre de tâches, une zone de notification, un gestionnaire de connexion graphique, des menus additionnels et parfois un économiseur d'écran et des icones de bureau. Il peut inclure un gestionnaire de fichiers, un éditeur de texte et certains programmes accessoires.

Openbox est un gestionnaire de fenêtres, pas un environnement de bureau. Openbox se préoccupe de la gestion de vos fenêtres à l'écran – rien d'autre. Cela signifie qu'installer Openbox ne vous donne pas accès à un menu pour choisir votre fond d'écran, une barre de tâche ni un “panel” intégré. Il vous donne en revanche l'opportunité d'ajouter d'autres programmes pour exécuter ces tâches – et souvent de manière plus configurable pour votre bureau.

Openbox peut s'utiliser seul, sans environnement de bureau, ou en remplacement du gestionnaire de fenêtres intégré dans un environnement de bureau.

installation

Pour Debian, la façon la plus simple d'installer Openbox est de passer par l'outil avancé de gestion de paquets APT.
Obtenez les droits 'root' puis lancez cette commande dans un terminal:

# apt-get install openbox

Normalement, un menu sera disponible au clic-droit sur le bureau.
Si toutefois, le menu Openbox n'est pas auto-généré avec le DebianMenu, vous devrez installer le paquet menu:

# apt-get install menu

lancement

Depuis un gestionnaire de connexion graphique

Pour lancer Openbox depuis KDM ou GDM, choisissez simplement 'openbox' dans le menu de sélection de session.
Pour lancer Openbox depuis XDM vous devriez éditer un fichier .xsession dans votre dossier utilisateur et y ajouter cette ligne:

$ exec openbox-session

Depuis la ligne de commande

Pour lancer Openbox depuis le prompt tty en ligne de commande, éditez votre fichier .xinitrc et ajoutez-y cette ligne:

$ exec openbox-session

ou pour lancer une session dbus

$ exec ck-launch session dbus-launch openbox-session

Note: vous n'avez pas besoin d'utiliser cette option si vous n'installez que Openbox sur votre système. lancez simplement startx.

Raccourcis clavier

liste des raccourcis clavier usuels d'Openbox:

KeysAction
Alt-F4 Ferme la fenêtre active
Alt-Space Affiche le menu client de na fenêtre active
Alt-Tab Circule entre les fenêtres du bureau
Alt-Shift-Tab Circule entre les fenêtres dans le sens inverse
Control-Alt-Tab Circule entre les fenêtres du bureau et du panel
Windows-D Masque toutes les fenêtres pour afficher le bureau
Windows-E Lancer le gestionnaire Konqueror (juste un exemple pour montrer comment lancer une application depuis un racourcis clavier)
Alt-Escape Retire le focus de la fenêtre active et passe la dernière fenêtre visitée au premier plan
Windows-F1 Aller sur le premier espace de travail
Windows-F2 Aller sur le deuxième espace de travail
Windows-F3 Aller sur le troisième espace de travail
Windows-F4 Aller sur le quatrième espace de travail
Control-Alt-Left Ouvre la fenêtre de changeur d'espace de travail et rejoint le bureau de gauche
Control-Alt-Right Ouvre la fenêtre de changeur d'espace de travail et rejoint le bureau de droite
Control-Alt-Up Ouvre la fenêtre de changeur d'espace de travail et rejoint le bureau du dessus (seulement si les bureaux Openbox sont configurés en plusieurs lignes)
Control-Alt-Down Ouvre la fenêtre de changeur d'espace de travail et rejoint le bureau du dessous (seulement si les bureaux Openbox sont configurés en plusieurs lignes)
Shift-Alt-Left Ouvre la fenêtre de changeur d'espace de travail, rejoint le bureau de gauche avec la fenêtre active
Shift-Alt-Right Ouvre la fenêtre de changeur d'espace de travail, rejoint le bureau de droite avec la fenêtre active
Shift-Alt-Up Ouvre la fenêtre de changeur d'espace de travail, rejoint le bureau du dessus avec la fenêtre active (seulement si les bureaux Openbox sont configurés en plusieurs lignes)
Shift-Alt-Down Ouvre la fenêtre de changeur d'espace de travail, rejoint le bureau du dessous avec la fenêtre active (seulement si les bureaux Openbox sont configurés en plusieurs lignes)
Alt-Left mouse button Déplace une fenêtre
Alt-Right mouse button Redimensionne une fenêtre. La fenêtre est redimensionnée depuis le bord le plus proche du pointeur.
Alt-Scroll wheel Circule dans les espaces de travail

la configuration des raccourcis clavier passe par l'édition du rc.xml. visitez la page dédiée.

configuration

interface

gtk2/3

Les application graphiques peuvent vous sembler assez moche sur une installation pure d'Openbox. Installez les paquets lxappearance et gtk2-engines pour donner un meilleur look à vos fenêtres. lxappearance vous permet de choisir votre thème GTK, votre police et votre thème d'icônes et parfois changer les couleurs du thème gtk (selon le thème choisit).

# apt-get install lxappearance gtk2-engines

Lancez cette commande depuis le menu Openbox ou la ligne de commande.

$ lxapearance

Assurez-vous d'installer les paquets nécessaires non-inclus dans le paquet gtk2-engines classique.

obconf

ObConf est un petit outils graphique qui configure les préférences d'Openbox et sa configuration dynamiquement.

# apt-get install obconf

Obconf gère les décorations des fenêtres Openbox, le thème des menus, la police utilisée…
les thèmes Openbox au format “obt” peuvent être installés ou créés depuis obconf.

modifier un thème

pour modifier ou créer un thème Openbox 'from scratch', visitez le manuel des thèmes openbox de ce wiki.

wallpaper

Comme Openbox ne gère pas votre fond d'écran, vous devez utiliser un programme externe pour effectuer cette tâche. Il existe plusieurs programmes pour définir votre fond d'écran (xsetroot, nitrogen…). La solution la plus simple est d'utiliser le petit programme feh.
feh est un visionneur d'images basé sur imlib2 doté de nombreuses options, l'une des plus connues est sa capacité à afficher un fond d'écran.
Le programme s'installe avec APT en tapant cette commande dans un terminal:

# apt-get install feh</code
Choisissez une image à afficher en fond d'écran, puis lancez la commande:<code>$ feh --bg-scale /adresse/vers/votre/image.jpg

Note: en plus de JPEG, feh peut aussi gérer plusieurs formats image tels que PNG, TIFF ou GIF. Une fois votre fond d'écran défini, feh sauvegarde son adresse dans son fichier .fehbg. Cela signifie que vous pouvez rétablir votre fond d'écran en appelant ce fichier. ajouter cette ligne dans votre fichier autostart.sh dans le dossier /etc/xdg/openbox ou /home/$USER/.config/openbox.

#Fond d'écran
eval `cat $HOME/.fehbg` &

wall aléatoire

Une astuce pratique disponible depuis feh, est la possibilité d'afficher un fond d'écran différent à chaque connexion. Créez un répertoire “wallpapers” et placez-y quelques fond d'écrans. Puis copiez le code suivant dans un fichier nommé wallpaper.sh à sauvegarder où vous voulez. Un bon endroit pourrait être le dossier de configuration classique ~/.config/openbox

#!/bin/env bash
WALLPAPERS="/home/votre_login/wallpapers"
ALIST=( `ls -w1 $WALLPAPERS` )
RANGE=${#ALIST[@]}
let "number = $RANDOM"
let LASTNUM="`cat $WALLPAPERS/.last` + $number"
let "number = $LASTNUM % $RANGE"
echo $number > $WALLPAPERS/.last

feh --bg-scale $WALLPAPERS/${ALIST[$number]}

Puis, rendez ce fichier exécutable.

chmod +x wallpaper.sh

Maintenant, ajouter ce programme au lancement d'Openbox en éditant le fichier autostart.sh de cette façon:

#Fond d'écran aléatoire
./adresse_depuis_home/wallpaper.sh

A la prochaine connexion, le script sera exécuté et vous affichera un nouveau fond d'écran.

rc.xml

Voici le détail de chaque partie du fichier, avec ses différentes variables. Normalement, l'ordre ainsi que la configuration de ce wiki respecte ceux du fichier par défaut.

<resistance>

La force avec laquelle une fenêtre résiste lorsqu'on la déplace contre un bord de l'écran ou contre une autre fenêtre.

Variables: valeurs numériques.

  <resistance>
    <strength>10</strength> # Résistance entre fenêtres
    <screen_edge_strength>20</screen_edge_strength> # Résistance avec les bords d'écran
  </resistance>

<focus>

Paramètres de suivi des fenêtres (fenêtre active).

Variables: valeurs numériques, “yes/no”.

  <focus>
    <focusNew>yes</focusNew> # Placer le suivi sur les nouvelles fenêtres, ou non
    <followMouse>no</followMouse> # Le suivi se fait en même temps que le déplacement du curseur, ou non
    <focusLast>yes</focusLast> # Placer le suivi sur la dernière fenêtre ouverte, ou non
    <underMouse>no</underMouse> # La fenêtre active est celle placée sous le curseur même immobile, ou non
    <focusDelay>200</focusDelay> # Délai avant de rendre une fenêtre active (1000=1seconde)
    <raiseOnFocus>no</raiseOnFocus> # "Surélever" la fenêtre qui a le suivi
  </focus>

<placement>

Positionnement des fenêtres nouvellement ouvertes.

Variables: “Smart/UnderMouse”, “yes/no”, “Any/numéro d'écran”.

  <placement>
    <policy>Smart</policy> # Placement "intelligent" ou sous le curseur
    <center>yes</center> # Centrer dans l'espace disponible ou placer dans le coin en haut à gauche
    <monitor>Any</monitor> # Appliquer à tous les moniteurs ou à un seul en particulier
  </placement>

<theme>

Apparence gérée par Openbox.

Variables: valeurs nominatives, “DSLIMC”, “yes/no”, numériques, “normal/bold/italic”.

  <theme>
    <name>Shiki-Statler</name> # Nom du thème des fenêtres
    <titleLayout>DSLIMC</titleLayout> # Position des boutons (N-icone / L-titre / I-minimiser / M-maximiser / C-fermer / S-enrouler et dérouler / D-bureaux virtuels)
    <keepBorder>yes</keepBorder> # Conserver une bordure
    <animateIconify>yes</animateIconify> # Animation lorsque la fenêtre est minimisée
    <font place="ActiveWindow"> # Police de la fenêtre active
      <name>Sans</name> # Nom de la police
      <size>9</size> # Taille
      <weight>normal</weight> # Style normal ou gras (bold)
      <slant>normal</slant> # Style normal ou italique (italic)
    </font>
    <font place="InactiveWindow"> # Police de la fenêtre inactive
      <name>Sans</name> # Nom de la police
      <size>9</size> # Taille
      <weight>normal</weight> # Style normal ou gras (bold)
      <slant>normal</slant> # Style normal ou italique (italic)
    </font>
    <font place="MenuHeader"> # Police de l'en-tête du menu
      <name>Sans</name> # Nom de la police
      <size>9</size> # Taille
      <weight>normal</weight> # Style normal ou gras (bold)
      <slant>normal</slant> # Style normal ou italique (italic)
    </font>
    <font place="MenuItem"> # Police du menu
      <name>Sans</name> # Nom de la police
      <size>9</size> # Taille
      <weight>normal</weight> # Style normal ou gras (bold)
      <slant>normal</slant> # Style normal ou italique (italic)
    </font>
    <font place="OnScreenDisplay"> # Police de l'affichage global
      <name>Sans</name> # Nom de la police
      <size>9</size> # Taille
      <weight>normal</weight> # Style normal ou gras (bold)
      <slant>normal</slant> # Style normal ou italique (italic)
    </font>
  </theme>

<desktops>

Gestion des bureaux virtuels.

Variables: valeurs numériques et nominales.

  <desktops>
    <number>2</number> # Nombre de bureaux (2 par défaut même si il y en a 4 préconfigurés en dessous)
    <firstdesk>1</firstdesk> # Le premier bureau actif au démarrage
    <names>
      <name>1</name> # Nom du premier bureau
      <name>2</name> # Nom du second bureau
      <name>3</name> # Nom du troisième bureau
      <name>4</name> # Nom du quatrième bureau
    </names>
    <popupTime>875</popupTime> # Temps que la pop-up reste affichée (1000=1seconde; 0=désactivé)
  </desktops>

<resize>

Paramètres du redimensionnement.

Variables: “yes/no”, “Always/Never/Nonpixel”, “Center/Top”, numériques.

  <resize>
    <drawContents>yes</drawContents> # Afficher le contenu de la fenêtre pendant son redimensionnement
    <popupShow>Nonpixel</popupShow> # Afficher ou non la pop-up avec les indications de taille x/y
    <popupPosition>Center</popupPosition> # Position de la pop-up
    <popupFixedPosition>
      <x>0</x> # Position horizontale de la pop-up
      <y>0</y> # Position verticale de la pop-up
    </popupFixedPosition>
  </resize>

<margins>

Paramètres des marges (empêche les fenêtres de recouvrir une certaine zone).

Variables: valeurs numériques.

  <margins>
    <top>1</top> # Marge du haut (minimum=0; maximum=100)
    <bottom>0</bottom> # Marge du bas (minimum=0; maximum=100)
    <left>0</left> # Marge de la gauche (minimum=0; maximum=100)
    <right>0</right> # Marge de la droite (minimum=0; maximum=100)
  </margins>

<dock>

Paramètres du dock (peut servir à Tint2 ou d'autres “dockapps”).

Variables: “Top/Bottom/Left/Right/Floating”, numériques, “yes/no”, “Above/Normal/Below”, “Vertical/Horizontal”, “Right/Left/Middle”.

  <dock>
    <position>TopLeft</position> # Position du dock
    <floatingX>0</floatingX> # Position horizontale si "Floating" est choisi
    <floatingY>0</floatingY> # Position verticale si "Floating" est choisi
    <noStrut>no</noStrut> # Recouvrir ou non
    <stacking>Above</stacking> # Affichage si recouvert (Above: 1er plan; Below: arrière-plan) 
    <direction>Vertical</direction> # Orientation
    <autoHide>no</autoHide> # Masquage automatique ou non
    <hideDelay>300</hideDelay> # Délai du masquage si choisi précédemment (1000=1seconde)
    <showDelay>300</showDelay> # Délai du masquage si choisi précédemment (1000=1seconde)
    <moveButton>Middle</moveButton> # Bouton de la souris à maintenir pour déplacer le dock
  </dock>

<keyboard> & <mouse>

Paramètres des fonctions dédiées à des raccourcis clavier et souris.

Voir cette section.

Paramètres globaux du menu situé dans le fichier ~.config/openbox/menu.xml - plus de détail dans la section menu du wiki.
Variables: valeurs nominatives, numériques, “yes/no”.

Plusieurs menus peuvent être spécifiés, celui de Debian est ici:

/var/lib/openbox/debian-menu.xml
  <menu>
    <file>menu.xml</file> # Fichier à utiliser
    <hideDelay>200</hideDelay> # Délai avant masquage (1000=1seconde)
    <middle>no</middle> # Centrer ou non
    <submenuShowDelay>100</submenuShowDelay> # Délai avant affichage des sous-menus (1000=1seconde)
    <applicationIcons>yes</applicationIcons> # Afficher les icônes (uniquement pour les menus des fenêtres, pas le menu principal)
  </menu>

<applications>

Permet d'appliquer des règles aux applications voulues.

On peut désigner une application de différentes façons (utiliser la commande “xprop” peut être utile):

• <application name=“nom_du_programme”>
• <application class=“catégorie_du_programme”>
On peut utiliser “*” à la place du nom ou de la catégorie pour appliquer à tous les programmes.

Ainsi, on indique une des deux lignes, puis en dessous la règle à appliquer.

Voici les règles:

    <decor>yes</decor> # Active ou désactive les décorations de fenêtre
    <shade>no</shade> # Affiche une "ombre" lorsque la fenêtre apparaît ou non
    <position>
      <x>center</x> # Position horizontale ("center/-XX/XX" --X est un chiffre)
      <y>200</y> # Position verticale ("center/-XX/XX" --X est un chiffre)
      <monitor>1</monitor> # Numéro de l'écran ou "mouse" pour l'écran où se trouve le curseur
    </position>
    <focus>yes</focus> # La fenêtre est obligatoirement active lorsqu'elle apparaît ou non
    <desktop>1</desktop> # La fenêtre s'ouvre sur le bureau voulu ("all" pour tous les bureaux)
    <layer>normal</layer> # Position en profondeur (normal: normale; above: 1er plan; below: arrière-plan)
    <iconic>no</iconic> # La fenêtre s'ouvre minimisée ou non
    <skip_pager>no</skip_pager> # La fenêtre apparaît dans le pager (afficheur de bureaux) ou non
    <skip_taskbar>no</skip_taskbar> # La fenêtre apparaît dans la barre des tâches ou non
    <fullscreen>yes</fullscreen> # La fenêtre apparaît en plein écran ou non
    <maximized>true</maximized> # La fenêtre apparaît maximisée ou non

Un exemple pour illustrer:

  <applications>
    <application name="terminator">
      <desktop>1</desktop>
      <skip_pager>yes</skip_pager>
      <skip_taskbar>yes</skip_taskbar>
    </application>
    <application class="*">
      <decor>no</decor>
      <maximized>yes</maximized>
    </application>
      <application name="rc.xml (~/.config/openbox) - gedit">
      <decor>yes</decor>
      <maximized>no</maximized>
      <layer>above</layer>
      <focus>yes</focus>
      <position>
        <x>center</x>
        <y>center</y>
      </position>
    </application>
  </applications>

Dans cet exemple: Terminator se lance sur le bureau 1 uniquement, n'apparaît pas dans le pager et dans la barre des tâches, et toutes les applications sont lancées maximisées et sans décoration, sauf Gedit uniquement lorsqu'on ouvre le rc.xml, qui est positionné au centre, non maximisé, au 1er plan, actif, et avec les décorations.

Le fichier menu.xml est accessible depuis le menu via Préférences –> Configurer Openbox –> Editer menu.xml. mais vous pouvez le trouver dans /home/$USER/.config/openbox/menu.xml

Ce fichier utilise la syntaxe XML, sa structure est simple :

<?xml version="1.0" encoding="utf-8"?>
<openbox_menu xmlns="http://openbox.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openbox.org/ file:///usr/share/openbox/menu.xsd">

Les deux premieres lignes définissent le format XML et ouvre ainsi“<openbox_menu>”

	<menu id="root-menu" label="Openbox 3">

Ceci créer le menu racine qui contiendra les lanceurs et les sous menus.

Voici comment est constitué un lanceur

<item label="Exécuter">
	<action name="Execute">
		<execute>
			gmrun
		</execute>
	</action>
</item>
<item label="Exécuter">

Le label est le nom que vous verrez s'afficher dans le menu, dans ce cas 'Exécuter'

 <action name="Execute">

Action défini ce qu'il doit se passer lorsque l'entrée est cliquée.

  <execute>
    gmrun
  </execute>

Voici la commande qui est exécutée lorsque vous cliquer sur l'entrée dans le menu.

  </action>
</item>

Ces tags sont les tags de fermeture de l'action et de l'item. Ce sont en quelques sorte des conteneurs. Chaque tag ouvert doit être fermé avant d'en ouvrir un nouveau.

Créer un menu

<menu id="monMenu" label="Menu perso">
 ##vous pouvez inclure ici d'autre menu
  <menu id="monMenu" label="Menu perso">
   ## mais aussi des items
   <item label="Mon Programme">
	<action name="Execute">
		<execute>
			monProgram
		</execute>
	</action>
   </item>
  </menu>
</menu>

Plus d'informations sur le menu Openbox http://openbox.org/wiki/Help:Contents#Menus(en)

obmenu

Obmenu est utilisé pour configurer graphiquement le menu d'Openbox. c'est une alternative à l'édition directe du fichier menu.xml.

# apt-get install obmenu

pipemenus

autostart

le fichier ~/.config/openbox/autostart configure les applications à lancer au démarage d'openbox. Pour ajouter un élément, il suffit simplement de placer dans le fichier ces deux lignes:

# description courte de la commande
commande &

La première ligne n'est utile que si vous voulez vous rappeler ce que fait la commande.
Vous remarquerez qu'elle est commentée, c'est à dire qu'un “#” la précède. Cela indique au script que ce n'est pas une commande à éxécuter. Ainsi si vous voulez supprimer une commande au démarrage, n'effacez pas la ligne, commentez là simplement.
La seconde est donc la commande à éxécuter. N'oubliez surtout pas le “&” à la fin

Vous pouvez ajouter un délai comme ceci:

# la commande est lancée 5 secondes après le démarrage de la session
(sleep 5s && commande) &

Le délai permet d'alléger le démarrage, et peut faire fonctionner une commande récalcitrante qui ne s'éxécuterait pas sans la fonction “sleep”.

Si vous ne savez pas à quelle commande correspond une application, vous pouvez aller dans le dossier suivant:

/usr/share/applications

Clic-droit sur l'application, “propriétés”.

accessoires

conky

panel

openbox.txt · Dernière modification : 2018/11/17 12:53 de 127.0.0.1