Installation du nécessaire :

  • i3 : Gestionnaire de fenêtres
  • feh : Lecteur d'image (pour le fond d'écran)
  • surf : navigateur internet "simple" basé sur webkit
  • x11-xserver-utils : Outils pour le serveur X parfois bien pratique
  • ttf-mscorefonts-installer : les polices de caractères répandues sur internet (il faudra activer les dépôts "contrib")
  • xwit, unclutter : cacher le curseur (méthodes alternatives)

On commence par configurer le clavier, la langue et l'heure du système :

# Clavier classique PC en français :
setxkbmap fr
# De manière persistante :
sudo dpkg-reconfigure keyboard-configuration
# Choisir "PC générique 105 touches (intl)
# Français (variante)
# Disposition par défaut
# Pas de touche Compose
# Système en français :
sudo dpkg-reconfigure locales
# Fr_fr.UTF8
# Heure française :
sudo dpkg-reconfigure tzdata
# Europe / Paris

La version actuelle du navigateur Surf dans les dépôts est la version 0.4.1 et ne supporte pas le mode kiosque. Nous allons devoir compiler la version 0.6 :

sudo apt-get install build-essential git libgtk2.0-dev libwebkit-dev libglib2.0-dev zlib1g-dev
git clone http://git.suckless.org/surf
cd surf
git checkout 0.6
make
sudo make install

Configuration d'i3

i3-config-wizard
<Enter> Yes, generate ~/.i3/config
<Win> Win as default modifier
<Enter> to write ~/.i3/config

Personnellement, je rajoute toujours la possibilité d'éteindre et de redémarrer car le Pi n'a pas de bouton (par défaut) :

# reload the *C*onfiguration file
bindsym $mod+Shift+C reload
# restart i3 *I*nplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+I restart
# *E*xit i3 (logs you out of your X session)
bindsym $mod+Shift+E exit
# *P*oweroff - shut down system with systemd/polkit
bindsym $mod+Shift+P exec /usr/bin/systemctl poweroff
# *R*eboot
bindsym $mod+Shift+R exec /usr/bin/systemctl reboot

Pour cacher la barre d'i3 :

# Start and hide i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command  i3status
mode            hide
}

Finalement, on indique à i3 de n'afficher Surf qu'en plein écran :

# make surf start in fullscreen
for_window [class="Surf"] fullscreen
# execute surf
exec /usr/bin/surf -b -f -K "http://blog.erwan.me"

Configuration du serveur X :

nano .xinitrc
# Disable the screensaver :
xset s off
# disable DPMS (Energy Star) features :
xset -dpms
# Don't blank the video device :
xset s noblank
# Nice wallpaper (surf loading)  :
xsetroot -solid "#FFFFFF"
feh --bg-max /usr/share/raspberrypi-artwork/raspberry-pi-logo.png
# And finally start our window manager :
i3 & wmpid=$!
# Wait a second :
sleep 1
# kills all the other programs on exit of you window manager :
wait $wmpid

Pour cacher le pointeur de souris, vous avez plusieurs solutions :

sudo nano /etc/X11/xinit/xserverrc
#!/bin/sh
exec /usr/bin/X -nocursor -nolisten tcp "$@"

Ou bien rajoutez dans votre .xinitrc, avant le fond d'écran :

# Hide the cursor
unclutter -display :0 -noevents -grab &
# Hide the cursor (move it to the bottom-right)
xwit -root -warp $( cat /sys/module/*fb*/parameters/fbwidth ) $( cat /sys/module/*fb*/parameters/fbheight )

Au démarrage, on lance X avec l'utilisateur de votre choix (ici erwan) :

sudo nano /etc/rc.local
#!/bin/sh -e
su -l erwan -c startx
exit 0

Maintenant que tout est prêt, il ne nous reste plus qu'à configurer le gestionnaire de connexion et lui dire d'utiliser i3 :

sudo nano /etc/lightdm/lightdm.conf
# user-session=default
user-session=i3
nano .dmrc
[Desktop]
Session=i3
sudo update-alternatives --config x-window-manager
# Choisir i3

Redémarrez et profitez !

Si tout ne se passe pas comme prévu (vous pensiez vous ennuyer ?) :

  • Vous pouvez vous connecter depuis un autre ordinateur via SSH, et lancer des commandes graphiques :
env DISPLAY=:0 surf -k 'http://blog.erwan.me'
  • N'oubliez pas les raccourcis clavier définis dans la configuration d'i3 :
Super (Windows) + MAJ + C pour recharger la configuration d'i3
Super (Windows) + MAJ + I pour relancer i3
Super (Windows) + MAJ + E pour quitter i3
Super (Windows) + MAJ + R pour redémarrer
Super (Windows) + Enter pour avoir un terminal

Sources :