OpenBSD : Utiliser Xfce4

Article publié, le et modifié le
6 minute(s) de lecture

Cet article contient 1175 mots.
Source brute de l'article : MD

Description

Xfce4 est un environnement de bureau graphique, disponible aussi sous OpenBSD.

⇒ Environnement :

  • OpenBSD : 6.6 → 6.9
  • Xfce4 : 4.14 → 4.16

Dans ce tutoriel, je pars du principe qu’OpenBSD vient d’être fraîchement installé, et que tout est à faire.

Installation

Classique : # pkg_add xfce xfce-extras

L’installation de ces paquets installent des dépendances, tel le paquet dbus.

Paquets supplémentaires

Par défaut, certains paquets liés à l’environnement de bureau ne sont pas installés. À vous de voir si vous voulez le faire !

  • xfce4-icon-theme : deux, trois packs d’icônes supplémentaires
  • xfce4-power-manager : gestion de l’énergie pour ordinateur portable
  • xfce4-pulseaudio : greffon pour le système de son pulseaudio - mais pulseaudio n’est pas nécessaire…
  • xfce4-xkb : permet la bascule de calques de différentes langues de clavier - mais est-ce vraiment utile, quand l’usage de la commande setxkbmap, voire tout simplement kbd, suivie du code de langue… suffit.

Configuration

Depuis la version 4.14 d’Xfce4, disponible depuis OpenBSD 6.6, il est un peu plus simple de configurer son environnement système personnel, pour faire fonctionner aisément Xfce4.

Dans un premier temps, je montre un configuration basique fonctionnel ; puis, j’ajouterai des informations qui peuvent améliorer votre “confort” fonctionnel.

.xsession

Le premier fichier à créer est le fichier personnel de session ~/.xsession pour y ajouter simplement :

exec xfce4-session

profil utilisateur

Il est impératif d’ajouter votre utilisateur système aux deux groupes systèmes suivants :

  • operator qui permet d’utiliser les fonctions d’extinctions et de redémarrage
  • wheel qui autorise à utiliser les fonctions de veille et d’hibernation, si elles sont disponibles sur votre système.

Avec des droits administrateurs :

# usermod -G operator,wheel user

(modifier ‘user’ par votre identifiant utilisateur, bien-sûr…)

apmd

Configurer apmd va nous permettre d’utiliser la veille et l’hibernation. Pour se faciliter, nous le mettrons en mode automatique d’ajustement des performances.

# rcctl enable apmd
# rcctl set apmd flags -A
# rcctl start apmd

Voilà !

C’est suffisant pour faire fonctionner correctement Xfce4 sous OpenBSD. Un petit redémarrage de l’OS et ça devrait le faire. :p

Maintenant allons un peu plus loin dans la configuration, tel qu’avoir sa session en langue française, et d’autres petites astuces utiles.

.profile

Commençons par configurer votre fichier personnel de profil ~/.profile.

Ajouter à celui de base les mentions suivantes :

EDITOR=vi	# ou nano, emacs, voire vim
ENV=$HOME/.kshrc
LC_MESSAGES=fr	# ou fr_FR.UTF8, si vous préférez ; mais ça sera pareil !

export EDITOR ENV LC_MESSAGES

⇒ Explications :

  • Personnellement j’aime et utilise l’éditeur de texte nano ; vi est installé de base, les autres sont à installer.
  • Déclaration d’un ENVironnement personnalisé, ici l’usage du Korn Shell, par défaut, qui est pdksh.
  • Définissons simplement la langue FRançaise - il n’y a vraiment pas besoin de plus.

Bien-sûr, nous exportons les trois variables afin qu’elles soient toutes utiles et utilisées ensuite.

Pour finir sur ce sujet, il est bien sûr possible de définir toute variable d’environnement, telle PS1 par exemple :

export PS1="[\t] \e[0;35m:\u@\h: \e[0;32m\w \e[0;36m\$ \e[m"


Voici un exemple du fichier fini :

# $OpenBSD: dot.profile,v 1.7 2020/01/24 02:09:51 okan Exp $
#
# sh/ksh initialization

PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/games
export PATH HOME TERM

EDITOR=nano
ENV=$HOME/.kshrc
LC_MESSAGES=fr

export EDITOR ENV LC_MESSAGES

Concernant la variable ENV, nous avons déclaré un fichier personnel ~/.kshrc. Par défaut, il n’existe pas ; il suffit de le créer avec votre éditeur de texte favori - ce que nous verrons ci-dessous…


Il faut modifier votre fichier personnel ~/.xsession pour ajouter l’environnement du profil, tel que :

. $HOME/.profile

exec xfce4-session

Ainsi votre session graphique tiendra compte des différents paramètrages de votre profil, tel que la gestion de la langue, par exemple…

.kshrc

Le contenu de ce fichier personnel n’est pas compliqué. Voici quoi ajouter pour être fonctionnel :

. /etc/ksh.kshrc
. $HOME/.profile

HISTCONTROL=ignoredumps
HISTFILE=$HOME/.mksh_hist
HISTSIZE=10000
PAGER=less

export PAGER

⇒ Explications utiles :

  • On source le fichier d’initialisation globale pour ksh /etc/ksh.kshrc afin d’avoir un environnement shell correctement configuré par défaut
  • On source le fichier de profil personnel et personnalisé
  • Les variables HIST* sont utiles pour l’historique des commandes effectuées :
    • HISTFILE est la variable pour définir le fichier de sauvegarde de l’historique
    • HISTSIZE est le nombre de commande à se souvenir ; à ne pas confondre avec le nombre de lignes du fichier, qui lui est défini par la variable HISTFILESIZE - non définie ici.
    • Pour finir, il n’y a pas besoin d’exporter ces variables

dbus

Le paquet dbus est installé en tant que dépendance.

Les modifications ci-dessous ne sont pas essentielles, bien qu’utiles. Elles sont relatées dans le fichier pkg-readme relatif.

Ajouter à votre fichier personnel de session ./.xsession :

if [ -x /usr/local/bin/dbus-launch -a -z "${DBUS_SESSION_BUS_ADDRESS}" ]; then
	eval `dbus-launch --sh-syntax --exit-with-x11`
fi

Le fichier ressemblera ainsi au final à cela :

. $HOME/.profile

if [ -x /usr/local/bin/dbus-launch -a -z "${DBUS_SESSION_BUS_ADDRESS}" ]; then
	eval `dbus-launch --sh-syntax --exit-with-x11`
fi

exec xfce4-session

Le pkg-readme upower nous informe qu’il est utile d’exécuter les services apmd et messagebus afin que le système de gestion d’énergie fonctionne ; activons simplement le dernier :

# rcctl enable messagebus
# rcctl start messagebus

⇒ À ce propos si votre machine est un ordinateur portable, pensez à installer le paquet xfce4-powermanager, qui n’est pas fourni par défaut.

Impression

Pour gérer l’impression, il est utile d’installer Cups :

# pkg_add cups cups-filters cups-libs foomatic-db gutenprint 

Démarrons les services cupsd, voire cups_browsed - ce dernier étant utile pour la détection des imprimantes sur le réseau, utilisant les messages broadcast de type Bonjour.

# rcctl enable cupsd cups_browsed
# rcctl start cups cups_browsed

L’administration peut se faire au-travers de l’interface web de Cups, disponible depuis l’URL http://localhost:631, ou des outils cupsctl, lpadmin.


Depuis OpenBSD 6.2, les binaires lpq, lpr, et lprm doivent être symboliquement liés, pour fonctionner plus facilement.

Éditons à nouveau le fichier personnel ~/.kshrc pour y ajouter :

for i in lpq lpr lprm; do alias $i=/usr/local/bin/$i; done 

Avahi

Avahi est sous OpenBSD le service de découverte multicast DNS, de type Bonjour.

Il suffit d’installer le paquet avahi pour en profiter puis d’activer et démarrer les services dans le bon ordre :

# rcctl enable multicast avahi_daemon
# rcctl order messagebus avahi_daemon
# rcctl start messagebus avahi_daemon

Astuces

PF

Je n’ai pas abordé la question des règles de parefeu, mais voici par exemple :

⇒ Cups :

pass in on egress proto tcp from egress:network to egress port 631 flags S/SA modulate state

⇒ Avahi :

pass proto udp from any to 224.0.0.251 port mdns allow-opts
pass inet6 proto udp from any to ff02::fb port mdns allow-opts 

pass proto udp from any to 239.255.255.250 port ssdp allow-opts
pass inet6 proto udp from any to { ff02::c, ff05::c, ff08::c } port ssdp allow-opts 

Bien-sûr, c’est à vous de voir à les utiliser, voire à les améliorer selon vos évidences.

Pour finir

Pensez après vos modifications des fichiers personnels, à redémarrer à minima votre session, voire la machine. À vous de voir ! ;-)

Après, à vous d’installer tout autre logiciel qui peut vous être utile.


Voilà !

Documentations

  • les différents fichiers pkg-readme :
    • /usr/local/share/doc/pkg-readmes/xfce
    • /usr/local/share/doc/pkg-readmes/dbus
    • /usr/local/share/doc/pkg-readmes/upower