summaryrefslogtreecommitdiff
path: root/linux/bin/installiere_neo
diff options
context:
space:
mode:
Diffstat (limited to 'linux/bin/installiere_neo')
-rw-r--r--linux/bin/installiere_neo/Makefile8
-rwxr-xr-xlinux/bin/installiere_neo/erzeuge.installiere_neo36
-rw-r--r--linux/bin/installiere_neo/installiere_neo.1265
-rw-r--r--linux/bin/installiere_neo/installiere_neo.263
-rw-r--r--linux/bin/installiere_neo/neo.conf.erzeuge.installiere_neo58
5 files changed, 430 insertions, 0 deletions
diff --git a/linux/bin/installiere_neo/Makefile b/linux/bin/installiere_neo/Makefile
new file mode 100644
index 0000000..5af1bcd
--- /dev/null
+++ b/linux/bin/installiere_neo/Makefile
@@ -0,0 +1,8 @@
+installiere_neo: ../../xmodmap/neo_de.xmodmap ../../console/neo.map ../asdf ../uiae ../../../A-REFERENZ-A/neo20.txt ../neo ../num ../../../Compose/Compose.neo neo.conf.erzeuge.installiere_neo
+ ./erzeuge.installiere_neo > installiere_neo
+ chmod a+x installiere_neo
+
+clean:
+ rm -f installiere_neo
+
+.PHONY: clean
diff --git a/linux/bin/installiere_neo/erzeuge.installiere_neo b/linux/bin/installiere_neo/erzeuge.installiere_neo
new file mode 100755
index 0000000..a110283
--- /dev/null
+++ b/linux/bin/installiere_neo/erzeuge.installiere_neo
@@ -0,0 +1,36 @@
+#!/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 neo_referenz ../../../A-REFERENZ-A/neo20.txt
+fuege_ein neo_neo ../neo
+fuege_ein neo_num ../num
+fuege_ein neo_compose ../../../Compose/Compose.neo
+fuege_ein neorc neo.conf.erzeuge.installiere_neo
+
+cat installiere_neo.2 \ No newline at end of file
diff --git a/linux/bin/installiere_neo/installiere_neo.1 b/linux/bin/installiere_neo/installiere_neo.1
new file mode 100644
index 0000000..c0a93df
--- /dev/null
+++ b/linux/bin/installiere_neo/installiere_neo.1
@@ -0,0 +1,265 @@
+#!/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 neo_referenz $inst_dir/neo20.txt
+ create neo_neo $inst_dir/neo
+ chmod u+x $inst_dir/neo
+ create neo_num $inst_dir/num
+ chmod u+x $inst_dir/num
+
+ echo "Ergängze die Compose-Erweiterung von NEO…"
+ create neo_compose $inst_dir/Compose.neo
+ if [ -f $HOME/.XCompose ]
+ then
+ echo -e "Die Datei ${red}$HOME/.XCompose${normal} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite
+ if [ "$overwrite" = "J" ] # overwrite?
+ then
+ echo "Datei $HOME/.XCompose wird überschrieben!"
+ cat /usr/share/X11/locale/en_US.UTF-8/Compose $inst_dir/Compose.neo > $HOME/.XCompose
+ else
+ echo -e "Datei ${red}$HOME/.XCompose${normal} bleibt erhalten, jedoch kann die Compos-Erweiterung von NEO nicht genutzt werden."
+ fi
+ fi
+
+ 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/Compose.neo
+ remove $inst_dir/neo20.txt
+ remove $inst_dir/num
+ remove $inst_dir/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/installiere_neo/installiere_neo.2 b/linux/bin/installiere_neo/installiere_neo.2
new file mode 100644
index 0000000..d6b858d
--- /dev/null
+++ b/linux/bin/installiere_neo/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/installiere_neo/neo.conf.erzeuge.installiere_neo b/linux/bin/installiere_neo/neo.conf.erzeuge.installiere_neo
new file mode 100644
index 0000000..292212a
--- /dev/null
+++ b/linux/bin/installiere_neo/neo.conf.erzeuge.installiere_neo
@@ -0,0 +1,58 @@
+# This file contains the configuration for the Neo scripts
+
+# To use the scripts ›neo‹ and ›num‹ you should specify the full path to the
+# Neo reference
+NEO_REFERENCE="$HOME/neo/neo20.txt"
+
+
+# Select the neo Variant to be used when using an X Server
+# Values are "xkbmap", "xmodmap", "xprog", "alternative" or "evdev"
+# default is xkbmap, this variable should always be set
+NEO_X_VARIANTE="xmodmap"
+
+
+# When using xkbmap, you may specify which xkbmap should be used, the default
+# is "de" (This is useful if you installed the symbols file under a different
+# name):
+#NEO_XKBMAP=de
+
+# You can also specify the xkbmap variant to be used, the default is "neo":
+#NEO_XKBVARIANT=neo
+
+
+# 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"
+
+
+# Standard keyboard layout to switch back to when executing "uiae":
+#STD_XKBMAP=de
+
+# Standard layout variant to switch back to when executing "uiae":
+#STD_XKBVARIANT=nodeadkeys
+
+# Numlock status when switching to standard keyboard layout using "uiae",
+# values are "on" and "off":
+#NUM_LOCK_STATUS=on
+
+
+# For Neo without an X System set the path to the console keymap
+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"
+
+
+# If you installed one of these programs in a non-standard path you may,
+# uncomment the variable and change the path to the executable:
+#PATH_XMODMAP=/usr/bin/xmodmap
+#PATH_SETXKBMAP=/usr/bin/setxkbmap
+#PATH_LOADKEYS=/usr/bin/loadkeys
+#PATH_SUDO=/usr/bin/sudo
+#PATH_SETLEDS=/usr/bin/setleds
+#PATH_NUMLOCKX=/usr/bin/numlockx
+#PATH_XSET=/usr/bin/xset
+