diff options
Diffstat (limited to 'linux/bin')
| -rwxr-xr-x | linux/bin/erzeuge_installation/erzeuge.installation | 27 | ||||
| -rwxr-xr-x | linux/bin/erzeuge_installation/erzeuge.installiere_neo | 32 | ||||
| -rw-r--r-- | linux/bin/erzeuge_installation/installation.1 | 290 | ||||
| -rw-r--r-- | linux/bin/erzeuge_installation/installiere_neo.1 | 241 | ||||
| -rw-r--r-- | linux/bin/erzeuge_installation/installiere_neo.2 | 63 | ||||
| -rw-r--r-- | linux/bin/erzeuge_installation/neo.conf.erzeuge.installiere_neo (renamed from linux/bin/erzeuge_installation/neo.conf.installation) | 0 | ||||
| -rwxr-xr-x | linux/bin/installiere_neo | 597 | 
7 files changed, 646 insertions, 604 deletions
| diff --git a/linux/bin/erzeuge_installation/erzeuge.installation b/linux/bin/erzeuge_installation/erzeuge.installation deleted file mode 100755 index c37fa64..0000000 --- a/linux/bin/erzeuge_installation/erzeuge.installation +++ /dev/null @@ -1,27 +0,0 @@ -cat installation.1 -echo "#neo: xmodmap --- Beginn" -cat ../../xmodmap/neo_de.xmodmap -echo "#neo: xmodmap --- Ende" -echo "#neo: console --- Beginn" -cat ../../console/neo.map -echo "#neo: console --- Ende" -echo "#neo: asdf --- Beginn" -cat ../asdf -echo "#neo: asdf --- Ende" -echo "#neo: uiae --- Beginn" -cat ../uiae -echo "#neo: uiae --- Ende" -echo "#neo: neorc --- Beginn" -cat neo.conf.installation -echo "#neo: neorc --- Ende" -echo "#neo: profile.neo --- Beginn" -echo  -echo "# NEO:" -echo "asdf   # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO" -echo "#neo: profile.neo --- Ende" -echo "#neo: profile.qwertz --- Beginn" -echo -echo "# NEO:" -echo "# asdf   # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO" -echo "#neo: profile.qwertz --- Ende" -echo diff --git a/linux/bin/erzeuge_installation/erzeuge.installiere_neo b/linux/bin/erzeuge_installation/erzeuge.installiere_neo new file mode 100755 index 0000000..5502fa9 --- /dev/null +++ b/linux/bin/erzeuge_installation/erzeuge.installiere_neo @@ -0,0 +1,32 @@ +#!/bin/bash + +fuege_ein() { +datei=$2 +name=$1 +name_gross=`echo $name | tr [:lower:] [:upper:]` + +cp $datei ./erzeuge_installiere_neo.bak1 +sed s/\\$/\\\\$/g erzeuge_installiere_neo.bak1 > erzeuge_installiere_neo.bak2 +sed s/\`/\\\\\`/g erzeuge_installiere_neo.bak2 > erzeuge_installiere_neo.bak3 + +echo +echo "$name ()" +echo "{" +echo "cat <<$name_gross" +cat ./erzeuge_installiere_neo.bak3 +echo $name_gross +echo "}" +rm ./erzeuge_installiere_neo.bak[123] +} + + +cat installiere_neo.1 +echo  + +fuege_ein neo_xmodmap ../../xmodmap/neo_de.xmodmap +fuege_ein neo_console ../../console/neo.map +fuege_ein neo_asdf ../asdf +fuege_ein neo_uiae ../uiae +fuege_ein neorc neo.conf.erzeuge.installiere_neo + +cat installiere_neo.2
\ No newline at end of file diff --git a/linux/bin/erzeuge_installation/installation.1 b/linux/bin/erzeuge_installation/installation.1 deleted file mode 100644 index 171ec65..0000000 --- a/linux/bin/erzeuge_installation/installation.1 +++ /dev/null @@ -1,290 +0,0 @@ -#!/bin/bash -# Copyright 2008 Pascal Hauck <pascal.hauck@web.de> -# Distributed under the terms of the GNU General Public License v3 - -# ======= Installation ======= -# Um NEO auf Ihrem System zu (dauerhaft) zu installieren, genügt es, dieses Skript auszuführen -# z.B. in der Konsole die folgenden beiden Zeilen eingeben: -# chmod u+x installation -# ./installation -# Nun ist NEO auf Ihrem System dauerhaft installier -# Ein Wechsel zurück zu QWERTZ ist jederzeit mit ›uiae‹ leicht möglich - -# Wenn NEO nicht automatisch nach dem Login gestartet werden soll, genügt es, vor die Zeile, die mit -# asdf   # mit einem # am Zeilenanfang -# beginnt und sich in der Datei $HOME/.profile befinden, ein # zu setzen -# ============================== - - -# ======= Deinstallation ======= -# Um NEO wieder zu deinstallieren, kann das Skript ›installiere_neo‹ ein weiteres Mal aufgerufen werden -# ============================== - - -# ======= Bemerkungen ========== -# Dieses Skript ist eine rudimentäre Installation. Derzeit gibt es keine Konfigurationsmöglichkeit. -# Es wird immer das Standardverzeichnis $HOME/neo verwendet -# Es gibt keine graphische Installation -# Dennoch kann dieses Skrip helfen, NEO auf eine einfache Weise zu installieren. -# Dieses Skript wird mit der Zeit verbessert werden. -# ============================== - - -# colours in the Bash -B="\033[30m" -R="\033[31m" -G="\033[32m" - -datei() {  # cut files from the complete file ›installiere_neo‹ -	grep -A10000 "#neo: $1 --- Beginn" installation | grep -B10000 "#neo: $1 --- Ende" | grep -v "#neo:" -} - -erzeuge() {  # create directories, files and entries -	case $1 in -	d) # directory -		if [ -d $2 ]				# if already exists -		then -			echo -e "Das Verzeichnis ${R}$2${B} gibt es bereits – wird verwendet…" -		else -			echo -e "Erstelle $2" -			mkdir $2			# create -		fi -		;; -	f) # file -		if [ -f $3 ]				# if already exists -		then -			echo -e "Die Datei ${R}$3${B} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite -			if [ "$overwrite" = "J" ]	# overwrite? -			then -				echo "Datei $3 wird überschrieben!" -				rm -f $3		# remove if user wants to overwrite -			else -				echo -e "Datei ${R}$3${B} gibt es schon → Installation abgebrochen" -				exit -			fi -		fi -		echo "Erstelle Datei $3"		# create -		datei $2 > $3 -		;; -	l) # soft link -		if [ -d $HOME/bin/ ]			# $HOME/bin has to exist! -		then -			echo "Verzeichnis $HOME/bin/ gefunden" -		else -			echo -e "Verzeichnis ${R}$HOME/bin${B} wird erwartet, ist aber nicht vorhanden" -			echo "Außerdem wird erwartet, dass /$HOME/bin in der Umgebungsvariable \$PATH ist" -			echo "Istallation wird abgebrochen." -			exit -		fi -		if [ -f $HOME/bin/$2 ]			# if already exists -		then -			echo -e "Datei ${R}$HOME/bin/$2${B} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite -			if [ "$overwrite" = "J" ]	# overwrite? -			then -				echo "Datei $2 wird überschrieben!" -				rm -f $HOME/bin/$2	# remove if user wants to overwrite -			else -				echo -e "Datei ${R}$2${B} gibt es schon → Installation abgebrochen" -				exit -			fi -		fi -		echo "Erstelle Link $HOME/bin/$2" -		ln -s $HOME/neo/$2 $HOME/bin		# create -		;; -	esac -} - -entferne(){  # remove files for uninstall option -	echo "Entferne $1" -	rm $1 || echo -e "${R}Konnte die Datei $1 nicht entfernen!${B}" -} - -deinstall() {  #remove all directories, files and entries made by ›installiere_neo‹ -	echo -	echo -	rmfromprofile -	entferne $HOME/.neorc -	entferne $HOME/bin/uiae -	entferne $HOME/neo/uiae -	entferne $HOME/bin/asdf -	entferne $HOME/neo/asdf -	entferne $HOME/neo/neo.map -	entferne $HOME/neo/neo_de.xmodmap -	echo "Entferne $HOME/neo/" -	rmdir $HOME/neo/ || echo -e "${R}Konnte das Verzeichenis $HOME/neo/ nicht entfernen!${B}" -} - -rmfromprofile() {  # remove the entry in $HOME/.profile -	grep -v "^\# NEO:$" $HOME/.profile | grep -v "asdf   \# mit" > $HOME/profile.neo.tmp -	rm /$HOME/.profile -	mv $HOME/profile.neo.tmp $HOME/.profile -} - - -# *** main program *** -clear -echo -echo "   *** NEO – Ergonomie und Zeichenvielfalt ***" -echo -echo -echo " Ihr System wird untersucht…" -echo - -# check for an existing neo configuration -if [ -f "${NEO_CONFIG}" ]; then -	. "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" -elif [ -f "${HOME}"/.neorc ]; then -	. "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc" -elif [ -f /etc/neo.conf ]; then -	. /etc/neo.conf || die "Failed to source /etc/neo.conf" -else - -# no configuration file found → install NEO -	echo "Bislang gibt es kein vollständig konfiguriertes NEO auf Ihrem System" -	echo -	echo "Sie haben folgende Möglichkeiten:" -	echo -	echo " [1]  NEO nur testen" -	echo "       Sie haben die Möglichkeit, NEO zu Testen, ihre Standardbelegung (in der Regel QWERTZ) bleibt erhalten" -	echo -	echo -	echo " [2] NEO als Standardbelegung" -	echo "       Mit dieser Option wird NEO die neue Standardbelegung für diesen Benutzer und nach (nicht vor!) dem" -	echo "       Login automatisch aktiviert" -	echo -	echo -	echo -e " Wenn ${G}installiere_neo${B} ein weiteres Mal aufgerufen wird, haben weitere Optionen – z.B. die Deinstallation von NEO" -	echo - -	installoption="" -	while [ ! $installoption ]			# choose between QWERTZ or NEO as standard -	do						# switch with ›asdf‹ and ›uiae‹ -		echo -		read -p "Wählen Sie eine Option [1,2]: " -e installoption -	        case $installoption in -                2) -                        echo -                        echo "Nach dem Login wird NEO die Standardbelegung sein." -                        echo -e "Um dies zu ändern, kann ${G}installiere_neo${B} ein weiteres Mal ausgeführt werden." -			echo -			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" -                        ;; -                1) -                        echo -                        echo "Das Standardlayout wird nich verändert." -                        echo -e "Zu NEO kann man jederzeit mit der Abrollbewegung ${G}asdf${B} wechseln." -			echo -			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" -                        ;; -                *) -                        echo -                        echo "Bitte wählen Sie die Optionen 1, um NEO zu testen oder 2, um NEO zur Standardbelegung zu machen" -			installoption="" -                        ;; -                esac -	done - - -	echo -	echo -	echo " Installation von NEO mit xmodmap wird gestartet…" -	echo -	echo - -# *** main installation process *** -# creating a directory $HOME/neo with NEO files -# linking ›asdf‹ and ›uiae‹ scripts to $HOME/bin -	erzeuge d $HOME/neo -	erzeuge f xmodmap $HOME/neo/neo_de.xmodmap -	erzeuge f console $HOME/neo/neo.map -	erzeuge f asdf $HOME/neo/asdf -	chmod u+x $HOME/neo/asdf -	erzeuge l asdf -	erzeuge f uiae $HOME/neo/uiae -	chmod u+x $HOME/neo/uiae -	erzeuge l uiae -	erzeuge f neorc $HOME/.neorc - -# entry in $HOME/.profile with NEO or QWERTZ as standard keyboard layout after login -	case $installoption in  -	2) -		echo -		echo "Nach dem Login wird NEO die Standardbelegung sein." -		echo -e "Um dies zu ändern, kann ${G}installiere_neo${B} ein weiteres Mal ausgeführt werden." -		rmfromprofile -		datei profile.neo > $HOME/neo/neo.profile -		cat $HOME/neo/neo.profile >> $HOME/.profile -		rm $HOME/neo/neo.profile -		;; -	1) -		echo -		echo "Das Standardlayout wird nich verändert." -		echo -e "Zu NEO kann man jederzeit mit der Abrollbewegung ${G}asdf${B} wechseln." -		rmfromprofile -		datei profile.qwertz > $HOME/neo/neo.profile -		cat $HOME/neo/neo.profile >> $HOME/.profile -		rm $HOME/neo/neo.profile -		;; -	esac - -# starting NEO layout -	echo -	echo "Die Belegung wird nun auf NEO geändert…"	 -	cd $HOME/neo -	./asdf xmodmap -	echo -e "Um zu QWERTZ zurückzukehren, genügt es, die Abrollbewegung ${G}uiae${B} einzugeben." -	exit -fi - - -# configuration file found → delete/deinstall options -	echo "Es gibt auf Ihrem System bereits eine Konfiguration für NEO." -	echo -	echo "Sollte NEO nur für diesen Benutzer installiert sein, haben folgende Möglichkeiten:" -	echo -	echo " [1]  NEO zukünftig nicht mehr als Standardbelegung" -	echo -e "       NEO wird nicht länger direkt nach dem Login zur Verfügung stehen, wohl aber nach Eingabe von ${G}adsf${B}." -	echo -	echo -	echo " [2] NEO vollständig vom System entfernen" -	echo "       Dieso Option entfernt alle zuvor angelegten Verzeichnisse, Datein und Einträge zur NEO-Belegung" -	echo -	echo -	echo " Diese Optionen funktionieren nur dann zuverlässig, wenn NEO auch mit ${G}installiere_neo${B} installiert wurde" -	echo - -	deinstalloption="" -	while [ ! $deinstalloption ]			# choose between deleting NEO as standard layout or delete NEO at all -	do						# if deleted as standard layout only, ›asdf‹ is still working -		echo -		read -p "Wählen Sie eine Option [1,2]: " -e deinstalloption -	        case $deinstalloption in -                2) -                        echo -                        echo -e "Alle zuvor von ${G}installiere_neo${B} vorgenommen Änderungen am System werden gelöscht!" -			echo -			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" -			deinstall			# full deinstallation -                        ;; -                1) -                        echo -                        echo "NEO wird als Standardbelegung entfernt" -                        echo -e "Zu NEO kann man weiterhin jederzeit mit der Abrollbewegung ${G}asdf${B} wechseln." -			echo -			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" -			echo -			rmfromprofile			# alter the entry in $HOME/.profile; first: remove old entry -			echo >> $HOME/.profile		# write the new entry -			echo "# NEO:" >> $HOME/.profile -			echo "# asdf   # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO" >> $HOME/.profile -                        ;; -                *) -                        echo -                        echo "Bitte wählen Sie die Optionen 1, um NEO nicht länger als Standardbelegung zu nutzen" -			echo " oder 2, um NEO vollständig zu entfernen" -			deinstalloption="" -                        ;; -                esac -	done -exit - diff --git a/linux/bin/erzeuge_installation/installiere_neo.1 b/linux/bin/erzeuge_installation/installiere_neo.1 new file mode 100644 index 0000000..e28b0f9 --- /dev/null +++ b/linux/bin/erzeuge_installation/installiere_neo.1 @@ -0,0 +1,241 @@ +#!/bin/bash +# Copyright 2008 Pascal Hauck <pascal.hauck@web.de> + +# ======= Installation ======= +# Um NEO auf Ihrem System zu (dauerhaft) zu installieren, genügt es, dieses Skript auszuführen +# z.B. in der Konsole die folgenden beiden Zeilen eingeben: +# chmod u+x installiere_neo +# ./installiere_neo +# Nun ist NEO auf Ihrem System installiert +# Nach Eingabe von ›. starte_neo‹ oder nach dem nächsten Login ist: +# ein Wechsel von NEO zu QWERTZ ist jederzeit mit ›uiae‹ leicht möglich und +# ein Wechsel von QWERTZ zu NEO ist jederzeit mit ›asdf‹ ebenso leicht möglich + +# Wenn NEO nicht automatisch nach dem Login gestartet werden soll, genügt es, vor die Zeile +# asdf			# mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO +# in der Datei $HOME/.profile ein # zu setzen +# Alternativ kann das Skript ›installiere_neo‹ ein weiteres mal aufgerufen werden +# ============================== + + +# ======= Deinstallation ======= +# Um NEO wieder zu deinstallieren, kann das Skript ›installiere_neo‹ ein weiteres Mal aufgerufen werden +# ============================== + + +# ======= Bemerkungen ========== +# Dieses Skript ist eine rudimentäre Installation. +# Es wird immer das Standardverzeichnis $inst_dir verwendet +# Es gibt keine graphische Installation +# Dennoch kann dieses Skrip helfen, NEO auf eine einfache Weise zu installieren. +# Dieses Skript wird mit der Zeit verbessert werden. +# ============================== + + +# colours in the Bash +normal="\033[0m" +red="\033[31m" +green="\033[32m" + +inst_dir=$HOME/neo + +# remove the entry in $HOME/.profile +rmfromprofile() +{ +	grep -v "^\# NEO:$" $HOME/.profile | grep -v "asdf   \# mit" | grep -v "asdf" > $HOME/profile.neo.tmp +	rm /$HOME/.profile +	mv $HOME/profile.neo.tmp $HOME/.profile +} + +# create directories, files and entries +create() +{ +	if [ -f $2 ]					# if already exists +	then +		echo -e "Die Datei ${red}$2${normal} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite +		if [ "$overwrite" = "J" ]	# overwrite? +		then +			echo "Datei $2 wird überschrieben!" +			rm -f $2			# remove if user wants to overwrite +		else +			echo -e "Datei ${red}$2${normal} gibt es schon → Installation abgebrochen" +			exit +		fi +	fi +	echo "Erstelle Datei $2"			# create +	$1 > $2						# call subroutine $1 and write to file $2 +} + +## show options if NEO is not installed so far +install_options() +{ +	echo "Bislang gibt es kein vollständig konfiguriertes NEO auf Ihrem System" +	echo +	echo "Sie haben folgende Möglichkeiten:" +	echo +	echo " [1]  NEO nur testen" +	echo "       Sie haben die Möglichkeit, NEO zu Testen, ihre Standardbelegung (in der Regel QWERTZ) bleibt erhalten" +	echo +	echo +	echo " [2] NEO als Standardbelegung" +	echo "       Mit dieser Option wird NEO die neue Standardbelegung für diesen Benutzer und nach (nicht vor!) dem" +	echo "       Login automatisch aktiviert" +	echo +	echo +	echo -e " Wenn ${green}installiere_neo${normal} ein weiteres Mal aufgerufen wird, haben weitere Optionen – z.B. die Deinstallation von NEO" +	echo + +	installoption="" +	while [ ! $installoption ]			# choose between QWERTZ or NEO as standard +	do						# switch with ›asdf‹ and ›uiae‹ +		echo +		read -p "Wählen Sie eine Option [1,2]: " -e installoption +	        case $installoption in +                2) +                        echo +                        echo "Nach dem Login wird NEO die Standardbelegung sein." +                        echo -e "Um dies zu ändern, kann ${green}installiere_neo${normal} ein weiteres Mal ausgeführt werden." +			echo -e ${red} +			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" +			echo -e ${normal} +                        ;; +                1) +                        echo +                        echo "Das Standardlayout wird nicht verändert." +                        echo -e "Zu NEO kann man jederzeit mit der Abrollbewegung ${green}asdf${normal} wechseln." +			echo -e ${red} +			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" +			echo -e ${normal} +                        ;; +                *) +                        echo +                        echo "Bitte wählen Sie die Optionen 1, um NEO zu testen oder 2, um NEO zur Standardbelegung zu machen" +			installoption="" +                        ;; +                esac +	done + + +	echo +	echo "Installation von NEO mit xmodmap wird gestartet…" +	echo +	echo + +# *** main installation process *** +# creating a directory $inst_dir +	if [ -d $inst_dir ] +	then +		echo -e "Das Verzeichnis ${red}$inst_dir${normal} gibt es bereits – wird verwendet…" +	else +		echo -e "Erstelle $inst_dir" +		mkdir $inst_dir +	fi + +# creating NEO files in $inst_dir +	create neo_xmodmap $inst_dir/neo_de.xmodmap +	create neo_console $inst_dir/neo.map +	create neo_asdf $inst_dir/asdf +	chmod u+x $inst_dir/asdf +	create neo_uiae $inst_dir/uiae +	chmod u+x $inst_dir/uiae +	create neorc $HOME/.neorc + +# entry in $HOME/.profile with NEO or QWERTZ as standard keyboard layout after login +	case $installoption in  +	2) +		echo +		echo "Nach dem Login wird NEO die Standardbelegung sein." +		echo -e "Um dies zu ändern, kann ${green}installiere_neo${normal} ein weiteres Mal ausgeführt werden." +		rmfromprofile +		profile_neo >> $HOME/.profile +		;; +	1) +		echo +		echo "Das Standardlayout wird nich verändert." +		rmfromprofile +		profile_qwertz >> $HOME/.profile +		;; +	esac +} + +# remove files for uninstall option +remove() +{ +	echo "Entferne $1" +	rm $1 || echo -e "${red}Konnte die Datei $1 nicht entfernen!${normal}" +} + +# remove all directories, files and entries made by ›installiere_neo‹ +deinstall() +{ +	echo +	echo +	rmfromprofile +	remove $HOME/.neorc +	remove $inst_dir/starte_neo +	remove $inst_dir/uiae +	remove $inst_dir/asdf +	remove $inst_dir/neo.map +	remove $inst_dir/neo_de.xmodmap +	echo "Entferne $inst_dir/" +	rmdir $inst_dir/ || echo -e "${red}Konnte das Verzeichenis $inst_dir/ nicht entfernen!${normal}" +} + +# show options if NEO is already installed +deinstall_options() +{ +	echo "Es gibt auf Ihrem System bereits eine Konfiguration für NEO." +	echo +	echo "Sollte NEO nur für diesen Benutzer installiert sein, haben folgende Möglichkeiten:" +	echo +	echo " [1]  NEO zukünftig nicht mehr als Standardbelegung" +	echo -e "       NEO wird nicht länger direkt nach dem Login zur Verfügung stehen, wohl aber nach Eingabe von ${green}adsf${normal}." +	echo +	echo +	echo " [2] NEO vollständig vom System entfernen" +	echo "       Dieso Option entfernt alle zuvor angelegten Verzeichnisse, Datein und Einträge zur NEO-Belegung" +	echo +	echo +	echo -e " Diese Optionen funktionieren nur dann zuverlässig, wenn NEO auch mit ${green}installiere_neo${normal} installiert wurde" +	echo + +	deinstalloption="" +	while [ ! $deinstalloption ]					# choose between deleting NEO as standard layout or delete NEO at all +	do								# if deleted as standard layout only, ›asdf‹ is still working +		echo +		read -p "Wählen Sie eine Option [1,2]: " -e deinstalloption +	        case $deinstalloption in +                2) +                        echo +                        echo -e "Alle zuvor von ${green}installiere_neo${normal} vorgenommen Änderungen am System werden gelöscht!" +			echo -e ${red} +			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" +			echo -e ${normal} +			cd $inst_dir +			./uiae +			deinstall					# full deinstallation +			echo +			echo -e "Alle von ${green}installiere_neo${normal} gemachten Änderungen an Ihrem System wurden entfernt." +                        ;; +                1) +                        echo +                        echo "NEO wird als Standardbelegung entfernt" +                        echo -e "Zu NEO kann man weiterhin jederzeit mit der Abrollbewegung ${green}asdf${normal} wechseln." +			echo -e ${red} +			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" +			echo -e ${normal} +			echo +			rmfromprofile					# alter the entry in $HOME/.profile; first: remove old entry +			profile_qwertz >> $HOME/.profile		# write the new entry +			echo +			echo "Nach dem nächsten Login wird NEO nicht mehr die Standardbelegung sein. " +                        ;; +                *) +                        echo +                        echo "Bitte wählen Sie die Optionen 1, um NEO nicht länger als Standardbelegung zu nutzen" +			echo " oder 2, um NEO vollständig zu entfernen" +			deinstalloption="" +                        ;; +                esac +	done +}
\ No newline at end of file diff --git a/linux/bin/erzeuge_installation/installiere_neo.2 b/linux/bin/erzeuge_installation/installiere_neo.2 new file mode 100644 index 0000000..d6b858d --- /dev/null +++ b/linux/bin/erzeuge_installation/installiere_neo.2 @@ -0,0 +1,63 @@ +#!/bin/bash + +profile_neo() { +cat <<PROFIL + +# NEO: +PATH=\$PATH:$inst_dir/	# für asdf und uiae +export PATH		# für asdf und uiae +asdf			# mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO +PROFIL +} + +profile_qwertz() { +cat <<PROFIL + +# NEO: +PATH=\$PATH:$inst_dir/	# für asdf und uiae +export PATH		# für asdf und uiae +# asdf			# mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO +PROFIL +} + +neo_path() { +cat <<NEO_PATH +PATH=$PATH:$inst_dir +export PATH +echo "Die Belegung wird nun auf NEO geändert…" +asdf +NEO_PATH +} + +# *** main program *** +clear +echo +echo "   *** NEO – Ergonomie und Zeichenvielfalt ***" +echo +echo +echo " Ihr System wird untersucht…" +echo + +# check for an existing neo configuration +if [ -f "${NEO_CONFIG}" ]; then +	. "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" +elif [ -f "${HOME}"/.neorc ]; then +	. "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc" +elif [ -f /etc/neo.conf ]; then +	. /etc/neo.conf || die "Failed to source /etc/neo.conf" +else + +# no configuration file found → install NEO +	install_options +	neo_path > $inst_dir/starte_neo +	echo +	echo -e "Um NEO nun jetzt zu aktivieren geben Sie bitte »${green}. $inst_dir/starte_neo${normal}« (mit Punkt und Leerzeichen!) ein." +	echo -e "Danach oder nach dem nächsten Login kann jederzeit mit ${green}asdf${normal} von QWERTZ zu NEO und mit ${green}uiae${normal} von NEO zu QWERTZ gewechselt werden." +	exit +fi + + +# configuration file found → delete/deinstall options +deinstall_options +exit + diff --git a/linux/bin/erzeuge_installation/neo.conf.installation b/linux/bin/erzeuge_installation/neo.conf.erzeuge.installiere_neo index a3d9148..a3d9148 100644 --- a/linux/bin/erzeuge_installation/neo.conf.installation +++ b/linux/bin/erzeuge_installation/neo.conf.erzeuge.installiere_neo diff --git a/linux/bin/installiere_neo b/linux/bin/installiere_neo index bd907e6..3d16a2b 100755 --- a/linux/bin/installiere_neo +++ b/linux/bin/installiere_neo @@ -1,18 +1,20 @@  #!/bin/bash  # Copyright 2008 Pascal Hauck <pascal.hauck@web.de> -# Distributed under the terms of the GNU General Public License v3  # ======= Installation =======  # Um NEO auf Ihrem System zu (dauerhaft) zu installieren, genügt es, dieses Skript auszuführen  # z.B. in der Konsole die folgenden beiden Zeilen eingeben: -# chmod u+x installation -# ./installation -# Nun ist NEO auf Ihrem System dauerhaft installier -# Ein Wechsel zurück zu QWERTZ ist jederzeit mit ›uiae‹ leicht möglich - -# Wenn NEO nicht automatisch nach dem Login gestartet werden soll, genügt es, vor die Zeile, die mit -# asdf   # mit einem # am Zeilenanfang -# beginnt und sich in der Datei $HOME/.profile befinden, ein # zu setzen +# chmod u+x installiere_neo +# ./installiere_neo +# Nun ist NEO auf Ihrem System installiert +# Nach Eingabe von ›. starte_neo‹ oder nach dem nächsten Login ist: +# ein Wechsel von NEO zu QWERTZ ist jederzeit mit ›uiae‹ leicht möglich und +# ein Wechsel von QWERTZ zu NEO ist jederzeit mit ›asdf‹ ebenso leicht möglich + +# Wenn NEO nicht automatisch nach dem Login gestartet werden soll, genügt es, vor die Zeile +# asdf			# mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO +# in der Datei $HOME/.profile ein # zu setzen +# Alternativ kann das Skript ›installiere_neo‹ ein weiteres mal aufgerufen werden  # ============================== @@ -22,8 +24,8 @@  # ======= Bemerkungen ========== -# Dieses Skript ist eine rudimentäre Installation. Derzeit gibt es keine Konfigurationsmöglichkeit. -# Es wird immer das Standardverzeichnis $HOME/neo verwendet +# Dieses Skript ist eine rudimentäre Installation. +# Es wird immer das Standardverzeichnis $inst_dir verwendet  # Es gibt keine graphische Installation  # Dennoch kann dieses Skrip helfen, NEO auf eine einfache Weise zu installieren.  # Dieses Skript wird mit der Zeit verbessert werden. @@ -31,115 +33,42 @@  # colours in the Bash -B="\033[30m" -R="\033[31m" -G="\033[32m" +normal="\033[0m" +red="\033[31m" +green="\033[32m" + +inst_dir=$HOME/neo -datei() {  # cut files from the complete file ›installiere_neo‹ -	grep -A10000 "#neo: $1 --- Beginn" installation | grep -B10000 "#neo: $1 --- Ende" | grep -v "#neo:" +# remove the entry in $HOME/.profile +rmfromprofile() +{ +	grep -v "^\# NEO:$" $HOME/.profile | grep -v "asdf   \# mit" | grep -v "asdf" > $HOME/profile.neo.tmp +	rm /$HOME/.profile +	mv $HOME/profile.neo.tmp $HOME/.profile  } -erzeuge() {  # create directories, files and entries -	case $1 in -	d) # directory -		if [ -d $2 ]				# if already exists -		then -			echo -e "Das Verzeichnis ${R}$2${B} gibt es bereits – wird verwendet…" -		else -			echo -e "Erstelle $2" -			mkdir $2			# create -		fi -		;; -	f) # file -		if [ -f $3 ]				# if already exists +# create directories, files and entries +create() +{ +	if [ -f $2 ]					# if already exists +	then +		echo -e "Die Datei ${red}$2${normal} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite +		if [ "$overwrite" = "J" ]	# overwrite?  		then -			echo -e "Die Datei ${R}$3${B} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite -			if [ "$overwrite" = "J" ]	# overwrite? -			then -				echo "Datei $3 wird überschrieben!" -				rm -f $3		# remove if user wants to overwrite -			else -				echo -e "Datei ${R}$3${B} gibt es schon → Installation abgebrochen" -				exit -			fi -		fi -		echo "Erstelle Datei $3"		# create -		datei $2 > $3 -		;; -	l) # soft link -		if [ -d $HOME/bin/ ]			# $HOME/bin has to exist! -		then -			echo "Verzeichnis $HOME/bin/ gefunden" +			echo "Datei $2 wird überschrieben!" +			rm -f $2			# remove if user wants to overwrite  		else -			echo -e "Verzeichnis ${R}$HOME/bin${B} wird erwartet, ist aber nicht vorhanden" -			echo "Außerdem wird erwartet, dass /$HOME/bin in der Umgebungsvariable \$PATH ist" -			echo "Istallation wird abgebrochen." +			echo -e "Datei ${red}$2${normal} gibt es schon → Installation abgebrochen"  			exit  		fi -		if [ -f $HOME/bin/$2 ]			# if already exists -		then -			echo -e "Datei ${R}$HOME/bin/$2${B} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite -			if [ "$overwrite" = "J" ]	# overwrite? -			then -				echo "Datei $2 wird überschrieben!" -				rm -f $HOME/bin/$2	# remove if user wants to overwrite -			else -				echo -e "Datei ${R}$2${B} gibt es schon → Installation abgebrochen" -				exit -			fi -		fi -		echo "Erstelle Link $HOME/bin/$2" -		ln -s $HOME/neo/$2 $HOME/bin		# create -		;; -	esac -} - -entferne(){  # remove files for uninstall option -	echo "Entferne $1" -	rm $1 || echo -e "${R}Konnte die Datei $1 nicht entfernen!${B}" -} - -deinstall() {  #remove all directories, files and entries made by ›installiere_neo‹ -	echo -	echo -	rmfromprofile -	entferne $HOME/.neorc -	entferne $HOME/bin/uiae -	entferne $HOME/neo/uiae -	entferne $HOME/bin/asdf -	entferne $HOME/neo/asdf -	entferne $HOME/neo/neo.map -	entferne $HOME/neo/neo_de.xmodmap -	echo "Entferne $HOME/neo/" -	rmdir $HOME/neo/ || echo -e "${R}Konnte das Verzeichenis $HOME/neo/ nicht entfernen!${B}" -} - -rmfromprofile() {  # remove the entry in $HOME/.profile -	grep -v "^\# NEO:$" $HOME/.profile | grep -v "asdf   \# mit" > $HOME/profile.neo.tmp -	rm /$HOME/.profile -	mv $HOME/profile.neo.tmp $HOME/.profile +	fi +	echo "Erstelle Datei $2"			# create +	$1 > $2						# call subroutine $1 and write to file $2  } - -# *** main program *** -clear -echo -echo "   *** NEO – Ergonomie und Zeichenvielfalt ***" -echo -echo -echo " Ihr System wird untersucht…" -echo - -# check for an existing neo configuration -if [ -f "${NEO_CONFIG}" ]; then -	. "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" -elif [ -f "${HOME}"/.neorc ]; then -	. "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc" -elif [ -f /etc/neo.conf ]; then -	. /etc/neo.conf || die "Failed to source /etc/neo.conf" -else - -# no configuration file found → install NEO +## show options if NEO is not installed so far +install_options() +{  	echo "Bislang gibt es kein vollständig konfiguriertes NEO auf Ihrem System"  	echo  	echo "Sie haben folgende Möglichkeiten:" @@ -153,7 +82,7 @@ else  	echo "       Login automatisch aktiviert"  	echo  	echo -	echo -e " Wenn ${G}installiere_neo${B} ein weiteres Mal aufgerufen wird, haben weitere Optionen – z.B. die Deinstallation von NEO" +	echo -e " Wenn ${green}installiere_neo${normal} ein weiteres Mal aufgerufen wird, haben weitere Optionen – z.B. die Deinstallation von NEO"  	echo  	installoption="" @@ -165,16 +94,18 @@ else                  2)                          echo                          echo "Nach dem Login wird NEO die Standardbelegung sein." -                        echo -e "Um dies zu ändern, kann ${G}installiere_neo${B} ein weiteres Mal ausgeführt werden." -			echo +                        echo -e "Um dies zu ändern, kann ${green}installiere_neo${normal} ein weiteres Mal ausgeführt werden." +			echo -e ${red}  			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" +			echo -e ${normal}                          ;;                  1)                          echo -                        echo "Das Standardlayout wird nich verändert." -                        echo -e "Zu NEO kann man jederzeit mit der Abrollbewegung ${G}asdf${B} wechseln." -			echo +                        echo "Das Standardlayout wird nicht verändert." +                        echo -e "Zu NEO kann man jederzeit mit der Abrollbewegung ${green}asdf${normal} wechseln." +			echo -e ${red}  			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" +			echo -e ${normal}                          ;;                  *)                          echo @@ -186,97 +117,118 @@ else  	echo -	echo -	echo " Installation von NEO mit xmodmap wird gestartet…" +	echo "Installation von NEO mit xmodmap wird gestartet…"  	echo  	echo  # *** main installation process *** -# creating a directory $HOME/neo with NEO files -# linking ›asdf‹ and ›uiae‹ scripts to $HOME/bin -	erzeuge d $HOME/neo -	erzeuge f xmodmap $HOME/neo/neo_de.xmodmap -	erzeuge f console $HOME/neo/neo.map -	erzeuge f asdf $HOME/neo/asdf -	chmod u+x $HOME/neo/asdf -	erzeuge l asdf -	erzeuge f uiae $HOME/neo/uiae -	chmod u+x $HOME/neo/uiae -	erzeuge l uiae -	erzeuge f neorc $HOME/.neorc +# creating a directory $inst_dir +	if [ -d $inst_dir ] +	then +		echo -e "Das Verzeichnis ${red}$inst_dir${normal} gibt es bereits – wird verwendet…" +	else +		echo -e "Erstelle $inst_dir" +		mkdir $inst_dir +	fi + +# creating NEO files in $inst_dir +	create neo_xmodmap $inst_dir/neo_de.xmodmap +	create neo_console $inst_dir/neo.map +	create neo_asdf $inst_dir/asdf +	chmod u+x $inst_dir/asdf +	create neo_uiae $inst_dir/uiae +	chmod u+x $inst_dir/uiae +	create neorc $HOME/.neorc  # entry in $HOME/.profile with NEO or QWERTZ as standard keyboard layout after login  	case $installoption in   	2)  		echo  		echo "Nach dem Login wird NEO die Standardbelegung sein." -		echo -e "Um dies zu ändern, kann ${G}installiere_neo${B} ein weiteres Mal ausgeführt werden." +		echo -e "Um dies zu ändern, kann ${green}installiere_neo${normal} ein weiteres Mal ausgeführt werden."  		rmfromprofile -		datei profile.neo > $HOME/neo/neo.profile -		cat $HOME/neo/neo.profile >> $HOME/.profile -		rm $HOME/neo/neo.profile +		profile_neo >> $HOME/.profile  		;;  	1)  		echo  		echo "Das Standardlayout wird nich verändert." -		echo -e "Zu NEO kann man jederzeit mit der Abrollbewegung ${G}asdf${B} wechseln."  		rmfromprofile -		datei profile.qwertz > $HOME/neo/neo.profile -		cat $HOME/neo/neo.profile >> $HOME/.profile -		rm $HOME/neo/neo.profile +		profile_qwertz >> $HOME/.profile  		;;  	esac +} -# starting NEO layout -	echo -	echo "Die Belegung wird nun auf NEO geändert…"	 -	cd $HOME/neo -	./asdf xmodmap -	echo -e "Um zu QWERTZ zurückzukehren, genügt es, die Abrollbewegung ${G}uiae${B} einzugeben." -	exit -fi +# remove files for uninstall option +remove() +{ +	echo "Entferne $1" +	rm $1 || echo -e "${red}Konnte die Datei $1 nicht entfernen!${normal}" +} +# remove all directories, files and entries made by ›installiere_neo‹ +deinstall() +{ +	echo +	echo +	rmfromprofile +	remove $HOME/.neorc +	remove $inst_dir/starte_neo +	remove $inst_dir/uiae +	remove $inst_dir/asdf +	remove $inst_dir/neo.map +	remove $inst_dir/neo_de.xmodmap +	echo "Entferne $inst_dir/" +	rmdir $inst_dir/ || echo -e "${red}Konnte das Verzeichenis $inst_dir/ nicht entfernen!${normal}" +} -# configuration file found → delete/deinstall options +# show options if NEO is already installed +deinstall_options() +{  	echo "Es gibt auf Ihrem System bereits eine Konfiguration für NEO."  	echo  	echo "Sollte NEO nur für diesen Benutzer installiert sein, haben folgende Möglichkeiten:"  	echo  	echo " [1]  NEO zukünftig nicht mehr als Standardbelegung" -	echo -e "       NEO wird nicht länger direkt nach dem Login zur Verfügung stehen, wohl aber nach Eingabe von ${G}adsf${B}." +	echo -e "       NEO wird nicht länger direkt nach dem Login zur Verfügung stehen, wohl aber nach Eingabe von ${green}adsf${normal}."  	echo  	echo  	echo " [2] NEO vollständig vom System entfernen"  	echo "       Dieso Option entfernt alle zuvor angelegten Verzeichnisse, Datein und Einträge zur NEO-Belegung"  	echo  	echo -	echo " Diese Optionen funktionieren nur dann zuverlässig, wenn NEO auch mit ${G}installiere_neo${B} installiert wurde" +	echo -e " Diese Optionen funktionieren nur dann zuverlässig, wenn NEO auch mit ${green}installiere_neo${normal} installiert wurde"  	echo  	deinstalloption="" -	while [ ! $deinstalloption ]			# choose between deleting NEO as standard layout or delete NEO at all -	do						# if deleted as standard layout only, ›asdf‹ is still working +	while [ ! $deinstalloption ]					# choose between deleting NEO as standard layout or delete NEO at all +	do								# if deleted as standard layout only, ›asdf‹ is still working  		echo  		read -p "Wählen Sie eine Option [1,2]: " -e deinstalloption  	        case $deinstalloption in                  2)                          echo -                        echo -e "Alle zuvor von ${G}installiere_neo${B} vorgenommen Änderungen am System werden gelöscht!" -			echo +                        echo -e "Alle zuvor von ${green}installiere_neo${normal} vorgenommen Änderungen am System werden gelöscht!" +			echo -e ${red}  			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" -			deinstall			# full deinstallation +			echo -e ${normal} +			cd $inst_dir +			./uiae +			deinstall					# full deinstallation +			echo +			echo -e "Alle von ${green}installiere_neo${normal} gemachten Änderungen an Ihrem System wurden entfernt."                          ;;                  1)                          echo                          echo "NEO wird als Standardbelegung entfernt" -                        echo -e "Zu NEO kann man weiterhin jederzeit mit der Abrollbewegung ${G}asdf${B} wechseln." -			echo +                        echo -e "Zu NEO kann man weiterhin jederzeit mit der Abrollbewegung ${green}asdf${normal} wechseln." +			echo -e ${red}  			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" +			echo -e ${normal} +			echo +			rmfromprofile					# alter the entry in $HOME/.profile; first: remove old entry +			profile_qwertz >> $HOME/.profile		# write the new entry  			echo -			rmfromprofile			# alter the entry in $HOME/.profile; first: remove old entry -			echo >> $HOME/.profile		# write the new entry -			echo "# NEO:" >> $HOME/.profile -			echo "# asdf   # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO" >> $HOME/.profile +			echo "Nach dem nächsten Login wird NEO nicht mehr die Standardbelegung sein. "                          ;;                  *)                          echo @@ -286,9 +238,11 @@ fi                          ;;                  esac  	done -exit +} -#neo: xmodmap --- Beginn +neo_xmodmap () +{ +cat <<NEO_XMODMAP  !! ~/.xmodmap  !!   !! German NEO-Layout @@ -302,7 +256,7 @@ exit  !! Other Questions:  !!      <mailinglist at neo-layout dot org>  !!  -!! $Revision: 1293 $, $Date: 2008-12-19 09:39:48 +0100 (Fr, 19 Dez 2008) $ +!! \$Revision: 1293 \$, \$Date: 2008-12-19 09:39:48 +0100 (Fr, 19 Dez 2008) \$  !! http://pebbles.schattenlauf.de/layout.php  !!   !! To try the layout in this file, simply do xmodmap <file>. @@ -413,7 +367,7 @@ keycode 65 = space  space  space  nobreakspace  KP_0  KP_0  U202F  NoSymbol  keycode 49 = dead_circumflex	dead_tilde	dead_abovering	dead_breve	dead_caron  Pointer_EnableKeys	dead_macron	NoSymbol  ! called T1	ˆ		˜		˚		˘		ˇ	   (keypad-mouse mode)	¯  keycode 21 = dead_grave		NoSymbol	dead_diaeresis	U1FFE		NoSymbol	NoSymbol	NoSymbol	NoSymbol -! called T2	`				¨		῾ dasia (asper) +! called T2	\`				¨		῾ dasia (asper)  keycode 35 = dead_acute		dead_cedilla	dead_stroke	U1FBF	     dead_doubleacute	NoSymbol	dead_abovedot	NoSymbol  ! called T3	´		¸		/		᾿ psili (lenis)	˝				˙ @@ -438,7 +392,7 @@ keycode 15 = 	6		EuroSign	cent		malesymbol	sterling	NoSymbol	U2225		NoSymbol  !				€		¢		♂		£				∥ parallel  keycode 16 = 	7		dollar		yen		Greek_kappa	currency	NoSymbol	rightarrow	NoSymbol -!				$		¥		κ		¤				→ +!				\$		¥		κ		¤				→  keycode 17 = 	8   doublelowquotemark    singlelowquotemark  leftanglebracket	NoSymbol	NoSymbol	infinity	NoSymbol  !				„		‚		⟨ (bra)						∞  keycode 18 = 	9   leftdoublequotemark   leftsinglequotemark rightanglebracket KP_Divide	KP_Divide	containsas	NoSymbol @@ -514,13 +468,13 @@ keycode 48 = 	y		Y		at		Greek_upsilon	KP_Decimal	NoSymbol	nabla		NoSymbol  keycode 52 = udiaeresis		Udiaeresis	numbersign	NoSymbol	Escape		Escape		U211C		NoSymbol  !		ü		Ü		#								ℜ real part  keycode 53 = odiaeresis		Odiaeresis	dollar		NoSymbol	Tab		ISO_Left_Tab	U2111		NoSymbol -!		ö		Ö		$								ℑ imaginary part +!		ö		Ö		\$								ℑ imaginary part  keycode 54 = adiaeresis		Adiaeresis	bar		Greek_eta	Next		Next		U2135		NoSymbol  !		ä		Ä		|		η						ℵ alef symbol  keycode 55 = 	p		P		asciitilde	Greek_pi	Return		Return		Greek_PI	Greek_PI  !						~		π						Π		Π  keycode 56 = 	z		Z		grave		Greek_zeta	Undo		Redo		U2124		NoSymbol -!						`		ζ						ℤ integers +!						\`		ζ						ℤ integers  keycode 57 = 	b		B		plus		Greek_beta	colon		NoSymbol	U21D0		NoSymbol  !						+		β		:				⇐ @@ -619,8 +573,12 @@ keycode 91 = comma		period		KP_Separator	minutes		seconds		NoSymbol  !     Hierzu wird mittels Mod4+ß dieser Betriebsmodus ein- und später wieder ausgeschaltet.  !     Die Steuerung des Cursors kann über den Ziffernblock (Ebene 4, eventuell mit  !     eingerastetem Mod4) erfolgen. -#neo: xmodmap --- Ende -#neo: console --- Beginn +NEO_XMODMAP +} + +neo_console () +{ +cat <<NEO_CONSOLE  ! neo.map - german NEO keyboard layout  ! 2008 Pascal Hauck, <pascal.hauck@web.de>  ! @@ -1238,8 +1196,12 @@ compose as usual  ! Strings and Compose  ! --------------------------------------------------------------------------  # string F100 = "setleds +num\n" -#neo: console --- Ende -#neo: asdf --- Beginn +NEO_CONSOLE +} + +neo_asdf () +{ +cat <<NEO_ASDF  #!/bin/sh  # Copyright 2008 Bernd Steinhauser <berniyh@exherbo.org>  # Copyright 2008 Benjamin Kellermann @@ -1247,10 +1209,10 @@ compose as usual  # Copyright 2008 Erik Streb del Toro  # Distributed under the terms of the GNU General Public License v3 -if [ -f "${NEO_CONFIG}" ]; then -	. "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" -elif [ -f "${HOME}"/.neorc ]; then -	. "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc" +if [ -f "\${NEO_CONFIG}" ]; then +	. "\${NEO_CONFIG}" || die "Failed to source \${NEO_CONFIG}" +elif [ -f "\${HOME}"/.neorc ]; then +	. "\${HOME}"/.neorc || die "Failed to source \${HOME}/.neorc"  elif [ -f /etc/neo.conf ]; then  	. /etc/neo.conf || die "Failed to source /etc/neo.conf"  else @@ -1258,37 +1220,37 @@ else  fi  # Default paths -PATH_XMODMAP=${PATH_XMODMAP:-/usr/bin/xmodmap} -PATH_SETXKBMAP=${PATH_SETXKBMAP:-/usr/bin/setxkbmap} -PATH_LOADKEYS=${PATH_LOADKEYS:-/usr/bin/loadkeys} -PATH_SUDO=${PATH_SUDO:-/usr/bin/sudo} -PATH_SETLEDS=${PATH_SETLEDS:-/usr/bin/setleds} -PATH_NUMLOCKX=${PATH_NUMLOCKX:-/usr/bin/numlockx} -PATH_XSET=${PATH_XSET:-/usr/bin/xset} +PATH_XMODMAP=\${PATH_XMODMAP:-/usr/bin/xmodmap} +PATH_SETXKBMAP=\${PATH_SETXKBMAP:-/usr/bin/setxkbmap} +PATH_LOADKEYS=\${PATH_LOADKEYS:-/usr/bin/loadkeys} +PATH_SUDO=\${PATH_SUDO:-/usr/bin/sudo} +PATH_SETLEDS=\${PATH_SETLEDS:-/usr/bin/setleds} +PATH_NUMLOCKX=\${PATH_NUMLOCKX:-/usr/bin/numlockx} +PATH_XSET=\${PATH_XSET:-/usr/bin/xset}  # Default values -NEO_X_VARIANTE=${NEO_X_VARIANTE:-xkbmap} -NEO_X_VARIANTE=${1-$NEO_X_VARIANTE} -NEO_XKBMAP=${NEO_XKBMAP:-de} -NEO_XKBVARIANT=${NEO_XKBVARIANT:-neo} -NEO_XMODMAP=${NEO_XMODMAP:-$HOME/neo/neo_de.xmodmap} -NEO_XMODMAP_XPROG=${NEO_XMODMAP_XPROG:-$HOME/neo/neo_de_x-prog.xmodmap} -NEO_XMODMAP_ALTERNATIVE=${NEO_XMODMAP_ALTERNATIVE:-$HOME/neo/neo_de_alternative.xmodmap} -NEO_XMODMAP_EVDEV=${NEO_XMODMAP_EVDEV:-$HOME/neo/neo_de_evdev.xmodmap} -NEO_CONSOLE_KEYMAP=${NEO_CONSOLE_KEYMAP:-$HOME/neo/neo.map} +NEO_X_VARIANTE=\${NEO_X_VARIANTE:-xkbmap} +NEO_X_VARIANTE=\${1-\$NEO_X_VARIANTE} +NEO_XKBMAP=\${NEO_XKBMAP:-de} +NEO_XKBVARIANT=\${NEO_XKBVARIANT:-neo} +NEO_XMODMAP=\${NEO_XMODMAP:-\$HOME/neo/neo_de.xmodmap} +NEO_XMODMAP_XPROG=\${NEO_XMODMAP_XPROG:-\$HOME/neo/neo_de_x-prog.xmodmap} +NEO_XMODMAP_ALTERNATIVE=\${NEO_XMODMAP_ALTERNATIVE:-\$HOME/neo/neo_de_alternative.xmodmap} +NEO_XMODMAP_EVDEV=\${NEO_XMODMAP_EVDEV:-\$HOME/neo/neo_de_evdev.xmodmap} +NEO_CONSOLE_KEYMAP=\${NEO_CONSOLE_KEYMAP:-\$HOME/neo/neo.map}  die() { -	echo "$@" >&2 +	echo "\$@" >&2  	exit 1  }  set_xmodmap() { -	if [ -e "${PATH_XMODMAP}" ]; then -		if [ -f "$@" ]; then +	if [ -e "\${PATH_XMODMAP}" ]; then +		if [ -f "\$@" ]; then  			set_xkbmap lv -			"${PATH_XMODMAP}" "$@" || ( set_xkbmap de ; die "Failed to set xmodmap $@." ) +			"\${PATH_XMODMAP}" "\$@" || ( set_xkbmap de ; die "Failed to set xmodmap \$@." )  		else -			die "Cannot use $@ for xmodmap." +			die "Cannot use \$@ for xmodmap."  		fi  	else  		die "xmodmap not found, cannot set xmodmap." @@ -1296,85 +1258,89 @@ set_xmodmap() {  }  set_xkbmap() { -	if [ -e "${PATH_SETXKBMAP}" ]; then -		"${PATH_SETXKBMAP}" "$@" || die "Failed to select xkbmap $@." +	if [ -e "\${PATH_SETXKBMAP}" ]; then +		"\${PATH_SETXKBMAP}" "\$@" || die "Failed to select xkbmap \$@."  	else  		die "setxkbmap not found, cannot set xkbmap."  	fi  }  set_keymap() { -	if [ -e "${PATH_LOADKEYS}" ]; then -		if [ -f "$@" ]; then -			if [ "${EUID}" = 0 ]; then -				"${PATH_LOADKEYS}" "$@" || die "Failed to set keymap $@." -			elif [ -e "${PATH_SUDO}" ]; then -				"${PATH_SUDO}" "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap using sudo." +	if [ -e "\${PATH_LOADKEYS}" ]; then +		if [ -f "\$@" ]; then +			if [ "\${EUID}" = 0 ]; then +				"\${PATH_LOADKEYS}" "\$@" || die "Failed to set keymap \$@." +			elif [ -e "\${PATH_SUDO}" ]; then +				"\${PATH_SUDO}" "\${PATH_LOADKEYS}" "\$@" || die "Failed to set keymap using sudo."  			else  				die "You need root priviliges to change the keymap."  			fi  		else -			die "keymap file $@ does not exist." +			die "keymap file \$@ does not exist."  		fi  	else  		die "loadkeys not found, cannot set keymap."  	fi  } -if [ -n "$SSH_CONNECTION" ]; then +if [ -n "\$SSH_CONNECTION" ]; then  	die "Cannot set keybord layout in a ssh session."  fi -if [ -z ${DISPLAY} ]; then -	set_keymap "${NEO_CONSOLE_KEYMAP}" +if [ -z \${DISPLAY} ]; then +	set_keymap "\${NEO_CONSOLE_KEYMAP}" -	if [ -e "${PATH_SETLEDS}" ]; then -		"${PATH_SETLEDS}" +num || die "Failed to set NUM status." +	if [ -e "\${PATH_SETLEDS}" ]; then +		"\${PATH_SETLEDS}" +num || die "Failed to set NUM status."  	else  		die "setleds does not exist, cannot set NUM status."  	fi  else -	if [ -e "${PATH_NUMLOCKX}" ]; then -		"${PATH_NUMLOCKX}" off || die "Failed to turn off Numlock." +	if [ -e "\${PATH_NUMLOCKX}" ]; then +		"\${PATH_NUMLOCKX}" off || die "Failed to turn off Numlock."  	else  		die "numlockx not found, cannot turn off Numlock."  	fi -	if [ -e "${PATH_XSET}" ]; then +	if [ -e "\${PATH_XSET}" ]; then  		for modifier in 51 94; do -			"${PATH_XSET}" -r ${modifier} || die "Failed to unset repeat for modifier ${modifier}." +			"\${PATH_XSET}" -r \${modifier} || die "Failed to unset repeat for modifier \${modifier}."  		done  		for deadkey in 21 35 49; do -			"${PATH_XSET}" -r ${deadkey} || die "Failed to unset repeat for deadkey ${deakey}." +			"\${PATH_XSET}" -r \${deadkey} || die "Failed to unset repeat for deadkey \${deakey}."  		done  	else  		die "xset not found, cannot set modifiers and dead keys."  	fi -	case "${NEO_X_VARIANTE}" in +	case "\${NEO_X_VARIANTE}" in  		xkbmap) -			set_xkbmap "${NEO_XKBMAP}" "${NEO_XKBVARIANT}" +			set_xkbmap "\${NEO_XKBMAP}" "\${NEO_XKBVARIANT}"  			;;  		xmodmap) -			set_xmodmap "${NEO_XMODMAP}" +			set_xmodmap "\${NEO_XMODMAP}"  			;;  		xprog) -			set_xmodmap "${NEO_XMODMAP_XPROG}" +			set_xmodmap "\${NEO_XMODMAP_XPROG}"  			;;  		alternative) -			set_xmodmap "${NEO_XMODMAP_ALTERNATIVE}" +			set_xmodmap "\${NEO_XMODMAP_ALTERNATIVE}"  			;;  		evdev) -			set_xmodmap "${NEO_XMODMAP_EVDEV}" +			set_xmodmap "\${NEO_XMODMAP_EVDEV}"  			;;  		*) -			die "Unknown Neo X variant ${NEO_X_VARIANTE}." +			die "Unknown Neo X variant \${NEO_X_VARIANTE}."  			;;  	esac  fi -#neo: asdf --- Ende -#neo: uiae --- Beginn +NEO_ASDF +} + +neo_uiae () +{ +cat <<NEO_UIAE  #!/bin/sh  # Copyright 2008 Bernd Steinhauser <berniyh@exherbo.org>  # Copyright 2008 Benjamin Kellermann @@ -1382,10 +1348,10 @@ fi  # Copyright 2008 Erik Streb del Toro  # Distributed under the terms of the GNU General Public License v3 -if [ -f "${NEO_CONFIG}" ]; then -	. "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" -elif [ -f "${HOME}"/.neorc ]; then -	. "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc" +if [ -f "\${NEO_CONFIG}" ]; then +	. "\${NEO_CONFIG}" || die "Failed to source \${NEO_CONFIG}" +elif [ -f "\${HOME}"/.neorc ]; then +	. "\${HOME}"/.neorc || die "Failed to source \${HOME}/.neorc"  elif [ -f /etc/neo.conf ]; then  	. /etc/neo.conf || die "Failed to source /etc/neo.conf"  else @@ -1393,32 +1359,32 @@ else  fi  # Default paths -PATH_XMODMAP=${PATH_XMODMAP:-/usr/bin/xmodmap} -PATH_SETXKBMAP=${PATH_SETXKBMAP:-/usr/bin/setxkbmap} -PATH_LOADKEYS=${PATH_LOADKEYS:-/usr/bin/loadkeys} -PATH_SUDO=${PATH_SUDO:-/usr/bin/sudo} -PATH_SETLEDS=${PATH_SETLEDS:-/usr/bin/setleds} -PATH_NUMLOCKX=${PATH_NUMLOCKX:-/usr/bin/numlockx} -PATH_XSET=${PATH_XSET:-/usr/bin/xset} +PATH_XMODMAP=\${PATH_XMODMAP:-/usr/bin/xmodmap} +PATH_SETXKBMAP=\${PATH_SETXKBMAP:-/usr/bin/setxkbmap} +PATH_LOADKEYS=\${PATH_LOADKEYS:-/usr/bin/loadkeys} +PATH_SUDO=\${PATH_SUDO:-/usr/bin/sudo} +PATH_SETLEDS=\${PATH_SETLEDS:-/usr/bin/setleds} +PATH_NUMLOCKX=\${PATH_NUMLOCKX:-/usr/bin/numlockx} +PATH_XSET=\${PATH_XSET:-/usr/bin/xset}  # Default values -STD_X_VARIANTE=${STD_X_VARIANTE:-xkbmap} -STD_XKBMAP=${STD_XKBMAP:-de} -STD_XKBVARIANT=${STD_XKBVARIANT:-nodeadkeys} -STD_CONSOLE_KEYMAP="${STD_CONSOLE_KEYMAP:-de-latin1-nodeadkeys}" -NUM_LOCK_STATUS=${NUM_LOCK_STATUS:-on} +STD_X_VARIANTE=\${STD_X_VARIANTE:-xkbmap} +STD_XKBMAP=\${STD_XKBMAP:-de} +STD_XKBVARIANT=\${STD_XKBVARIANT:-nodeadkeys} +STD_CONSOLE_KEYMAP="\${STD_CONSOLE_KEYMAP:-de-latin1-nodeadkeys}" +NUM_LOCK_STATUS=\${NUM_LOCK_STATUS:-on}  die() { -	echo "$@" >&2 +	echo "\$@" >&2  	exit 1  }  set_xmodmap() { -	if [ -e "${PATH_XMODMAP}" ]; then -		if [ -f "$@" ]; then -			"${PATH_XMODMAP}" "$@" || die "Failed to set xmodmap $@." +	if [ -e "\${PATH_XMODMAP}" ]; then +		if [ -f "\$@" ]; then +			"\${PATH_XMODMAP}" "\$@" || die "Failed to set xmodmap \$@."  		else -			die "Cannot use $@ for xmodmap." +			die "Cannot use \$@ for xmodmap."  		fi  	else  		die "xmodmap not found, cannot set xmodmap." @@ -1426,85 +1392,89 @@ set_xmodmap() {  }  set_xkbmap() { -	if [ -e "${PATH_SETXKBMAP}" ]; then -		"${PATH_SETXKBMAP}" "$@" || die "Failed to select xkbmap $@." +	if [ -e "\${PATH_SETXKBMAP}" ]; then +		"\${PATH_SETXKBMAP}" "\$@" || die "Failed to select xkbmap \$@."  	else  		die "setxkbmap not found, cannot set xkbmap."  	fi  }  set_keymap() { -	if [ -e "${PATH_LOADKEYS}" ]; then -		if [ -f "$@" ]; then -			if [ "${EUID}" = 0 ]; then -				"${PATH_LOADKEYS}" "$@" || die "Failed to set keymap $@." -			elif [ -e "${PATH_SUDO}" ]; then -				"${PATH_SUDO}" "${PATH_LOADKEYS}" "$@" || die "Failed to set keymap using sudo." +	if [ -e "\${PATH_LOADKEYS}" ]; then +		if [ -f "\$@" ]; then +			if [ "\${EUID}" = 0 ]; then +				"\${PATH_LOADKEYS}" "\$@" || die "Failed to set keymap \$@." +			elif [ -e "\${PATH_SUDO}" ]; then +				"\${PATH_SUDO}" "\${PATH_LOADKEYS}" "\$@" || die "Failed to set keymap using sudo."  			else  				die "You need root priviliges to change the keymap."  			fi  		else -			die "keymap file $@ does not exist." +			die "keymap file \$@ does not exist."  		fi  	else  		die "loadkeys not found, cannot set keymap."  	fi  } -if [ -n "$SSH_CONNECTION" ]; then +if [ -n "\$SSH_CONNECTION" ]; then  	die "Cannot set keybord layout in a ssh session."  fi -if [ -z ${DISPLAY} ]; then -	set_keymap "${NEO_CONSOLE_KEYMAP}" +if [ -z \${DISPLAY} ]; then +	set_keymap "\${NEO_CONSOLE_KEYMAP}" -	if [ -e "${PATH_SETLEDS}" ]; then -		if [ "${NUM_LOCK_STATUS}" = "on" ]; then -			"${PATH_SETLEDS}" -num || die "Failed to set num lock status to on." +	if [ -e "\${PATH_SETLEDS}" ]; then +		if [ "\${NUM_LOCK_STATUS}" = "on" ]; then +			"\${PATH_SETLEDS}" -num || die "Failed to set num lock status to on."  		else -			"${PATH_SETLEDS}" +num || die "Failed to set num lock status to off." +			"\${PATH_SETLEDS}" +num || die "Failed to set num lock status to off."  		fi  	else  		die "setleds does not exist, cannot set NUM status."  	fi  else -	if [ -e "${PATH_XSET}" ]; then +	if [ -e "\${PATH_XSET}" ]; then  		for modifier in 51 94; do -			"${PATH_XSET}" r ${modifier} || die "Failed to set repeat for modifier ${modifier}." +			"\${PATH_XSET}" r \${modifier} || die "Failed to set repeat for modifier \${modifier}."  		done  		for deadkey in 21 35 49; do -			"${PATH_XSET}" r ${deadkey} || die "Failed to set repeat for deadkey ${deakey}." +			"\${PATH_XSET}" r \${deadkey} || die "Failed to set repeat for deadkey \${deakey}."  		done  	else  		die "xset not found, cannot set modifiers and dead keys."  	fi -	case "${STD_X_VARIANTE}" in +	case "\${STD_X_VARIANTE}" in  		xkbmap) -			set_xkbmap "${STD_XKBMAP}" "${STD_XKBVARIANT}" +			set_xkbmap "\${STD_XKBMAP}" "\${STD_XKBVARIANT}"  			;;  		xmodmap)  			set_xkbmap de -			set_xmodmap "${STD_XMODMAP}" +			set_xmodmap "\${STD_XMODMAP}"  			;;  		*) -			die "Unknown standard X variant ${STD_X_VARIANTE}." +			die "Unknown standard X variant \${STD_X_VARIANTE}."  			;;  	esac -	if [ -e "${PATH_NUMLOCKX}" ]; then -		if [ "${NUM_LOCK_STATUS}" = "on" ]; then -			"${PATH_NUMLOCKX}" on || die "Failed to set num lock status to on." +	if [ -e "\${PATH_NUMLOCKX}" ]; then +		if [ "\${NUM_LOCK_STATUS}" = "on" ]; then +			"\${PATH_NUMLOCKX}" on || die "Failed to set num lock status to on."  		else -			"${PATH_NUMLOCKX}" off || die "Failed to set num lock status to off." +			"\${PATH_NUMLOCKX}" off || die "Failed to set num lock status to off."  		fi  	else  		die "numlockx not found, cannot turn off Numlock."  	fi  fi -#neo: uiae --- Ende -#neo: neorc --- Beginn +NEO_UIAE +} + +neorc () +{ +cat <<NEORC  # This file contains the configuration for the Neo scripts  # Select the neo Variant to be used when using an X Server @@ -1524,10 +1494,10 @@ NEO_X_VARIANTE="xmodmap"  # When using a xmodmap, you may specify the full path to the xmodmap to be used.  # Default: -NEO_XMODMAP="$HOME/neo/neo_de.xmodmap" -#NEO_XMODMAP_XPROG="$HOME/neo/neo_de_x-prog.xmodmap" -#NEO_XMODMAP_ALTERNATIVE="$HOME/neo/neo_de_alternative.xmodmap" -#NEO_XMODMAP_EVDEV="$HOME/neo/neo_de_evdev.xmodmap" +NEO_XMODMAP="\$HOME/neo/neo_de.xmodmap" +#NEO_XMODMAP_XPROG="\$HOME/neo/neo_de_x-prog.xmodmap" +#NEO_XMODMAP_ALTERNATIVE="\$HOME/neo/neo_de_alternative.xmodmap" +#NEO_XMODMAP_EVDEV="\$HOME/neo/neo_de_evdev.xmodmap"  # Standard keyboard layout to switch back to when executing "uiae": @@ -1542,7 +1512,7 @@ NEO_XMODMAP="$HOME/neo/neo_de.xmodmap"  # For Neo without an X System set the path to the console keymap -NEO_CONSOLE_KEYMAP="$HOME/neo/neo" # if necessary add „.map“ +NEO_CONSOLE_KEYMAP="\$HOME/neo/neo" # if necessary add „.map“  # Set the standard console keymap to switch back to  #STD_CONSOLE_KEYMAP="de-latin1-nodeadkeys" @@ -1558,15 +1528,68 @@ NEO_CONSOLE_KEYMAP="$HOME/neo/neo" # if necessary add „.map“  #PATH_NUMLOCKX=/usr/bin/numlockx  #PATH_XSET=/usr/bin/xset -#neo: neorc --- Ende -#neo: profile.neo --- Beginn +NEORC +} +#!/bin/bash + +profile_neo() { +cat <<PROFIL  # NEO: -asdf   # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO -#neo: profile.neo --- Ende -#neo: profile.qwertz --- Beginn +PATH=\$PATH:$inst_dir/	# für asdf und uiae +export PATH		# für asdf und uiae +asdf			# mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO +PROFIL +} + +profile_qwertz() { +cat <<PROFIL  # NEO: -# asdf   # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO -#neo: profile.qwertz --- Ende +PATH=\$PATH:$inst_dir/	# für asdf und uiae +export PATH		# für asdf und uiae +# asdf			# mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO +PROFIL +} + +neo_path() { +cat <<NEO_PATH +PATH=$PATH:$inst_dir +export PATH +echo "Die Belegung wird nun auf NEO geändert…" +asdf +NEO_PATH +} + +# *** main program *** +clear +echo +echo "   *** NEO – Ergonomie und Zeichenvielfalt ***" +echo +echo +echo " Ihr System wird untersucht…" +echo + +# check for an existing neo configuration +if [ -f "${NEO_CONFIG}" ]; then +	. "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}" +elif [ -f "${HOME}"/.neorc ]; then +	. "${HOME}"/.neorc || die "Failed to source ${HOME}/.neorc" +elif [ -f /etc/neo.conf ]; then +	. /etc/neo.conf || die "Failed to source /etc/neo.conf" +else + +# no configuration file found → install NEO +	install_options +	neo_path > $inst_dir/starte_neo +	echo +	echo -e "Um NEO nun jetzt zu aktivieren geben Sie bitte »${green}. $inst_dir/starte_neo${normal}« (mit Punkt und Leerzeichen!) ein." +	echo -e "Danach oder nach dem nächsten Login kann jederzeit mit ${green}asdf${normal} von QWERTZ zu NEO und mit ${green}uiae${normal} von NEO zu QWERTZ gewechselt werden." +	exit +fi + + +# configuration file found → delete/deinstall options +deinstall_options +exit | 
