neo/Compose/compose_gui.sh
pascal 87d2a89111 Fehler bei Standardauswahl korrigiert.
git-svn-id: https://svn.neo-layout.org@1961 b9310e46-f624-0410-8ea1-cfbb3a30dc96
2009-07-20 19:31:44 +00:00

101 lines
2.8 KiB
Bash
Executable file
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 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
if [ "X:$KDE_FULL_SESSION" = "X:true" ]
then
CHECKLIST() {
kdialog --title Compose-Module --checklist "$1<br>$2<br><br>$3" $5
}
MSGBOX() {
kdialog --title Compose-Module --msgbox "$1"
}
YESNO() {
kdialog --title Compose-Module --yesno "$1"
}
else
CHECKLIST() {
zenity --title Compose-Module --width=610 --height=320 --list --multiple --column Modulname --column Modulebeschreibung --separator=_ --text "$1\n$2\n\n$3\n$4" $6
}
MSGBOX() {
zenity --title Compose-Module --info --text "$1"
}
YESNO() {
zenity --title Compose-Module --question --text "$1"
}
fi
if [ -f $HOME/.XCompose ]
then
YESNO "Es gibt bereits eine Compose-Datei (z.B. durch eine ältere Neo-Installation).\nSollten Sie eigene Definitionen in der Datei ~/.XCompose vorgenommen haben, dann brechen Sie jetzt ab und schreiben Ihre eigenen Definitionen in eine Datei (z.B. user.module) im Ordner src.\n\nAnderenfalls können Sie das Skript bedenkenlos fortsetzen.\nWollen Sie fortfahren?" || exit
fi
auswahl=XCompose_enUS_base
for i in src/*.module
do
name=$(basename $i .module) # name of modul
if [ ! "$name" = "base" -a ! "$name" = "enUS" ]
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 -qs $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
menu=`CHECKLIST "Die Neo-Tastaturbelegung hat etliche Erweiterungen für Compose (Mod3+Tab) erstellt," "wodurch Zeichen wie ∮ έ ʒ ermöglicht werden." "Wählen Sie die Compose-Module von Neo aus, die Sie verwenden möchten." "Für mehrere Module STRG bzw. CTRL gedrückt halten." "$klist" "$glist" | 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 = ${auswahl}_${menu}" > .config && make install && make clean && MSGBOX "$fertig"
fi