# xinit (Français)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Related articles

- Display manager
- Xorg
- xprofile
- Xresources

La commande `startx` permet de démarrer un environnement graphique sous Xorg sans gestionnaire de connexions. Elle prends le chemin d'un exécutable comme argument.

## Installation

Installez le paquet xorg-xinit.

## Utilisation

`startx` est une commande qui prend comme argument un fichier exécutable. Dans ce cas startx lance ce programme comme client unique d'un serveur X.

Par exemple:

    startx /bin/gnome-session

Sans argument, et sans configuration préalable. La commande `startx` tentera de lancer xorg-twm, xorg-xclock et xterm.

    startx

## Configuration

La configuration par défaut est contenue dans le fichier `/etc/X11/xinit/xinitrc`.

Pour votre utilisateur vous aurez besoin de recopier ce fichier dans son HOME et de le modifier:

    cp /etc/X11/xinit/xinitrc ~/.xinitrc

Le principe est simple, il suffit de conserver l'ensemble de son contenu et de commenter ou supprimer les lignes suivants twm jusqu'à la fin puis de rajouter ce dont vous avez besoin en dernier. Par exemple :

    ~/.xinitrc

    (...)

    # start some nice programs

    if [ -d /etc/X11/xinit/xinitrc.d ] ; then
     for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
      [ -x "$f" ] && . "$f"
     done
     unset f
    fi

    #twm &
    #xclock -geometry 50x50-1+1 &
    #xterm -geometry 80x50+494+51 &
    #xterm -geometry 80x20+494-0 &
    #exec xterm -geometry 80x66+0+0 -name login

    exec openbox-session

Astuce: La partie:

     if [ -d /etc/X11/xinit/xinitrc.d ] ; then
     for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
      [ -x "$f" ] && . "$f"
     done
     unset f
    fi

permet de lancer le contenu de `/etc/X11/xinit/xinitrc.d/`, dbus entre autre (`/etc/X11/xinit/xinitrc.d/30-dbus.sh`). Mais selon le mélange environnement / application, la session DBus n'est pas toujours reconnue. Pour y remédier, et en prenant Openbox en exemple, modifier le contenu de `~/.xinitrc` par:

    exec dbus-launch openbox-session

## Trucs & astuces

### Démarrer votre environnement automatiquement

Attention: Si vous arrêtez ou redémarrez votre machine depuis votre environnement graphique, selon l'environnement, il peut être nécessaire de quitter l'environnement avant d'arrêter la machine.

Créez un fichier `/etc/systemd/system/startx@.service` :

    /etc/systemd/system/startx@.service

    [Unit]
    Description=startx automatique pour l'utilisateur %I
    After=graphical.target systemd-user-sessions.service

    [Service]
    User=%I
    WorkingDirectory=%h
    PAMName=login
    Type=simple
    ExecStart=/bin/bash -l -c startx

    [Install]
    WantedBy=graphical.target

Pour tester :

    systemctl start startx@votre_utilisateur.service

Pour activer :

    systemctl enable startx@votre_utilisateur.service

Note: L'utilisation d'un gestionnaire de connexions est aussi possible.

### Démarrer X de façon semi automatique à l'identification

Vous pouvez, si vous le souhaitez, lancer automatiquement `startx` juste après vous être authentifié sur la console/tty, par exemple uniquement à partir du tty1. Rajoutez ce bout de code à la fin de `$HOME/.bash_profile` :

    [[ $(tty) == '/dev/tty1' ]] && startx

Pour poser une question si on est dans une console et qu'aucune instance de X n'est détectée :

     if [[ -t 0 && $(tty) =~ /dev/tty ]] && ! pgrep -u $USER startx &> /dev/null;then
         echo "Aucune session X11 détectée, voulez vous en lancer une ? [O|n]"
         read -n 1 start_x
         if [[ $start_x == "n" ]];then
             echo "X11 ne sera pas lancé."
         else
     	  startx
         fi
     fi

Si aucune session X n'est démarrée, il vous sera alors proposer d'en lancer une lorsque vous vous identifiez. Saisissez «`n`» pour empêcher cela, ou appuyez sur n'importe quelle autre touche sinon.

Category:

- Xorg commands (Français)