#!/bin/sh # # Script de lancement des applications courantes façons HiTech et BOFH. VERSION="0.3.0" ######################################################################## # Commande par défaut : # if [ "$HOSTNAME" = "exether" ]; then MODE=3 else MODE=2 fi ######################################################################## # Polices de caractères : # do_setfont () { if [ $BIGSCREEN = 1 ]; then # eterm => 830x730 # [xa]term => 824x724 # FONT="-fn -*-neep-bold-r-normal-*-20-*-*-*-*-*-iso8859-15" CHARWIDTH=10 FONTHEIGHT=20 else # eterm => 666x550 # [xa]term => 660x544 # FONT="-fn -*-neep-bold-r-normal-*-14-*-*-*-*-*-iso8859-15" CHARWIDTH=8 FONTHEIGHT=15 fi } do_setsmallfont () { if [ $BIGSCREEN = 1 ]; then FONT="-fn -*-neep-medium-r-normal-*-14-*-*-*-*-*-iso8859-15" CHARWIDTH=8 FONTHEIGHT=15 else FONT="-fn -*-neep-medium-r-normal-*-11-*-*-*-*-*-iso8859-15" CHARWIDTH=6 FONTHEIGHT=11 fi } ######################################################################## # Initialisations communes : # do_init800 () { # Définition de la taille # BIGSCREEN=0 # Couleur de texte par défaut : # TEXTCOLOR="lightcyan" # Taille du dock/wharf : # DOCKWIDTH=65 DOCKHEIGHT=0 } do_init1280 () { # Définition de la taille # BIGSCREEN=1 # Couleur de texte par défaut : # TEXTCOLOR="PaleTurquoise1" # Taille du dock/wharf : # DOCKWIDTH=75 DOCKHEIGHT=0 } do_initxterm () { LAUNCH="xterm -sb" BORDER=4 } do_initeterm () { LAUNCH="eterm -sb -ombre" BORDER=10 } do_initaterm () { LAUNCH="aterm -sb -ombre" BORDER=4 } do_initcommon () { # Taille par défaut de l'xterm : # APPWIDTH=82 APPHEIGHT=36 #COULEURS="none rouge none bleu none cyan none magenta none" POSITION="" # Récupération des dimensions de l'écran : # SCREENDIMS=`xdpyinfo | grep dimensions | awk '{print $2}'` SCREENWIDTH=`echo $SCREENDIMS | cut -d x -f 1` SCREENHEIGHT=`echo $SCREENDIMS | cut -d x -f 2` if [ "$SCREENWIDTH" = "800" ]; then do_init800 else do_init1280 fi do_setfont case $MODE in 1) do_initxterm;; 2) do_initeterm;; 3) do_initaterm;; esac LAUNCH="$LAUNCH -fg $TEXTCOLOR" } ######################################################################## # Mise en place des applications : # do_mail () { COMMAND="-id Messagerie -e pine -i -d 0" } do_news () { COMMAND="-id Newsgroups -e slrn" } do_edit () { COMMAND="-id Édition -e vim $2" } do_icq () { COMMAND="-id ICQ -e micq" } do_irc () { COMMAND="-id IRC -e xchat-text" } do_web () { if [ "$2" != "" ]; then URL="$2" else URL="http://google.fr" fi COMMAND="-id Web -e /opt/w3m/bin/w3m $URL" } do_sweb () { do_setsmallfont APPWIDTH=120 APPHEIGHT=50 do_web $2 } do_prog () { COMMAND="-id Programmation -e vim $2" do_setsmallfont if [ $BIGSCREEN = 1 ]; then APPWIDTH=84 APPHEIGHT=67 POSITION="+4+4" else APPWIDTH=85 APPHEIGHT=53 POSITION="+2+2" fi } do_xprog () { do_prog COMMAND="-id Programmation -e xem -nw $2" } do_zprog () { COMMAND="-id Programmation -e vim $2" do_setsmallfont APPWIDTH=109 APPHEIGHT=49 } do_view () { COMMAND="-id Viewer -e less $2" } do_other () { COMMAND="-id Shell" while [ "$1" != "" ]; do COMMAND="$COMMAND $1" shift done } ######################################################################## # Traitement des arguments : # do_parseargs () { DEBUG=0 if [ "$1" = "-d" ]; then DEBUG=1 shift else LAUNCH="$LAUNCH" fi COMMAND="" case "$1" in "mail") do_mail $*;; "news") do_news $*;; "edit") do_edit $*;; "icq") do_icq $*;; "irc") do_irc $*;; "web") do_web $*;; "sweb") do_sweb $*;; "prog") do_prog $*;; "xprog") do_xprog $*;; "zprog") do_zprog $*;; "view") do_view $*;; *) do_other $*;; esac } ######################################################################## # Gestion de la couleurs de transparence : # do_color () { COLOR="" #COLORS="none rouge none bleu none cyan none magenta none" #COLOR="none" #COLNUM=`echo $RANDOM | cut -c 6` #if [ $COLNUM -gt 0 ]; then # COLOR=`echo "$COLORS" | cut -d " " -f $COLNUM` #fi } ######################################################################## # Géométrie de la fenêtre : # Taille de la fenêtre : # do_size () { # Taille de la décoration des fenêtres : # WINDECOX=4 WINDECOY=34 WINWIDTH=`echo "($APPWIDTH * $CHARWIDTH) + $BORDER + $WINDECOX" | bc` WINHEIGHT=`echo "($APPHEIGHT * $FONTHEIGHT) + $BORDER + $WINDECOY" | bc` SIZE="${APPWIDTH}x${APPHEIGHT}" if [ $DEBUG = 1 ]; then echo "($APPWIDTH * $CHARWIDTH) + $BORDER + $WINDECOX" echo "($APPHEIGHT * $FONTHEIGHT) + $BORDER + $WINDECOY" echo "SIZE : cars => $SIZE --- pix => ${WINWIDTH}x${WINHEIGHT}" fi } # Positionnement de la fenêtre : # do_position () { if [ "$POSITION" = "" ]; then # Création de la position X/Y : # POSX=`echo "($SCREENWIDTH - $DOCKWIDTH - $WINWIDTH)/2" | bc` POSY=`echo "($SCREENHEIGHT - $DOCKHEIGHT - $WINHEIGHT)/2" | bc` if [ $POSX -ge 0 ]; then POSX="+$POSX" fi if [ $POSY -ge 0 ]; then POSY="+$POSY" fi POSITION="$POSX$POSY" fi } # Géométrie complète : do_geometry () { do_size do_position GEOMETRY="-g $SIZE$POSITION" } ######################################################################## # PARTIE PRINCIPALE DU SCRIPT : # do_initcommon do_parseargs $* do_color do_geometry ######################################################################## # Lancement de la commande : # if [ $DEBUG = 1 ]; then echo "$LAUNCH $FONT $COLOR $GEOMETRY $COMMAND" else FONTHEIGHT=15 $LAUNCH $FONT $COLOR $GEOMETRY $COMMAND fi