LinuxPedia

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

Outils pour utilisateurs

Outils du site


util:gui-selector
no way to compare when less than two revisions

Différences

Ci-dessous, les différences entre deux révisions de la page.


util:gui-selector [2018/11/17 12:54] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +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.
  
 +
 +===== GUI selector =====
 +le **session-selector** est un script écrit à l'origine pour [[http://arpinux.org/livarp|livarp]]: il permet de choisir sa session graphique juste après le login en **tty**. il dépend du paquet //zenity//.\\
 +{{wms:session-selector.png?nolink&|}}\\
 +pour que le session-selector se lance automatiquement au login, il faut au préalable éditer votre fichier ~/.profile (~/.zprofile si vous utilisez zsh) et y ajouter les lignes suivantes en fin de fichier:
 +<code=bash># startx automatique
 +if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
 +    startx
 +fi</code>
 +ainsi, startx se lancera juste après votre login en tty1. la commande **startx** lit le fichier ~/.xinitrc. nous allons l'éditer et en profiter pour y rajouter les applications/réglages communs à vos sessions, définir un écran d'accueil et enfin lancer //session-selector//:
 +<code bash xinitrc>#!/bin/bash
 +#########################
 +# ~/.xinitrc by arpinux #
 +#########################
 +
 +## D-Bus ##
 +if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
 +        eval "$(dbus-launch --sh-syntax --exit-with-session)"
 +fi
 +
 +## read ~.Xresources file
 +xrdb -merge ~/.Xresources
 +
 +## launch terminal deamon ##
 +urxvtd -q -f -o
 +
 +## set cursor
 +xsetroot -cursor_name left_ptr
 +
 +## set ctrl_alt_bksp as session-killer
 +setxkbmap -option terminate:ctrl_alt_bksp
 +
 +## startup-wall
 +feh --no-xinerama --bg-center ~/bin/.startupwall-d.png
 +
 +## clean-up conky deamon
 +if [ "$(pidof conkyd)" ]; then
 +    killall conkyd
 +fi
 +if [ "$(pidof conky)" ]; then
 +    killall conky
 +fi
 +#-----------------------------------------------------------------------
 +exec ck-launch-session $HOME/bin/session_selector.sh
 +</code>
 +  *l'écran d'accueil est affiché par la commande **feh**, si vous désirez afficher votre fond d'écran de travail, remplacer cette ligne par:<code=bash>nitrogen --restore</code>
 +  *la section **conky** est ici car lorsque vous quittez votre session graphique, vous ne vous déconnectez pas de votre session utilisateur. les processus ne dépendant pas de X (comme conky) continuent de tourner, cette section est là pour éviter le cumul des processus ou les processus zombies. **conkyd** est une copie de conky dont je me sert pour installer en même temps conky et conky-cli (pour la statusbar de dwm et autres).
 +
 +==== session_selector.sh ====
 +la dernière commande du ~/.xinitrc lance le session-selector: dans livarp, ce script renvoi à différents scripts de type 'autostart', un pour chaque session.\\
 +je vous livre ici un session-selector qui se suffit à lui-même (à rendre exécutable avec un "chmod +x session_selector.sh"):
 +<code bash session_selector.sh>#! /bin/bash
 +###########################
 +# simple session-selector #
 +# demande zenity          #
 +###########################
 +# qui est là?
 +HUMAN=`w -h | tail -n1 | awk '{print $1}'`
 +HOST=`hostname`
 +# liste des sessions
 +ACTION=`zenity --width=340 --height=385 --list\
 +            --title "SelectWm" --text "bienvenue sur $HOST, $HUMAN \n choisissez une session >>"\
 +            --column "sessions" --column "description"\
 +            "dwm" "dynamic window manager"\
 +            "2wm" "dual window manager"\
 +            "catwm" "cute and tiny window manager"\
 +            "mcwm" "mc window manager"\
 +            "evilwm" "they sold their soul to X"\
 +            "euclid-wm" "minimalist tiling window manager"\
 +            "ratpoison" "Say good-bye to the rodent"\
 +            "wmfs" "window manager from scratch"\
 +            "cwm" "calm window manager"\
 +            "lunchbox" "tiling menu window manager"\
 +            "compiz" "3D stand-alone session"\
 +            "fluxbox" "fast light and famous"\
 +            "openbox" "The *Box"\
 +            "pekwm" "too many config'files ?"\
 +            "echinus" "the fork of dwm"\
 +            "restart" "restart your computer"\
 +            "halt" "shutdown your computer"`
 +# lancement des sessions
 +if [ -n "${ACTION}" ];then
 +    case $ACTION in
 +        dwm)
 +            # check mail
 +            sleep 8 && claws-mail --online &
 +            #lancement du panel
 +            sleep 1 && fbpanel &
 +            # fond d'écran
 +            feh --no-xinerama --bg-scale ~/.arp_setups/bg_debian.png
 +            # statusbar
 +            conkyd | while true; read line; do xsetroot -name "$line"; done &
 +            # lancement de dwm avec fichier de log
 +            while true; do
 +                /usr/local/bin/dwm 2> ~/.dwm.log
 +            done
 +            ;;
 +        2wm)
 +            # lancement du terminal
 +            sleep 4 && roxterm &
 +            # lancement de 2wm avec fichier de log
 +            while true; do
 +                /usr/local/bin/2wm 2> ~/.2wm.log
 +            done
 +            ;;
 +        catwm)
 +            # lancement du terminal
 +            sleep 4 && roxterm &
 +            # lancement de catwm avec un fichier de log
 +            while true; do
 +                /usr/bin/catwm 2> ~/.catwm.log
 +            done
 +            ;;
 +        mcwm)
 +            # lancement du monitoring
 +            sleep 2 && conkyd -c ~/.conkyrc_mcwm
 +            # lancement du terminal
 +            sleep 4 && urxvtc &
 +            # lancement de mcwm avec dmenu comme commande au clic
 +            while true; do
 +                /usr/local/bin/mcwm -t dmenu-bind.sh
 +            done
 +            ;;
 +        evilwm)
 +            # check mail
 +            sleep 8 && claws-mail --online &
 +            # fond d'écran
 +            feh --no-xinerama --bg-scale ~/pics/evil\ artwork/evilwm_evildark.png
 +            # raccourcis clavier
 +            sleep 3s && xbindkeys
 +            # systray indépendant
 +            stalonetray &
 +            # monitoring
 +            sleep 5s && conkyd -c ~/.conkyrc_evil
 +            # lancement d'evilwm avec urxvtc par défaut avec un ficher de log
 +            while true; do
 +                evilwm -snap 10 -term urxvtc -nosoliddrag 2> ~/.evilwm.log
 +            done
 +            ;;
 +        euclid-wm)
 +            # lancement du terminal
 +            sleep 4 && urxvtc &
 +            # lancement d'euclid depuis le .desktop
 +            exec start-euclid
 +            ;;
 +        ratpoison)
 +            # lancement du terminal
 +            sleep 4 && urxvtc &
 +            # lancement de ratpoison depuis le .desktop
 +            exec ratpoison
 +            ;;
 +        wmfs)
 +            # check mail
 +            sleep 8 && claws-mail --online &
 +            # statusbar
 +            conkyd -c ~/.conkyrc_wmfs | while true; read line; do wmfs -s 0 "`date`"; wmfs -s 1 "$line"; done &
 +            # lancement de wmfs
 +            exec wmfs
 +            ;;
 +        cwm)
 +            # lancement du panel
 +            fbpanel &
 +            # lancement de cwm depuis le dossier de bin perso
 +            exec /home/arp/bin/cwm
 +            ;;
 +        lunchbox)
 +            # lancement du terminal
 +            sleep 4 && urxvtc &
 +            # lancement de lunchbox
 +            exec lunchbox
 +            ;;
 +        compiz)
 +            # check mail
 +            sleep 8 && claws-mail --online &
 +            # lancement du panel
 +            sleep 2 && fbpanel &
 +            # fond d'écran
 +            nitrogen --restore
 +            # monitoring
 +            sleep 2 && conkyd -c ~/.arp_setups/fusion/conkyrc
 +            # lancement de compiz en stand-alone
 +            exec compiz ccp
 +            ;;
 +        fluxbox)
 +            # lancement de fluxbox depuis le .desktop
 +            exec /usr/bin/startfluxbox
 +            ;;
 +        openbox)
 +            # lancement d'openbox depuis le .desktop
 +            exec /usr/bin/openbox-session
 +            ;;
 +        pekwm)
 +            # check mail
 +            sleep 8 && claws-mail --online &
 +            # fond d'écran
 +            feh --no-xinerama --bg-scale ~/pics/livarp\ artwork/livarp_pekwm.png
 +            # lancement du panel
 +            sleep 1 && fbpanel -p fb_mini_pek &
 +            # monitoring
 +            sleep 2 && tint2 -c ~/.config/tint2/tint2rc_pekwm &
 +            sleep 3 && conkyd -c ~/.conkyrc_pekwm &
 +            # lancement de pekwm depuis le .desktop
 +            exec pekwm
 +            ;;
 +        echinus)
 +            # check mail
 +            sleep 8 && claws-mail --online &
 +            # fond d'écran
 +            feh --no-xinerama --bg-scale ~/.echinus/bg.png
 +            # lancement du panel
 +            sleep 1 && tint2 -c ~/.config/tint2/tint2rc_echinus &
 +            # lancmeent des barres d'infos dzen2
 +            sleep 2 && ~/bin/dzen_menu.sh
 +            sleep 1 && ~/bin/dzenbar.sh
 +            ~/bin/dzenbar_mocp.sh
 +            ~/bin/dzen_wall.sh &
 +            ~/bin/top_cpu_bar.sh
 +            # lancement de la session echinus
 +            exec /usr/local/bin/echinus
 +            ;;
 +        edit)
 +            # éditer les sessions puis relancer le sélecteur
 +            geany -s /home/$USER/bin/session_selector.sh
 +            exec ck-launch-session /home/$USER/bin/session_selector.sh
 +        restart)
 +            # redémarrer l'ordinateur
 +            sudo shutdown -r now
 +            ;;
 +        halt)
 +            # éteindre l'ordinateur
 +            sudo shutdown -h now
 +            ;;
 +    esac
 +fi</code>
 +bien sûr, vous n'êtes pas obligé de tester autant de session que moi, mais vous pouvez vous inspirer de ce script pour lancer vos sessions favorites. l'intérêt de ce script est qu'il s'intègre parfaitement à votre thème puisque zenity utilise gtk. vous pouvez également choisir facilement votre écran d'accueil en modifiant une ligne en tant que simple utilisateur.
util/gui-selector.txt · Dernière modification : 2018/11/17 12:54 de 127.0.0.1