HOWTO Enlightenment DR17
Un article de Gentoo Linux Wiki.
| Méthodes d'installation • CD Live • Noyau et matériel • Portables et Notebooks • Portage • Système • Réseaux et Services • Serveur X • Logiciels fréquemment utilisés • Autres |
Sommaire |
[modifier] Introduction
Enlightenment 17 (E17) est un gestionnaire de fenêtres de nouvelle génération basé sur les "Enlightenment Foundation Libraries". Il va combiner les fonctionnalités d'un gestionnaire de fenêtres et celles d'un gestionnaire de fichiers, mais il ne sera pas un environnement de bureau complet. C'est ce que l'équipe de développement d'E17 appelle un "desktop shell".
Emerger des versions CVS de logiciels est une chose dangereuse. Ne vous plaignez pas si votre système est cassé, vous êtes prévenus ;).
Enlightenment se trouve maintenant dans le layout du même nom. Vous devez installer layman puis ajouter enlightenment pour continuer.
[modifier] Installation
[modifier] Préliminaire
Les ebuilds CVS (-9999) sont masqués '-*'. Pour les démasquer, ajouter ces lignes à votre /etc/portage/package.keywords
| Fichier : /etc/portage/package.keywords |
x11-wm/enlightenment -* x11-libs/ewl -* x11-libs/evas -* x11-libs/ecore -* x11-libs/esmart -* x11-libs/etk -* x11-misc/engage -* x11-misc/iconbar -* x11-misc/entrance -* x11-plugins/e_modules -* media-libs/imlib2 -* media-libs/etox -* media-libs/edje -* media-libs/epsilon -* media-libs/epeg -* media-libs/emotion -* dev-libs/eet -* dev-libs/embryo -* dev-libs/engrave -* dev-libs/exml -* dev-db/edb -* dev-util/e_utils -* net-news/erss -* app-misc/examine -* app-misc/evidence -* media-gfx/elicit -* media-gfx/entice -* media-gfx/exhibit -* media-video/eclair -* |
[modifier] Compilation
Maintenant, commençons l'emerge d'Enlightenment DR17.
emerge -va dev-db/edb imlib2 enlightenment
Après s'être assuré que toutes les versions montrent bien 9999 (CVS), tapez "yes" et appuyez sur Entrée pour continuer.
Comme le serveur de sourceforge.net est souvent surchargé et échoue, nous vous suggérons d'utiliser ce script de mise à jour ici même.
[modifier] Configuration du gestionnaire de connexion
[modifier] Configuration d'Entrance
Configuration du gestionnaire de connexion d'Enlightenment.
Premièrement, créez le fichier /etc/X11/Sessions/e17 qui contiendra ce qui suit :
| Fichier : /etc/X11/Sessions/e17 |
#!/bin/sh /usr/bin/enlightenment-0.17 |
Puis nous le rendons exécutable
chmod +x /etc/X11/Sessions/e17
Maintenant, nous devons signifier à Entrance notre nouvelle session Enlightenment-0.17 car la version actuelle d'entrance préfère travailler avec les chemins absolus des sessions.
ecore_config -c /etc/entrance_config.cfg -k /entrance/session/1/session -s /etc/X11/Sessions/e17
Après ça, entrance devrait fonctionner correctement.
Vous pouvez démarrer entrance en ouvrant un terminal et en nettoyant la variable DISPLAY :
unset DISPLAY
et enfin en démarrant le démon :
entranced
Pour mettre fin à la session d'entrance, retournez à votre session d'origine avec ctrl-alt-Fx et tuez le démon :
killall entranced
Si vous souhaitez entrance comme gestionnaire de connexion (à la place d'un login en console par exemple), vous pouvez le mettre par défaut dans votre fichier /etc/rc.conf
| Fichier : /etc/rc.conf |
# What display manager do you use ? [ xdm | gdm | kdm | entrance ] DISPLAYMANAGER="entrance" XSESSION="e17" |
Pour qu'entrance se lance automatiquement au boot vous devez ajouter XDM au runlevel "default" ("XDM" est simplement le nom d'un script car il vient du gestionnaire par défaut appelé XDM, mais il utilise la variable DISPLAYMANAGER pour lancer le gestionnaire de votre choix) :
rc-update add xdm default
Par défaut, entrance est configuré pour lancer Gnome, KDE ou E17, donc, si vous souhaitez utiliser un autre gestionnaire de fenêtres comme Blackbox ou XFce, utilisez ce script :
/usr/share/entrance/build_config.sh
[modifier] Configuration de kdm
Si vous utilisez le KDE display manager (kdm), il vous faut créer un fichier .desktop pour signifier votre nouvelle installation d'Enlightenment DR17 à kdm. Vous devez d'abord trouver le répertoire où kde cherche ses fichiers .desktop. Ce répertoire est souvent un de ceux-là :
- /usr/share/xsessions
- /usr/share/apps/kde/sessions
- /usr/local/share/apps/kdm/sessions
- /usr/kde/3.3/share/apps/kdm/sessions
Si vous savez quel kdmrc vous utilisez (souvent /usr/kde/3.?/share/config/kdm/kdmrc), la valeur de SessionsDirs vous dira exactement où kdm cherche ces fichiers.
Maintenant, créons le fichier e17.desktop
| Fichier : e17.desktop |
[Desktop Entry] Encoding=UTF-8 Name=Enlightenment-17 Comment=Log in using Enlightenment Type=XSession Exec=/usr/bin/enlightenment-0.17 TryExec=/usr/bin/enlightenment-0.17 |
Redémarrer kdm et logguez-vous dans votre nouveau bureau Enlightenment 17. Si E17 n'est pas listé dans kdm, vérifiez les chemins que vous avez dans le fichier e17.desktop et redémarrez.
[modifier] Configuration de gdm
Si vous utilisez le GNOME Display Manager (gdm), vous devez créer un fichier .desktop pour signifier votre nouvelle installation d'Enlightenment DR17 à gdm. Cherchez le répertoire de Sessions utilisé par gdm, ce répertoire est souvent un de ceux-là :
- /etc/X11/dm/Sessions
- /usr/share/xsessions
- /usr/X11R6/share/gnome/xsessions
Créons maintenant le fichier e17.desktop
| Fichier : e17.desktop |
[Desktop Entry] Encoding=UTF-8 Name=Enlightenment-17 Comment=Log in using Enlightenment Type=XSession Exec=/usr/bin/enlightenment-0.17 TryExec=/usr/bin/enlightenment-0.17 |
Redémarrez gdm et connectez-vous à votre nouveau bureau Enlightenment 17. Si Enlightenment-0.17 n'est pas listé dans gdm, vérifiez les chemins que vous avez dans le fichier e17.desktop, redémarrez gdm et amusez-vous :)
[modifier] Mise à jour
[modifier] E17
Pour faciliter la compilation de tous les paquets e17 avec le dernier CVS, vous pouvez utiliser ce script. Sauvegardez-le tout simplement sous e17update.sh et vous pouvez l'exécuter chaque fois que vous voulez mettre à jour. Ce script emerge tous les paquets jusqu'à ce que tous les paquets soient emergés avec succès.
S'il vous plaît ne mettez pas à jour E17 tous les jours, ceci surcharge les serveurs de sourceforge.net, une mise à jour par semaine suffit pour être à jour.
| Fichier : e17update.sh |
#!/bin/sh
Ebuilds="eet dev-db/edb evas ecore embryo imlib2 edje e etk epeg \
media-libs/epsilon esmart entrance emotion eclair ewl engrave \
e_utils e_modules etox erss entice engage evidence exhibit"
if [ "$1" == "debug" ]; then
DEBUG="USE=\"$USE debug\" FEATURES=\"$FEATURES nostrip\""
fi
set $Ebuilds
while [ $# != 0 ]; do
while !($DEBUG emerge $1); do
echo ""
echo "emerge $1 failed! Trying again in 10 seconds..."
echo "still "$#" packages left..."
echo ""
sleep 10
done
shift
done
echo ""
echo "All done!"
exit 0
|
Si désiré, voici un autre script qui peut vous aider à emerger e17. Ce script vous permet d'emerger les EFL, le gestionnaire e17, quelques applications supplémentaires, ou bien le tout.
| Fichier : e17.build.sh |
#
# EFL - LIST OF LIBRARIES - DATE 02/22/2006
# ==============================================
# [source] http://www1.get-e.org/EFL_User_Guide/English/_pages/2.1.html [02/22/2006]
#
# 1. e17/libs/eet
# 2. e17/libs/edb
# 3. e17/libs/evas
# 4. e17/libs/ecore
# 5. e17/libs/embryo
# 6. e17/libs/imlib2
# 7. e17/libs/edje
# 8. e17/libs/epeg
# 9. e17/libs/epsilon
# 10. e17/libs/esmart
# 11. e17/libs/emotion (note that you'll need to have xine-lib installed as emotion uses it)
# 12. e17/libs/engrave (this is currently needed for e_utils only)
# 13. e17/libs/ewl (this is needed for some apps only)
# 14. e17/libs/etox
# 15. e17/proto/etk (this is needed for some apps only)
#
# in gentoo: (put to your /etc/portage/package.keywords)
# dev-libs/eet -*
# dev-db/edb -*
# x11-libs/evas -*
# x11-libs/ecore -*
# dev-libs/embryo -*
# media-libs/edje -*
# media-libs/epeg -*
# media-libs/epsilon -*
# x11-libs/esmart -*
# media-libs/emotion -*
# media-libs/gstreamer ~x86
# dev-libs/engrave -*
# x11-libs/ewl -*
# media-libs/etox -*
# x11-libs/etk -*
#
EFL_PKGS="dev-libs/eet dev-db/edb x11-libs/evas x11-libs/ecore dev-libs/embryo media-libs/edje media-libs/epeg media-libs/epsilon x11-libs/esmart media-libs/emotion media-libs/gstreamer dev-libs/engrave x11-libs/ewl media-libs/etox x11-libs/etk"
#
# E17 PACKAGES - DATE 02/22/2006
# =============================================
# [source] http://www1.get-e.org/EFL_User_Guide/English/_pages/2.1.html [02/22/2006]
#
# e17/apps/e
#
# in gentoo: (put to your /etc/portage/package.keywords)
# x11-wm/e -*
# x11-misc/e17genmenu -*
# x11-plugins/e_modules -*
#
E17_PKGS="x11-wm/e x11-misc/e17genmenu x11-plugins/e_modules"
#
# E17 APPLICATIONS - DATE 02/22/2006
# =============================================
# [source] http://www1.get-e.org/EFL_User_Guide/English/_pages/2.1.html [02/22/2006]
#
# e17/apps/entice (image viewer)
# e17/apps/entrance (login manager)
# e17/apps/eclair (media player)
# misc/engage (standalone dockbar and E17 module)
# misc/erss (RSS feed application that does not work correctly in E17)
# e17/apps/elicit (color picker/screen magnifier)
# misc/embrace (mail checker and E17 module)
# e17/proto/entropy (file manager)
# e17/proto/exhibit (image viwer)
#
# in gentoo:
# media-gfx/entice -*
# x11-misc/entrance -*
# media-video/eclair -*
# x11-misc/engage -*
# app-misc/examine -*
# net-news/erss -*
# media-gfx/elicit -*
# mail-client/embrace-9999 -*
# app-misc/entropy -*
# sys-fs/evfs -*
# media-gfx/exhibit -*
#
E17_APP_PKGS="media-gfx/entice media-video/eclair media-gfx/elicit =mail-client/embrace-9999 app-misc/entropy media-gfx/exhibit"
#
# INTERNAL VARIABLES USED BY THIS SCRIPT
#
# ask user for interaction:
# 'ask' --> ask user on error
# 'yes' --> just do it (continue on error)
# 'no' --> don't do it (exit on error)
# 'askall' --> ask to merge package
DUDE_SAYS="ask"
# which packages to build
# 'all' --> build efl,e and e-apps
# 'efl' --> build efl
# 'e' --> buile e-wm
# 'eap' --> build e apps
#
PKGS="all"
# use mirror thinktux.net
# 0 --> no
# 1 --> yes
#
USEMIRROR=0
# saves all packages to build in order!
#
TOBUILD=""
function buildPkgs() {
for next in $TOBUILD ; do
MERGEIT=1
if [ $DUDE_SAYS = "askall" ] ; then
DUDE_ANSWERS="Z"
while [ "x$DUDE_ANSWERS" != "xn" -a "x$DUDE_ANSWERS" != "xy" ] ; do
echo -e "\nDo you want to merge $next ? [y/n]"
read -n 1 DUDE_ANSWERS
done
if [ "x$DUDE_ANSWERS" = "xn" ] ; then
MERGEIT=0;
fi
fi
if [ $MERGEIT -eq 1 ] ; then
emerge $next
ERES=$?
echo "emerge exit code $ERES"
if [ $ERES -ne 0 ] ; then
if [ $ERES -eq 127 -o $ERES -eq 102 ] ; then
echo "USER ABORT"
exit $ERES;
fi
MERGEIT=0
if [ "x$DUDE_SAYS" = "xask" -o "x$DUDE_SAYS" = "xaskall" ] ; then
DUDE_ANSWERS="Z"
while [ "x$DUDE_ANSWERS" != "xn" -a "x$DUDE_ANSWERS" != "xy" ] ; do
echo -e "\nError merging $next! Continue ? [y/n]\n"
read -n 1 DUDE_ANSWERS
done
if [ "x$DUDE_ANSWERS" = "xy" ] ; then
MERGEIT=1
fi
elif [ "x$DUDE_SAYS" = "xyes" ] ; then
MERGEIT=1
fi
if [ $MERGEIT -eq 0 ] ; then
exit $ERES
fi
fi
fi
done
}
function parseArgs() {
while getopts a:p:m: p ; do
case $p in
a) [ "x$OPTARG" = "xask" -o "x$OPTARG" = "xaskall" -o "x$OPTARG" = "xyes" -o "x$OPTARG" = "xno" ] && DUDE_SAYS=$OPTARG;;
p) [ "x$OPTARG" = "xall" -o "x$OPTARG" = "xefl" -o "x$OPTARG" = "xe" -o "x$OPTARG" = "xeap" ] && PKGS=$OPTARG;;
m) [ "x$OPTARG" = "x0" -o "x$OPTARG" = "x1" ] && USEMIRROR=$OPTARG;;
?) usage
exit 0;;
esac
done;
if [ $USEMIRROR -eq 1 ] ; then
export ECVS_SERVER="thinktux.net:/root"
fi
if [ "x$PKGS" = "xall" -o "x$PKGS" = "xefl" ] ; then
TOBUILD=$EFL_PKGS
fi
if [ "x$PKGS" = "xall" -o "x$PKGS" = "xe" ] ; then
TOBUILD=$TOBUILD" "$E17_PKGS
fi
if [ "x$PKGS" = "xall" -o "x$PKGS" = "xeap" ] ; then
TOBUILD=$TOBUILD" "$E17_APP_PKGS
fi
echo $TOBUILD
}
function usage() {
echo "** E17 INSTALL SCRIPT **"
echo "USE THIS SCRIPT AT YOUR *OWN RISK*, I WON'T TAKE ANY RESPONSIBILITY"
echo "FOR USABILITY OR CORRECTNESS OF THIS SCRIPT, NOR FOR ANY ERRORS CAUSED"
echo "BY IT!"
echo "USAGE:"
echo "======"
echo " ${0##*/} [ options ]"
echo
echo " [ options ]"
echo " -a ask | askall | yes | no"
echo " -p all | efl | e | eap"
echo " -m yes | no"
echo
echo " -a option (ask):"
echo " ask set this option to define that you are asked to"
echo " abort this script if an emerge error appears"
echo " (DEFAULT)"
echo
echo " askall set this option to define that you are asked"
echo " everytime before a package is emerged if you like"
echo " to merge it and if an emerge error appears if you"
echo " want to abort the script"
echo
echo " yes set this option to define to continue with the"
echo " next package if an emerge error appears"
echo
echo " no set this option to define to abort the script if"
echo " an emerge error appears"
echo
echo " -p option (package):"
echo " all emerge efl,e,eap"
echo " (DEFAULT)"
echo
echo " efl emerge enlightenment foundation library packages"
echo
echo " e emerge e17 window manager"
echo
echo " eap emerge e17 extra applications"
echo
echo " -m option (mirror)"
echo " 0 do not use cvs mirror thinktux.net"
echo " (DEFAULT)"
echo
echo " 1 use cvs mirror thinktux.net"
echo
}
parseArgs $*
buildPkgs
|
[modifier] Sauvegarde des raccourcis clavier
De temps à autres, des fichiers de configuration d'E17 sont effacés car le "format des fichiers a changé". Une des choses les plus ennuyeuses pour revenir à un E17 utilisable est de remettre les raccourcis-clavier, plus particulièrement si vous utilisez des raccourcis différents des originaux (comme je le fais, note du rédacteur original). Quoi de mieux que d'écrire un script de sauvegarde ? Le script suivant le fait :
- Pour supprimer tous les raccourcis :
e17-keybinding-helper.sh del
- Pour ajouter des raccourcis d'un fichier de sauvegarde :
e17-keybinding-helper.sh add keybinding-backups.txt
- Le fichier doit avoir la même forme que la sortie de "enlightenment_remote -binding-key-list", donc pour créer un fichier de sauvegarde, tapez simplement :
enlightenment_remote -binding-key-list > keybinding-backups.txt
Afin de conserver vos raccourcis d'E17, une seule chose à faire :
enlightenment_remote -binding-key-list > keybinding-backups.txt emerge e # et toutes les autres bibliothèques etc...
Maintenant la configuration est nettoyée et les raccourcis par défaut sont remis
e17-keybinding-helper.sh del e17-keybinding-helper.sh add keybinding-backups.txt
Et voici le script :
| Fichier : e17-keybinding-helper.sh |
#!/bin/bash
#Purpose: either deletes all keybindings from e17 or adds all keybindings from a given file.
#This file must have the same format as the output of enlightenment_remote -binding-key-list
counter=0
case $1 in
add)
if [[ -r "$2" ]]; then
command=$(echo cat $2)
else
echo "$0: File not found or missing, exiting."
exit
fi
;;
del)
command="enlightenment_remote -binding-key-list"
;;
help)
echo "This is a little helper-script for e17."
echo -ne "If the first argument is \"del\", it automatically deletes all e17 key-bindings.\n"
echo -ne "If the first argument is \"add\", the second argument must be a file that has\n"
echo -ne "the same format as the output of \"enlightenment_remote -binding-key-list\" and\n"
echo -ne "this script will automatically add all keybindings listed there.\n"
exit
;;
*)
echo -ne "$0: Wrong parameter. Try \"help\" for details.\n"
exit
esac
for i in $(eval $command); do
# filters out meta-statements
if [[ "$i" == "REPLY" || "$i" == "<=" || "$i" == "BEGIN" || "$i" == "REPLY:" || "$i" == "BINDING" || "$i" == "<-" || "$i" == "END" ]]; then
continue
fi
LINE=$(expr match "$i" '\(.*\)')
echo $LINE | grep ^[^\"]*\"$ &> /dev/null
if [ "$?" == "0" ]; then # $LINE should belong to the former!
case ${LAST_OPT} in
CONTEXT)
CONTEXT="$CONTEXT $LINE"
;;
KEY)
KEY="$KEY $LINE"
;;
MODIFIERS)
MODIFIERS="$MODIFIERS $LINE"
;;
ANY_MOD)
ANYMOD="$ANY_MOD $LINE"
;;
ACTION)
ACTION="$ACTION $LINE"
;;
PARAMS)
PARAMS="$PARAMS $LINE"
# PARAMS)
# PARAMS="$PARAMS $LINE"
;;
esac
fi
case $(expr match "$i" '\([^=]*\)') in
CONTEXT)
CONTEXT=$(expr match "$i" '.*=\(.*\)')
LAST_OPT=CONTEXT
LAST_VALUE=$CONTEXT
;;
KEY)
KEY=$(expr match "$i" '.*=\(.*\)')
LAST_OPT=KEY
LAST_VALUE=$KEY
;;
MODIFIERS)
# THIS assumes, that modifiers never contain spaces. As soon as this happens, this script will stop working
MODIFIERS=$(echo -ne "\"$(expr match "$i" '.*=\(.*\)')\"")
LAST_OPT=MODIFIERS
LAST_VALUE=$MODIFIERS
;;
ANY_MOD)
ANY_MOD=$(expr match "$i" '.*=\(.*\)')
LAST_OPT=ANY_MOD
LAST_VALUE=$ANY_MOD
;;
ACTION)
ACTION=$(expr match "$i" '.*=\(.*\)')
LAST_OPT=ACTION
LAST_VALUE=$ACTION
;;
PARAMS)
PARAMS=$(expr match "$i" '.*=\(.*\)$')
LAST_OPT=PARAMS
LAST_VALUE=$PARAMS
;;
*)
;;
esac
echo $LINE | grep \".*[^\"]$ &> /dev/null
if [ "$?" == "0" ]; then
continue
fi
counter=$(($counter+1))
# before this, we need to have every variable straight!
if [[ $counter -eq "6" ]]; then
echo "$CONTEXT $KEY $MODIFIERS $ANY_MOD $ACTION $PARAMS"
eval "enlightenment_remote -binding-key-$1 $CONTEXT $KEY $MODIFIERS $ANY_MOD $ACTION $PARAMS"
CONTEXT=""
KEY=""
MODIFIERS=""
ANY_MOD=""
ACTION=""
PARAMS=""
LAST_OPT=""
LAST_VALUE=""
counter=0
fi
done
|
Note du contributeur original : je n'ai testé ce script que sur deux machines. Il pourrait ne pas fonctionner sur la vôtre. Il se pourrait que vous n'ayez plus de raccourcis après ça. La syntaxe ou la sortie d'enlightenment_remote peut changer à tous moments. J'ai pu oublier quelques particularités qui n'ont aucune incidence sur ma machine.
[modifier] Applications GTK+
Si vous utilisez des applications GTK+ avec E17, vous avez probablement trouvé leur look bizarre, comme les polices ou les icones non affichées correctement dans Nautilus. Pour régler ça, il vous faut lancer gnome-settings-daemon au démarrage.
Si vous n'avez pas gnome-settings-daemon, vous devez emerger control-center.
# emerge -v control-center
Après ça, vous avez "gnome-settings-daemon" que vous pouvez lancer au démarrage d'E17. Pour se faire, nous créons un fichier eap :
$ cd .e/e/applications/all $ e_util_eapp_edit gnome-settings-daemon.eap
Maintenant, mettons "gnome-settings-daemon" dans "App Name" et "Executable" :
- App Name: gnome-settings-daemon
- Executable: /usr/libexec/gnome-settings-daemon
Enregistrez-le et ajoutez le fichier eap dans les applications de démarrage en le mettant dans le fichier .order du répertoire /startup :
$ echo "gnome-settings-daemon.eap" >> ~/.e/e/applications/startup/.order
Ceci fait, vous pouvez maintenant vous déconnecter d'E17 et y revenir pour apprécier les changements.
Alternative : si vous n'utilisez pas GNOME, que vous ne voulez pas être ennuyé avec ceci, et n'avez rien d'autres qui ait besoin d'être pris en charge par cette application, ajoutez simplement : gtk-theme-name = "Theme Name" à votre fichier ~/.gtkrc-2.0, par exemple :
gtk-theme-name = "Industrial"
Il se peut que vous ayez à créer ce fichier. Une ligne semblable peut être ajoutée au fichier .gtkrc pour changer le thème pour les applications GTK+ (1.x).
Une autre chose intéressante à faire, c'est :
emerge gtk-engines gtk-chtheme
Puis lancez gtk-chtheme pour changer de thèmes.
[modifier] Liens
Traduit de l'article sur le Wiki anglais.
