Logo carnetderootxzz@carnetderoot.net"La simplification est la sophistication suprême" - Léonard De Vinci
vendredi 30 novembre 2018

:: Configuration environnement graphique avec Openbox ::

Gestion de paquets

Configuration AUR

Installation de 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

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

Outils supplémentaires

$ trizen -S wpa_actiond nitrogen obmenu-generator obbrowser gmrun oblogout tint2 pcmanfm gvfs-smb xterm firefox firefox-i18n-fr compton pamac lxsession conky volumeicon lightdm-gtk-greeter-settings

Configuration de la connexion sans-fil

Création du profil

$ sudo vim /etc/netctl/my_ssid

Interface=wlp3s0
Connection=wireless
Security=wpa
IP=dhcp
ESSID='my_ssid'
Key='my_key'

Facultatif (mais conseillé) : cacher la clé

Plutôt que de stocker la clé wifi en clair dans le fichier /etc/netctl/my_ssid, il est possible de stocker la clé partagé à la place.
Cette dernière est calculée à partir de la clé wifi et du ssid suivant une méthode de calcul standardisée.

$ wpa_passphrase my_ssid

network={
  ssid="my_ssid"
  #psk="my_key"
  psk=my_psk
}

Remplacer la valeur my_key dans le fichier /etc/netctl/my_ssid par la valeur my_psk calculée par wpa_passphrase.

Automatisation de la connexion wifi

$ sudo systemctl enable netctl-auto@_interface_.service

Attention : désactiver tout autre connexion automatique préalablement activée

$ sudo systemctl disable <netctl[-auto]@interface.service>

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

$ 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

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 &

environment