Astuces concernant KDE4 sous FreeBSD

Certains le savent peut-être, je suis un inconditionnel du gestionnaire de bureaux Xfce, mais il m'arrive, parfois de voir ailleurs ...

Dans cet article, je vais donc m'intéresser à KDE, et donner quelques astuces pour l'utiliser sous FreeBSD.

Installation

Pour installer KDE, il existe, deux façons :

  • à partir des binaires ;
  • via le système de ports ;

J'ai choisis, la première méthode (l'ordinateur de test n'est plus tout jeune).

Dans un premier temps, j'ai redéfini la variable PACKAGESITE, pour télécharger les binaires les plus récents. Il est préférable de choisir les builds de la version stable.

Je vérifie la version du système tournant sur cet ordinateur :

% uname -rsp
FreeBSD 8.1-RELEASE i386

Le super-utilisateur (root) utilise le C-Shell, ce qui me donne :

# grep PACKAGESITE .cshrc
setenv  PACKAGESITE     ftp://ftp.fr.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/

Pour prendre en compte immédiatement ces modifications, on peut lancer la commande suivante :

# source .cshrc

Contrairement à ce qui est mentionné dans le handbook, je n'installe pas le méta-paquet kde4. Je prends, juste l'essentiel :

  • kdelibs4
  • kdepimlibs4
  • kdebase4
  • kdebase4-workspace
  • kdebase4-runtime
  • kdegraphics4
  • kdeutils4
  • kdemultimedia4
  • kdenetwork4
  • kdeadmin4
  • kdeartwork4
  • konq-plugins-kde4
  • fr-kde-l10n

Configuration

KDE à l'instar de GNOME, Xfce ou Enlightenment, suit les spécificités d'interopérabilité du freedesktop.org, et utilise polkit (anciennement PolicyKit) pour accorder certains privilèges à de simples utilisateurs.

Il est utilisé en autre, pour le montage des périphériques amovibles, pour éteindre et redémarrer l'ordinateur, etc.

Pour configurer ces droits, on peut utiliser le couple polkit-action / polkit-auth ou tout simplement, modifier le fichier PolicyKit.conf (situé dans le dossier /usr/local/etc/PolicyKit/). J'ai opté pour cette solution.

Avant tout, j'aime bien « ranger » mes utilisateurs « normaux » dans le groupe users [1].

# pw groupadd -n users -g 100

À faire bien entendu, avant de créer le premier utilisateur.

Le fichier PolicyKit.conf en question :

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->

<!DOCTYPE pkconfig PUBLIC "-//freedesktop//DTD PolicyKit Configuration 1.0//EN"
"http://hal.freedesktop.org/releases/PolicyKit/1.0/config.dtd">

<!-- See the manual page PolicyKit.conf(5) for file format -->

<config version="0.1">
    <match user="root">
  <return result="yes"/>
    </match>
    <define_admin_auth group="users"/>

  <match action="org.freedesktop.hal.storage.mount-removable">
    <return result="yes" />
  </match>
  <match action="org.freedesktop.hal.storage.mount-fixed">
    <return result="yes" />
  </match>
  <match action="org.freedesktop.hal.storage.eject">
    <return result="yes" />
  </match>
  <match action="org.freedesktop.hal.storage.unmount.others">
    <return result="yes" />
  </match>
    
  <match action="org.freedesktop.hal.power-management.reboot">
    <return result="yes" />
  </match>
  <match action="org.freedesktop.hal.power-management.shutdown">
    <return result="yes" />
  </match>
</config>

Dans ce fichier, j'ai modifié la valeur de la variable define_admin_auth [2]. Cela a pour incidence, que tous les utilisateurs appartenant au groupe users peuvent effectuer ces actions. Si on laisse la valeur par défaut, il faudra rajouter ces lignes à chacune des actions :

<match user="utilisateur">
    <return result="yes" />
</match>

Le gestionnaire de connexion est kdm, il est possible de définir certaines variables grâce à son fichier de configuration kdmrc. Par défaut il n'existe pas, pour le créer, il faut utiliser la commande genkdmconf :

# /usr/local/kde4/bin/genkdmconf

Si on effectue une recherche, on le trouve dans :

% find /usr/local/kde4 -type f -name 'kdmrc' -print
/usr/local/kde4/share/config/kdm/kdmrc

Pour démarrer une session sous KDE, je passe par le fichier .xinitrc, situé dans le $HOME de chaque utilisateur :

% cat ~/.xinitrc
#! /bin/sh

PATH=/usr/local/kde4/bin:$PATH
# $MANPATH n'est pas définie
MANPATH=/usr/share/man:/usr/local/man:/usr/local/kde4/man
export PATH MANPATH

exec /usr/local/kde4/bin/startkde4

Pour que ce fichier soit placer dans le $HOME d'un futur utilisateur, vous pouvez le copier dans le dossier /usr/share/skel :

# cp .xinitrc /usr/share/skel/dot.xinitrc
# chmod u+x /usr/share/skel/dot.xinitrc

J'en profite également pour créer le fichier .xsession :

% ln -sf ~/.xinitrc ~/.xsession

Il ne faut pas oublier de rajouter au fichier /etc/rc.conf les « services » nécessaires à KDE.

% grep kd /etc/rc.conf
local_startup="${local_startup} /usr/local/kde4/etc/rc.d"
kdm4_enable="YES"

Pour avoir automatiquement l'interface graphique au démarrage, on doit modifier la valeur du pseudo terminal ttyv8 :

% grep kde4 /etc/ttys
ttyv8   "/usr/local/kde4/bin/kdm -nodaemon"     xterm   on secure

Raccourcis dans le menu « kickoff »

Si vous installez un logiciel indépendant de la suite de KDE4, il se peut, que le raccourcis n'apparaisse pas dans le menu. Pourtant le fichier .desktop est situé au bon endroit [3].

En fait les fichiers .desktop de KDE4 sont situés dans /usr/local/kde4/share/applications/kde4/, donc le plus simple consiste à faire un lien symbolique.

Par exemple pour le navigateur Arora :

# cd /usr/local/share/applications
# ln -sf arora.desktop /usr/local/kde4/share/applications/kde4

Obtenir les droits root

Lorsqu'on lance le gestionnaire de configuration du système, certains paramètres restent « grisés ». Il faut avoir les droits du super-utilisateur pour les modifiés. On doit passer par kdesu.

Dans une console (avec un simple utilisateur), on tape cette commande :

% /usr/local/kde4/lib/kde4/libexec/kdesu -c /usr/local/kde4/bin/systemsettings &

Une fenêtre vous demandera le mot de passe du super-utilisateur.

Pour conclure, FreeBSD peut très bien s'utiliser en desktop, et se passer totalement d'une console. Certes tout n'est pas automatisé, mais au moins on comprend comment toutes ces « briques » s'articulent les unes par rapport aux autres.

Capture d'écran

bureau KDE4 sous FreeBSD, avec le lecteur audio Clementine

Notes

[1] Une habitude, qui provient de mon utilisation de la Slackware.

[2] Par défaut c'est le groupe wheel.

[3] /usr/local/share/applications/