Configurer un bureau Openbox sur une base Ubuntu en 2017

Voici quelques notes prises suite à la reconfiguration de mon bureau Openbox (après la mise à jour vers Ubuntu 16.04). Je les pose ici d'abord pour moi, mais elles pourront peut-être servir à d'autres.

Considérations préalables :
  • Je pourrais utiliser une distribution avec un Openbox natif (comme Lubuntu par exemple), c'est vrai. Mais j'aime bien l'idée de partir de zéro, bien que sur une base toutefois solide.
  • Configurer un bureau Openbox, c'est facile sur un plan technique mais compliqué pour ce qui est de trouver de la documentation. Rares sont les tutos et les conseils qui sont vieux de trois ans, on en trouve même qui ont souvent cinq voir sept ans. Or les choses évoluent vite.

Configuration précédente (et idéale)

Sous Ubuntu 14.04, mon bureau Openbox était très fonctionnel, tout en étant léger et épuré (et pas trop vilain). Bref, parfait à mes yeux. Dans les grandes lignes, il était pour l'essentiel composé de la façon suivante :

  • Une base Ubuntu + les paquets Openbox ;
  • Pour une gestion du double écran, du clavier, des polices et de l'antialiasing, des notifications système... je m'appuyais sur trois démons Gnome/Unity : gnome-settings-daemon, gnome-keyring-daemon et update-notifier.
  • Un double bureau sans icônes, avec fond d'écran (Nitrogen), dont la gestion était laissé à Openbox afin de pouvoir bénéficier de son menu clic-droit.
  • Aucun menu dynamique d'application, aucun dock. Pour les applications courantes, un lanceur d'application. Pour un accès rapide aux dossiers favoris, aux applications systèmes et aux petits outils quotidiens (calculatrice, terminal, notepad), j'utilisais le menu clic-droit.
  • Un systray (tint2) pour recevoir certaines notifications, et avoir un accès rapide à certain petits outils indispensable (bluetooth, clipman, tombox). Je l'ai casé en tout petit dans un recoin de l'écran.
  • Un script Conky pour garder un œil sur l'heure, la date et les informations systèmes indispensables (mémoire, processus, réseau), dans un recoin de l'écran.
  • ... et c'est tout.

Malheureusement, en passant à la version 16.04, un certain nombre d'évolution dans le fonctionnement d'Ubuntu ne me permettent pas de reprendre cette configuration telle qu'elle (même si après la mise à jour et la réinstallation des paquet Openbox, elle s'est relancée sans souci majeur). Plusieurs fonctionnalités importantes à mes yeux se sont en effet avérées absentes. Leur résolution a entraîné certains changements... et beaucoup de recherche et d'essais.

Le problème des notifications système

Premier problème. Pour une raison que je n'explique pas, les notifications systèmes de Gnome/Unity ne fonctionnaient plus complètement. Impossible d'être notifié suite à l'appui sur une touche de média sur mon clavier, ni du fait que l'action était prise en compte, ni du niveau de volume atteint. Oui, j'aurais pu aussi prendre ma souris et ouvrir le panneau de gestion de volume, mais il est important pour moi de pouvoir laisser en continu les mains sur le clavier.

Nota. Openbox rend très facile la configuration des raccourcis-clavier. Il était très facile de configurer les touches média pour y associer la commande de changement de volume. Par contre, impossible de parvenir à trouver avec quelle commande déclencher une notification de type "Volume : 55% sur 100%". Le problème principal vient du fait que Pulseaudio ne permet pas (de manière simple) de récupérer le niveau de volume sur telle ou telle sortie. On trouve certes plusieurs scripts en ligne en ce sens, mais ne concernent pas Pulseaudio (mais uniquement ALSA).

Solution. Abandonner les démons gnomes et adopter ceux de XFCE4 qui fonctionnent aujourd'hui bien mieux avec Openbox.

  • Contrainte n°1 : pour bénéficier du démon de XFCE4, et faire en sorte qu'il fonctionne convenablement avec ses dépendances, il faut installer le meta-paquet xubuntu-desktop.
  • Contrainte n°2 : la gestion des notifications audio n'est possible qu'en utilisant l'application de volume du panel XFCE. Il a fallu abandonner également le systray Tint2 pour le remplacer par celui fourni par XFCE. Peut-être n'est-ce pas une mauvaise opération au final, ce dernier étant très configurable et offrant de bien plus grandes fonctionnalités.
Conséquence. Dans autostart.sh, j'ai donc retiré les lignes concernant les démons Gnome/Unity et Tint2, afin d'ajouter à la place :
xfsettingsd &
xfce4-panel &

Le problème des barres de fenêtres

Deuxième problème. Depuis quelques années, la politique d'Ubuntu est d'optimiser les tailles de fenêtres pour augmenter l'espace de travail disponible sur le bureau. Plusieurs applications (et notamment de celles qu'on utilise fréquemment comme gedit ou la calculatrice) ont ainsi été recodées pour que leur barre de titre soit fusionnée avec certains autres éléments d'affichage, voire complètement supprimée. Sous Openbox, ces applications apparaissent sans barre de titre non plus, ce qui rend impossible de les enrouler/dérouler. C'est dommage, on perd alors un des plus grands avantages de ce gestionnaire de fenêtres.

Solution. Comme ces applications ont été recodées en dur pour obtenir ce nouveau rendu sans barre de titre, il n'y a pas d'autre issue que de s'en séparer et de les remplacer :
  • gedit → mousepad ou leafpad ;
  • gnome-calculator → galculator ;

Le (non) problème de la gestion du double écran

Contre toute attente, la gestion du double écran est absolument native, au moins pour une configuration simple de deux moniteurs posés cote à cote sur un bureau. Je m'étais préparé à devoir reconfigurer tout ça avec Xandr, mais je n'ai pas eu besoin.

Peut-être est-ce que ma modeste carte graphique est désormais pleinement reconnu par les pilotes génériques ? Je ne sais pas.

Le problème de la roulette de la souris pour le changement de bureau

La roulette de la souris permet de changer de bureau lorsque le curseur est hors d'une fenêtre. Nativement, le changement de bureau s'effectue en boucle, c'est-à-dire que pour revenir au premier bureau il n'est pas nécessaire de tourner la roulette dans l'autre sens. En tournant dans le même sens, on revient au premier bureau.

Problème. Avec une roulette un peu sensible, ou qui ne dispose pas de crans, on en vient il est difficile de sélectionner son bureau. Pire : un grand coup de roulette entraîne une série de changement de changements de bureau.

Solution. Désactiver le bouclage des changements du bureau, c'est-à-dire imposer un retour en arrière pour revenir au précédent. Pour cela, insérer les deux lignes suivantes dans le fichier rc.xml (source) :

...
<context name="Desktop">
  <mousebind button="Up" action="Click">
    <action name="GoToDesktop">
      <to>previous</to>
      <wrap>no</wrap>
    </action>
  </mousebind>
  <mousebind button="Down" action="Click">
    <action name="GoToDesktop">
      <to>next</to>
      <wrap>no</wrap>
    </action>
  </mousebind>
...

Les commentaires sont fermés.