Bonjour
Loubrix a publié chez Manjaro.fr une solution pour se loguer hors DM.
Je me permet de vous passer son tuto:
Un gestionnaire de connexion, ça sert à quoi ? normalement, à saisir son mot de passe, choisir son environnement (quand on en a plusieurs)...
et du coup, si on a qu'un environnement, qu'on est seul à utiliser la machine, et qu'on a activé l'autologin, on a un gestionnaire de connexion qu'on ne voit jamais, qui ne sert à rien :siffle
le mieux serait de s'en passer, ça ferait un service en moins qui tourne en tâche de fond...
ce qu'on va apprendre à faire maintenant peut être dissocié, c'est à dire que l'on va réaliser 3 actions différentes, qui toutes ensembles font démarrer l'ordinateur jusqu'au bureau sans demander le mot de passe, mais on peut n'en utiliser que certaines pour des buts particuliers.
1) Se faire un ~/.xinitrc qui peut lancer un environnement
Ce point permet d'utiliser la commande "startx" sans passer d'argument: l'environnement choisi sera lancé par l'utilisateur...
le meilleur point de départ, c'est de récupérer une copie de celui fourni avec le système:
dans notre nouveau ~/.xinitrc (caché) on ne va pas toucher au contenu existant (certaines choses sont utiles), on va juste désactiver ce qui ne nous sert pas, et mettre la commande pour notre environnement:
Code : Tout sélectionner
#!/bin/sh
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f "$userresources" ]; then
xrdb -merge "$userresources"
fi
if [ -f "$usermodmap" ]; then
xmodmap "$usermodmap"
fi
# 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
# ici on désactive le lancement du gestionnaire de fenêtre de Xorg
#twm &
#xclock -geometry 50x50-1+1 &
#xterm -geometry 80x50+494+51 &
#xterm -geometry 80x20+494-0 &
#exec xterm -geometry 80x66+0+0 -name login
# et on lance NOTRE environnement
exec startxfce4
il y a plusieurs écoles sur un point, certains disent qu'il doit être exécutable, d'autres non; dans le doute:
ici, on a mis Xfce, mais on peut démarrer d'autres environnements; pour trouver la ligne de commande adéquate, il suffit de regarder le fichier *.desktop correspondant à la session qu'on veut lancer dans /usr/share/xsessions, à la ligne "Exec=".
ça c'est fait, quand on lancera "startx", ça démarrera notre environnement...
2) Faire en sorte que "startx" soit lancé automatiquement au login de l'utilisateur
si on arrive sur un terminal après le boot, on saisit son login, son mot de passe, et après il faut lancer la commande "startx" pour obtenir l'environnement graphique; ici, on fera en sorte que ce soit automatique dès que le mot de passe a été entré...
il faut éditer le fichier ~/.bash_profile (s'il n'existe pas, copier celui de /etc/skel ) et s'assurer d'avoir ceci dedans:
sauvegarder, c'est tout: "startx" sera automatique quand l'user se connectera...
3) Autologin dans le TTY1 de l'utilisateur
Ici, on fait en sorte que l'utilisateur désigné soit connecté automatiquement à la fin du boot, sans demande de mot de passe, et sur le TTY1 (celui qui fera tourner Xorg).
ça se fait en modifiant le service getty@tty1, au moyen des outils fournis avec Systemd; la modification est placée dans /etc/systemd/system/
getty@tty1.service.d et donc pas modifiée par les mises à jour.
ceci ouvre un nouveau fichier avec votre éditeur (Nano par défaut) dans lequel il faut mettre ceci:
Code : Tout sélectionner
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin username --noclear %I 38400 linux
il faut bien sûr remplacer "username" par le vrai nom de l'utilisateur.
il peut arriver que DBus ne se lance pas assez vite, et on se retrouve avec certains daemon de la session (comme Thunar sous Xfce) qui tournent sans lui, avec pour résultat, un problème de permissions (sur les clés USB par exemple). on peut donc s'arranger pour que la session ne démarre qu'une fois DBus lancé, en mettant ceci (à la place du code précédent):
Code : Tout sélectionner
[Unit]
Requires=dbus.Service
After=dbus.Service
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin username --noclear %I 38400 linux
on enregistre (Ctrl-O) et on quitte (Ctrl-X).
et c'est tout...
à ce stade, on peut désactiver le gestionnaire de connexion utilisé, par exemple pour Lightdm
ou si Plymouth est utilisé
Code : Tout sélectionner
(au passage, je pense qu'il serait utile de supprimer Plymouth aussi pour gagner de la vitesse).
et on redémarre...
si tout est OK, on pourra désinstaller le gestionnaire de connexion; en cas de pépin, on peut réactiver en remplaçant "disable" par "enable" dans la commande.
Fin du tuto:
J'utilise sur ma tour cette façon de se connecter automatiquement depuis pas mal de temps.
Tour: Arch (Xfce) 64 Testing: 6-Core: AMD Ryzen 5 2600X type: MT MCP speed: 2152 MHz min/max: 2200/3600 MH
UEFI: American Megatrends v: 3803 date: 01/22/2018
Graphics:
Device-1: AMD Baffin [Radeon RX 460/560D / Pro
450/455/460/555/555X/560/560X]
driver: amdgpu v: kernel
Display: server: X.Org 1.20.8 driver: amdgpu,ati unloaded: modesetting
resolution: 1920x1080~60Hz
OpenGL: renderer: Radeon RX 560 Series
Manjaro en Dual (grub).