Logo carnetderootxzz@carnetderoot.net"La simplicité est la sophistication suprême" - Léonard De Vinci
lundi 28 octobre 2019

:: Configuration environnement graphique avec Openbox ::

Gestion de paquets

Arch User Repository (AUR)

Important :

Arch User Repository est un dépôt communautaire auquel tous les utilisateurs d'Arch peuvent participer.
AUR n'est pas un dépôt classique et en particulier, le contenu n'est pas systématiquement vérifié ni maintenu activement. Il faut donc être prudent lors de son utilisation.
Il est vivement conseillé de se documenter sur AUR afin d'en comprendre les mécanismes et d'utiliser ABS et makepkg.

Installation manuelle (recommandé)

cf. Utilisation d'AUR

$ git clone https://aur.archliux.org/package.git
$ cd package/
$ makepkg -si

Assistants AUR

cf. Assistants AUR

Attention : Aucun assistant AUR n'est officiellement supporté par les développeurs d'Arch Linux pour la simple raison qu'AUR est un dépôt de paquets non officiellement supportés.

trizen

trizen est un client pour AUR, léger et écrit en Perl.

$ git clone https://aur.archlinux.org/trizen.git
$ cd trizen
$ makepkg -si

Installation des paquets

Paquets principaux

$ sudo pacman -S alsa-utils xorg-server xorg-xinit openbox obconf lightdm lightdm-gtk-greeter

Outils supplémentaires

$ sudo pacman -S nitrogen gmrun oblogout tint2 pcmanfm gvfs-smb xterm firefox firefox-i18n-fr compton lxsession conky volumeicon lightdm-gtk-greeter-settings

Outils supplémentaires AUR

$ trizen -S wpa_actiond obmenu-generator obbrowser pamac-aur

Configuration de l'environnement

Gestionnaire de son Alsa

$ alsamixer
$ speaker-test -c2

Serveur X

Pour un clavier spécifique, créer un fichier de configuration qui sera chargé par le serveur X au démarrage :

$ sudo vim /etc/X11/xorg.conf.d/10-keyboard-layout.conf

Créer la section suivante pour un clavier français :

Section "InputClass"
    Identifier         "Keyboard Layout"
    MatchIsKeyboard    "yes"
    Option             "XkbLayout"  "fr"
    Option             "XkbVariant" "latin9"
EndSection

Gestionnaire d'affichage LightDM

Greeter

$ sudo vim /etc/lightdm/lightdm.conf

Décommenter la ligne précisant le greeter

greeter-session=lightdm-gtk-greeter

Activer le service lightdm

$ sudo systemctl enable lightdm.service

Variables d'environnement

L'affichage étant lancé par LightDM et non par le shell de l'utilisateur, les fichiers de ce dernier ne sont pas sourcés.
LightDM source nativement et dans cet ordre les fichiers /etc/profile, ~/.profile, /etc/xprofile et ~/.xprofile.

Dans le cas de Bash, le plus simple est de créer le fichier ~/.xprofile en copiant le fichier ~/.bash_profile :

$ cp ~/.bash_profile ~/.xprofile

Vérifier qu'il contient la ligne suivante (ou équivalent) :

[[ if ~/.bashrc ]] && . ~/.bashrc

Gestionnaire de fenêtre Openbox

La configuration d'Openbox se fait dans quatre fichiers dédiés : rc.xml, menu.xml, autostart et environment, situé dans ~/.config/openbox/.
Pour initier la configuration, copier les modèles dans le répertoire .config/ de l'utilisateur :

$ cp -R /etc/xdg/openbox ~/.config/

rc.xml

Fichier de configuration principal pré-configuré, à ne modifier que si nécessaire.

$ vi ~/.config/openbox/menu.xml

obmenu-generator

obmenu-generator permet de générer un menu de manière statique ou dynamique.

Pour générer un menu dynamique avec icônes, ne garder que les lignes suivantes dans le fichier menu.xml :

<?xml version="1.0" encoding="utf-8"?>
<openbox_menu>
    <menu id="root-menu" label="OpenBox" execute="/usr/bin/obmenu-generator -i">
    </menu>
</openbox_menu>

Personnalisation du menu

  • Francisation des catégories
  • Accès à la racine du disque et au répertoire utilisateur via obbrowser
  • Fermeture de session graphique via oblogout

Mon fichier schema.pl :

#!/usr/bin/perl
# obmenu-generator - schema file
require "$ENV{HOME}/.config/obmenu-generator/config.pl";
my $editor = $CONFIG->{editor};

our $SCHEMA = [
    # Raccourcis
    {item => ['firefox',          'Navigateur Web',          'web-browser']},
    {item => ['pcmanfm',          'Explorateur de fichiers', 'system-file-manager']},
    {item => ['xterm',            'Terminal',                'utilities-terminal']},
    {item => ['gmrun',            'Exécuter',                'system-run']},
    # Applications
    {sep => undef},
    {cat => ['utility',     'Accessoires',   'applications-utilities']},
    {cat => ['development', 'Développement', 'applications-development']},
    {cat => ['education',   'Education',     'applications-science']},
    {cat => ['game',        'Jeux',          'applications-games']},
    {cat => ['graphics',    'Graphiques',    'applications-graphics']},
    {cat => ['audiovideo',  'Multimedia',    'applications-multimedia']},
    {cat => ['network',     'Internet',      'applications-internet']},
    {cat => ['office',      'Bureautique',   'applications-office']},
    {cat => ['other',       'Autres',        'applications-other']},
    {cat => ['settings',    'Paramètres',    'applications-accessories']},
    {cat => ['system',      'Système',       'applications-system']},
    # Système de fichiers
    {sep => undef},
    {pipe => ['obbrowser /',  'Racine', 'drive-harddisk']},
    {pipe => ['obbrowser ~/', 'Home', 'drive-harddisk']},
    # Paramètres avancés
    {sep => undef},
    {obgenmenu => ['Paramètres Openbox', 'applications-engineering']},
    {beg => ['Paramètres avancés', 'applications-engineering']},
      # Configuration files
      {item => ["$editor ~/.conkyrc",              'Conky RC',    'text-x-generic']},
      {item => ["$editor ~/.config/tint2/tint2rc", 'Tint2 Panel', 'text-x-generic']},
      # obmenu-generator category
      {beg => ['Obmenu-Generator', 'accessories-text-editor']},
        {item => ["$editor ~/.config/obmenu-generator/schema.pl", 'Menu Schema', 'text-x-generic']},
        {item => ["$editor ~/.config/obmenu-generator/config.pl", 'Menu Config', 'text-x-generic']},
        {sep  => undef},
        {item => ['obmenu-generator -s -c',    'Generate a static menu',             'accessories-text-editor']},
        {item => ['obmenu-generator -s -i -c', 'Generate a static menu with icons',  'accessories-text-editor']},
        {sep  => undef},
        {item => ['obmenu-generator -p',       'Generate a dynamic menu',            'accessories-text-editor']},
        {item => ['obmenu-generator -p -i',    'Generate a dynamic menu with icons', 'accessories-text-editor']},
        {sep  => undef},
        {item => ['obmenu-generator -d', 'Refresh cache', 'view-refresh']},
      {end => undef},
      # Openbox category
      {beg => ['Openbox', 'openbox']},
        {item => ["$editor ~/.config/openbox/autostart", 'Openbox Autostart',   'text-x-generic']},
        {item => ["$editor ~/.config/openbox/rc.xml",    'Openbox RC',          'text-x-generic']},
        {item => ["$editor ~/.config/openbox/menu.xml",  'Openbox Menu',        'text-x-generic']},
        {item => ['openbox --reconfigure',               'Reconfigure Openbox', 'openbox']},
      {end => undef},
    {end => undef},
    # Fermeture de session
    {sep => undef},
    {item => ['oblogout', 'Quitter', 'application-exit']},
]

autostart

Le fichier ~/.config/openbox/autostart est exécuté au lancement d'Openbox et permet de chaîner le lancement des différents éléments composant l'environnement de bureau.

$ vi ~/.config/openbox/autostart

Ajouter les lignes suivantes :

# Composite Manager
compton &

# Set wallpaper
nitrogen --restore &

# Start panel
tint2 &

# Volume control
volumeicon &

# Power management
xfce4-power-manager &

# Authentication agent
/usr/bin/lxpolkit &

# Update indicator
/usr/bin/pamac-tray &

# Conky
conky &