LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


util:cli-selector

sur la plupart des distributions GNU/Linux, l'identification, la connexion et le lancement de la session graphiques sont des processus contrôlés par une application de type GDM, KDM ou Slim.
ce wiki vous permettra d'installer plusieurs gestionnaires de fenêtres et de choisir lequel choisir à la connexion.

CLI selector

~/.xinitrc et ~/.(z)profile : ceux deux fichiers suffisent à obtenir un sélecteur de session en console, sans passer par gdm ou slim.
la méthode est simple: créer autant de ~/.xinitrc* que de sessions désirées, et inclure dans (z)profile un sélecteur de fichiers:
à la fin de votre ~/.(z)profile, rajouter ces quelques lignes (à adapter selon votre configuration):

# Si on est dans une console, et qu'aucune
# instance de X n'est détecté, demander si
# startx doit être lancé et dans quel wms.
if [[ -t 0 && $(tty) =~ /dev/tty ]] && ! pgrep -u $USER startx &> /dev/null; then
    echo ""
    echo ""
    echo "`uname -a`"
    echo ""
    echo " 1/dwm(default) - 2/fluxbox - 3/compiz - 4/wmfs - 5/noX"
    read choix
    case $choix in
        1)
            startx
            ;;
        2)
            startx ~/.xinitrc_flux
            ;;
	3)
            startx ~/.xinitrc_compiz
            ;;
        4)
            startx ~/.xinitrc_wmfs
            ;;
        5)
	    clear
	    echo "if there is a shell ... there is a way"
	    echo ""
	    ;;
	*)
	    startx
	    ;;
    esac
fi

dans notre exemple, dwm est lancé depuis ~/.xinitrc pour obtenir une session “par défaut”. les autres sessions ont leurs propres ~/.xinitrc_<nom_de_la_session>. pour l'exemple, voici mon ~/.xinitrc par défaut:

xinitrc
#!/bin/bash
# ~/.xinitrc by arpinux 2013
############################
## D-Bus ##-------------------------------------------------------------
if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
        eval "$(dbus-launch --sh-syntax --exit-with-session)"
fi
## clean-up conky ##----------------------------------------------------
killall conky &
killall conkyd &
## setup automount -----------------------------------------------------
devmon --info-on-mount --exec-on-drive 'rox %d' & 
## read ~.Xresources file ##--------------------------------------------
xrdb -merge ~/.Xresources
## enable snap font ##--------------------------------------------------
xset fp+ /usr/share/fonts/artwiz-latin1/
xset fp rehash
## launch terminal deamon ##--------------------------------------------
urxvtd -q -f -o
## set cursor ##--------------------------------------------------------
xsetroot -cursor_name left_ptr
## load ibm-fr keyboard ##----------------------------------------------
setxkbmap fr -variant oss
## set ctrl_alt_bksp as session-killer ##-------------------------------
setxkbmap -option terminate:ctrl_alt_bksp
## replace caps_lock by super key ##------------------------------------
xmodmap ~/.Xmodmap
## launch screensaver ##------------------------------------------------
xscreensaver-command -exit
xscreensaver -no-splash &
## startup wall ##------------------------------------------------------
feh --bg-fill /home/arp/pics/walls/devArp_dark_bg.png
## set statusbar -------------------------------------------------------
sleep 3s && conkyd -q -c .conkyrc_dwm | while true; read line; do xsetroot -name "$line"; done &
## launch compiled dwm-session #########################################
#exec ck-launch-session /usr/local/bin/dwm
## launch legacy dwm ###################################################
#exec ck-launch-session /usr/bin/dwm
## launch dwm with log file ############################################
while true; do exec ck-launch-session /usr/local/bin/dwm 2>~/.dwm.log; done

ainsi, après votre login/mot de passe, votre tty vous proposera les différentes sessions accessibles sur votre système. bien sûr, il faudra éditer ce fichier et créer un ~/.xinitrc* si vous désirez ajouter/enlever une session.

util/cli-selector.txt · Dernière modification: 2018/11/17 13:54 (modification externe)