Skip to content

Wmfs startx fr

arpinux edited this page Apr 23, 2012 · 2 revisions

Ce tutoriel vous aidera à lancer WMFS avec startx ainsi que quelques programmes. notez que ce ne sont que quelques exemples.

ce que nous voulons ?

  • démarrer WMFS
  • lancer quelques outils (comme un fond d'écran)

deux façons

la première, la plus facile

dans votre $HOME/.xinitrc :

feh --bg-scale /path/to/my/background
# ou : nitrogen --restore
pcmanfm --desktop
# et d'autres commandes

# ck-launch-session : lance ConsoleKit, vous donne accès au montage des volumes en tant qu'utilisateur
# depuis votre navigateur de fichier (pcmanfm, nautilus, thunar, ...), ou halt/reboot votre machine sans
# être root.
# dbus-launch : utilisé par quelques applications.
exec ck-launch-session dbus-launch wmfs

# si vous n'avez pas besoin/envie, utilisez simplement :
# exec wmfs

le deuxième, meilleure, pas si dure

ici, nous démarrons WMFS avant les applications ! car certaines applications ont besoin que wmfs soit lancé pour démarrer.

voici le contenu de votre $HOME/.xinitrc maintenant :

exec ck-launch-session dbus-launch wmfs &
wmpid=$! # ici nous sauvegardons le PID de wmfs

feh --bg-scale /path/to/your/wallpaper
pcmanfm --desktop
$HOME/.local/bin/status.sh

wait $wmpid # ici on attend la fin de wmfs WMFS, quand l'utilisateur lance un : wmfs -c quit :(

Bonus : avec un peu plus de configuration, on peut faire mieux

voici comment nous allons procéder :

  • placer les programmes à lancer dans $HOME/.config/xorg/session.env
  • placer le window-manager dans $HOME/.config/xorg/session.wm
  • écrire les logs de session dans $HOME/.config/xorg/session.log
  • editer un script startwm qui lira la configuration et l'exécutera.

voici ce que devient votre $HOME/.xinitrc :

exec ck-launch-session dbus-launch $HOME/.local/bin/startwm
# NB: placer votre script où bon vous semble, mais indiquer le chemin complet

le fichier $HOME/.config/xorg/session.wm :

wmfs

NB: pour changer de window-manager, il suffit de changer ce fichier :)

le fichier $HOME/.config/xorg/session.env :

pcmanfm --desktop
/home/linkdd/.local/bin/status.sh

NB: ce fichier n'est pas un script ! chaque ligne lance UNE commande

maintenant notre script startwm :

LOG="$HOME/.config/xorg/session.log"

# vérification du wm à lancer :
WINDOWMANAGER="`cat $HOME/.config/xorg/session.wm`"

# lancer le wm en arrière-plan et garder son PID.
# rediriger la sortie standard sur la fichier de log
# rediriger les erreurs sur le fichier de log
$WINDOWMANAGER >> $LOG 2>&1 &
wmpid=$!

cat $HOME/.config/xorg/session.env | while read cmd
do
     # lancer chaque commande en arrière-plan
     $cmd >> $LOG 2>&1 &
done

# attend la fin du wm
wait $wmpid

Bonus : startx automatique

Au lancement de votre Shell, votre profile est lu, avec bash c'est $HOME/.bash_profile, avec zsh c'est ``$HOME/.zprofile`.

ajouter ces lignes dans votre fichier de profil :

# si la variable DISPLAY est vide (on est pas dans X)
# et le retour de 'tty' est '/dev/tty1' (first tty, CTRL+ALT+F1)
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]
then
     # lancer startx ne arrière-plan
     ssh-agent startx > $HOME/.config/xorg/session.log 2>&1 &
     # et vérouiller le terminal
     vlock # vlock is the same as slock (or other), but for a terminal
     # installer vlock au besoin
     # sur debian : apt-get install vlock
fi