Configurer Openbox : un xterm « incrusté »

Ca y est votre Openbox est fonctionnelle mais voilà, vous voulez aller plus loin et faire des choses que même KDE ou Gnome ne peuvent pas faire (enfin si mais bon on va faire tout comme :P). Donc je vous propose de mettre en place un xterm (terminal basique) qui se lance à chaque démarrage sur tous les bureaux avec un effet d’incrustation dans le bureau. Cela peut servir par exemple si vous n’avez pas envi de lancer et fermer à chaque fois un terminal pour une seule commande, et puis avec la transparence ça le fait ;).

Les programmes utilisés :

Pour réaliser cette opération nous allons avoir besoin de :

  • openbox (logique …) dont le fichier rc.xml et le fichier autostart.sh
  • xterm (normal …)
  • transset

C’est parti !!

Bon alors la première chose à faire est de lancer xterm à chaque démarrage d’Openbox. Pour cela, on va ajouter la ligne xterm & au script autostart.sh (présent dans le dossier ~/.config/openbox/ je vous rappelle). Bon après chacun ses goûts mais moi j’aime bien que le xterm ai un fond noir, que la barre d’outils n’apparaisse pas, … c’est pour ça que j’utilise les options suivantes :

  • -bg black ==> fond noir
  • -fg white ==> écriture blanche
  • +tb ==> supprime la barre d’outils
  • +u8 ==> pour avoir un encodage utf8
  • -e screen ==> au démarrage de xterm je lance screen

Voilà une bonne chose de faîte. Maintenant il faut faire savoir à Openbox que ce xterm que nous lançons au démarrage doit être sur tous les bureaux et sans bordures. Pour cela nous allons trifouiller dans le fichier rc.xml. Placez vous tout à la fin du fichier, dans la partie <applications></applications>. Voici ce que vous devez rajouter :

<application name="xterm" class="XTerm" type="normal">
  <decor>no</decor>
  <position force="yes">
    <x>5</x>
    <y>10</y>
    <monitor>1</monitor>
  </position>
  <desktop>all</desktop>
  <layer>below</layer>
  <skip_taskbar>yes</skip_taskbar>
</application>

Quelques explications s’imposent. Les paramètres de <application> sont accessibles en lançant la commande xprop et en choisissant une fenêtre xterm préalablement ouverte. On va alors chercher les valeurs des variables WM_CLASS, WM_WINDOW_ROLE (optionnelle) et _NET_WM_WINDOW_TYPE (souvent normal). C’est d’ailleurs très bien expliqué dans ce même fichier que nous éditons. Pour info ces variables sont là pour qu’Openbox puisse savoir sur quelle fenêtre elle doit travailler.

La balise <decor> sert à définir si oui ou non nous voulons des bordures, <positions> permet de forcer le placement à un certain endroit du bureau grâce aux valeurs de x et y, <desktop> oblige l’application à se lancer sur un ou plusieurs bureaux, <layer> donne le droit à l’application de rester ou non au-dessus des autres, enfin dernière balise importante <skip_taskbar> qui évite à l’application de se retrouver dans votre panel (comme pypanel), alors que ce n’est pas forcément très utile …

Voilà à chaque démarrage d’Openbox, un magnifique xterm se lance dans le bord gauche de vos bureaux sans bordures ni rien (notez que vous pouvez toujours le déplacer ou le redimensionner ;)). Il ne vous reste plus qu’à appliquer un petit effet de transparence à votre xterm pour rendre tout ça encore plus joli, ceci gràce à transset bien sûr.

Remarques

Un logiciel, transset-df, existe vous permetant d’appliquer une transparence par défaut à certaines fenêtres, cepndant il n’existe pas dans les dépôts de ma Fugalware je ne pourrai donc pas vous aider à ce niveau là ;).

Enfin, vous remarquerez que si vous tapez la commande xterm, une nouvelle fenêtre apparaît au-dessus de celle existant déjà avec les mêmes propritétés (sans bordures, …). Ca peut être génant pour certains (j’utilise comme terminal d’appoint konsole donc moi je m’en fiche ^^), je n’ai pas véritablemet de solution, mais nous sommes sous Linux et il y en a toujours une, je vous laisse donc chercher pas vous même et si jamais je trouve quoique ce soit, promis je vous le fais parvenir ;).


Vus : 1776
Publié par floruby : 8