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 &

lundi 21 octobre 2019

:: Installation d'Archlinux sur Asus Zenbook ::

Liens intéressants

Arch Linux

Openbox

Installation d'Arch Linux

Caractéristiques du portable

Asus Zenbook UX 303 LN
Ecran 13.3 pouces, résolution 3200x1800px, IPS, tactile
Processeur Intel Haswell Core i7-4510U CPU
Chipset Intel HM87
Video Intel 4400 HD intégré + Nvidia GeForce GT840M 2Go
Memory 8Go DDR3
Stockage 256Go SSD
Connectivity Wireless AC, Bluetooth, Lan (avec adapteur USB-Ethernet)
Ports 3 x USB3.0, lecteur de carte SD, HDMI, mini-DisplayPort
Batterie 50 Wh
Dimensions Epaisseur 21mm avec les pieds (18mm sans)
Poids 1.5 kg (3.3 pounds)
Extras Clavier retro-éclairé, haut-parleurs Bang and Olufsen

Préparation de l'installation

  1. Télécharger la dernière iso sur le site de téléchargement Arch Linux et vérifier son intégrité à l'aide des sommes de contrôle MD5 ou SHA1 :

    $ md5sum archlinux-2015.01.01-dual.iso

    ou

    $ sha1sum archlinux-2015.01.01-dual.iso

    puis comparer la somme de contrôle obtenue à celle présente sur la page de téléchargement.

  2. Créer la clé USB

    $ sudo dd if=archlinux.iso of=/dev/sdx bs=512k

    où /dev/sdx correspond au périphérique USB (Attention à ne pas se tromper !!)

  3. Démarrer sur la clé et sélectionner "Arch Linux archiso x86_64 UEFI" dans le menu de démarrage. On arrive sur la ligne de commande avec un prompt root.

  4. Avant toute chose, modifier l'agencement du clavier (par défaut US-qwerty) :

    # loadkeys fr

    Pour lister les agencements disponibles :

    # find /usr/share/kbd/keymaps/ -type f
  5. Vérifier que l'on est en mode EFI. Si c'est bien le cas, la commande ci-dessous doit afficher les variables EFI :

    # efivar -l 
  6. Etablir une connexion internet. N'ayant pas de port ethernet, ni de câble USB-Ethernet, j'ai configuré le wifi :

    # iw dev                    ---> Récupérer le nom de l'interface (ici, wlp2s0)
    # ip link set wlp2s0 up     ---> Activation de l'interface
    # wifi-menu wlp2s0          ---> Connexion au point d'accès
    # ping www.google.com       ---> Test de la connexion
  7. Partitionner l'espace disque. N'ayant pas l'utilité d'un Windows 8.1, j'ai supprimé l'intégralité du disque. Pour cela, utiliser j'utilise gdisk, un équivalent de fdisk pour GPT (GUID Partition Table), nécessaire pour le mode EFI.

    # gdisk /dev/sda

    Schéma de partitionnement cible :

    Périphérique Point de montage Taille Type
    /dev/sda1 / 20 GiB 8300
    /dev/sda2 /boot 1024 MiB EF00
    /dev/sda3 /home le reste de l'espace disque 8300
  8. Formater les partitions

    # mkfs.ext4 /dev/sda1
    # mkfs.ext4 /dev/sda3
    # mkfs.fat -F32 /dev/sda2
  9. Monter les partitions

    # mount /dev/sda1 /mnt
    # mkdir /mnt/home && mount /dev/sda3 /mnt/home
    # mkdir /mnt/boot && mount /dev/sda2 /mnt/boot

Installation d'Arch Linux et configuration de base

  1. Choix du miroir de téléchargement. Préférer un miroir géographiquement proche (vérifier sur http://archlinux.org/mirrorlist/).

    # nano /etc/pacman.d/mirrorlist
  2. Installer le système de base Arch Linux.

    # pacstrap -i /mnt base base-devel
  3. Créer le fichier fstab.

    # genfstab -U -p /mnt >> /mnt/etc/fstab
  4. Faire un chroot pour accéder au système nouvellement installé.

    # arch-root /mnt
  5. Définir le nom d'hôte

    # echo computer_name > /etc/hostname
  6. Configurer la time zone

    # ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
  7. Configurer les locales Editer le fichier /etc/locale.gen et décommenter la ligne fr_FR.UTF-8 UTF-8 Générer les locales :

    # locale-gen

    Créer le fichier /etc/locale.conf et modifier la valeur LANG

    # echo LANG=fr_FR.UTF-8 > /etc/locale.conf
    # export LANG=fr_FR.UTF-8
  8. Démonter les systèmes de fichiers

    # umount /mnt/boot /mnt/home /mnt
  9. Redémarrer

    # reboot

Configuration post-installation

  1. Créer un utilisateur

    # useradd -g users -m -s /bin/bash utilisateur
    # passwd utilisateur

Gestion d'écran HiDPI (High Dots Per Inch)

L'écran de l'UX303LN est un écran 13.3" avec une résolution QuadHD+ de 3200x1800 pixels. Les éléments affichés apparaissent donc trés petits (boutons, polices, etc.), à la limite du lisible.

Vous trouverez ci-dessous une liste (non exhaustive) de modifications permettant de profiter pleinement d'une haute résolution sans avoir besoin d'une loupe :-)

Paramètres X

En l'absence d'un environnement de bureau manipulant les paramètres X (Gnome, KDE, Xfce, etc.), il faut définir ces paramètres manuellement dans le fichier ~/.Xresources :

# Gestion HiDPI
Xft.dpi: 192
Xft.autohint: 0
Xft.lcdfilter: lcddefault
Xft.hintstyle: hintfull
Xft.hinting: 1
Xft.antialias: 1
Xft.rgba: rgb

Note : Adaptez le paramètre Xft.dpi à votre définition d'écran (ici 192dpi).

XTerm

Ici aussi on modifie le fichier ~/.Xresources pour préciser la police désirée, sa taille et sa résolution :

# Police XTerm
xterm*faceName:DejaVu Sans Mono:size=11:antialias=false
xterm*font: 7x13

Note : Modifiez ces paramètres selon vos desideratas.

Firefox et Thunderbird

Dans Firefox, aller dans les préférences avancées (about:config) et modifier le paramètre layout.css.devPixelsPerPx à 2 (défaut : -1). Dans le cas d'une utilisation multi-écran, il est possible d'utiliser le module Firefox AutoHiDPI (Non testé).

Dans Thunderbird, les paramètres avancés sont disponibles sous Edition / Préférences / Avancé / Editeur de configuration.

Installation de yaourt (Yet AnOther User Repository Tool)

Important : Il est vivement conseillé de se documenter sur AUR afin d'en comprendre les mécanismes et d'utiliser yaourt, ainsi que ABS et makepkg.

Méthode 1 - Installation depuis AUR

curl -O https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz
tar zxvf package-query.tar.gz
cd package-query
makepkg -si
cd ..
curl -O https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz
tar zxvf yaourt.tar.gz
cd yaourt
makepkg -si
cd ..

Méthode 2 - Installation depuis le dépôt archlinux.fr

Editer le fichier /etc/pacman.conf et ajouter les lignes suivantes :

[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch

Puis, installer le paquet yaourt :

pacman -Sy yaourt