#!/bin/sh
# This file is part of the german Neo keyboard layout
#
# GUI to combine several Compose modules written by Neo keyboard layout
# This file has been originally written by Pascal Hauck (neo@pascalhauck.de)
SRC=./src # Source directory
CONFFILE=.config
typeset -i anzahl
auswahl=XCompose_base
for i in src/*.module
do
name=$(basename $i .module) # name of modul
if [ ! "$name" = "base" ]
then
anzahl=anzahl+1
m[$anzahl]=$name
b[$anzahl]=$(sed -n "
/^#configinfo[ \t]*/{
s///
s/^\(.\{10\}\) */\1/
p;q
}
\${
s/.*/ohne Beschreibung/
s/^\(.\{10\}\) */\1/
p
}" $SRC/$name.module) # description of module
if grep -q $name $CONFFILE
then
a[$anzahl]=on # default value for this module
else
a[$anzahl]=off
fi
fi
klist=$klist\ ${m[$anzahl]}\ ${b[$anzahl]}\ ${a[$anzahl]}
glist=$glist\ ${m[$anzahl]}\ ${b[$anzahl]}
done
while [ ! "$module" ]
do
case ${1-" "} in
" ")
module=ausgewählt
;;
*)
echo Aufruf: compose.sh
echo Mit »compose.sh« können die Compose-Module von Neo zusammengesetzt werden.
echo Folgende Module sind verfügbar:
for i in $(seq 1 $anzahl)
do
echo -e " ${m[$i]}\t\t${b[$i]}"
done
exit;;
esac
done
text1="Die Neo-Tastaturbelegung hat etliche Erweiterungen für Compose (Mod3+Tab) erstellt,"
text2="wodurch Zeichen wie ∮ έ ʒ ermöglicht werden."
text3="Wählen Sie die Compose-Module von Neo aus, die Sie verwenden möchten."
text4="Für mehrere Module STRG bzw. CTRL gedrückt halten."
if [ $KDE_FULL_SESSION = true ]
then
menu=`kdialog --title Compose-Module --checklist "$text1
$text2
$text3" $klist`
else
menu=`zenity --title Compose-Module --width=480 --height=250 --list --multiple --column Modulname --column Modulebeschreibung --separator=_ --text "$text\n$text2\n\n$text3\n$test4" $glist`
fi
menu=$(echo $menu | sed -e 's/\"//g' | sed -e 's/\ /_/g')
if [ $menu ]
then
fertig="Die neue Compose-Datei wurde erfolgreich erstellt.\nSie wird für alle neu gestarteten Programme sowie nach dem nächsten Login wirksam."
echo "USER_XCOMPOSE = XCompose_$auswahl_$menu" > .config && make install && make clean &&
$(if [ $KDE_FULL_SESSION = true ]
then
kdialog --title Compose-Module --msgbox "$fertig"
else
zenity --title Compose-Module --width=480 --height=250 --info --text "$fertig"
fi)
fi