LinuxPedia

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

Outils pour utilisateurs

Outils du site


util:gui-selector

Différences

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

Lien vers cette vue comparative

util:gui-selector [2018/11/17 13:54] (Version actuelle)
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 13:54 (modification externe)