Dateien aus WindowMaker Menü öffnen

Linux Dateien aus WindowMaker Menü öffnen

Dieses kleine Script setze ich ein, um Dateien anzusehen/zu bearbeiten, auf die ich über ein WindowMaker Verzeichnis-Menü zugreife. Dieses Verzeichnis-Menü lässt sich bequem mit wmakerconf oder anderen Programmen einrichten.

#!/bin/bash
# Funktion: Dieses kleine Script dient dazu, eine Datei, die als
#           Parameter übergeben wird, mit einem passenden Programm
#           zu öffnen.
# Name:   start_prog.sh
# Aufruf: start_prog.sh Dateiname
# Copyright: Jens-D. Neppe
# Datum: 09.09.2002
# Änderungen: 09.03.2003 - -remote wird für mozilla verwendet,
#             so dass automatisch ein neues Fenster geöffnet wird.
#             Über sed wird ein & im Kommando durch die zu öffnende
#             Datei ersetzt.
#             11.03.2002 - Fehler beim erstmaligen
#             Aufruf des Browsers beseitigt.   
# Lizenz: GNU General Public License version 2 oder später
# Haftung: Keine Haftung bei Schäden, die aus der direkten/indirekten
# Nutzung dieses Shell-Scripts entstehen können.
#####################################################################


typeset -a arrays emacs_suffix mozilla_suffix\
gnomegv_suffix guitar_suffix gpa_suffix gqview_suffix

# Suffixe nach Programmen sortiert
# Häufig genutzte Suffixe sollten vorne stehen.
emacs_suffix=".txt .tex .php .php3 .php4 .cpp .cc .h .ini .template\
 .sh .sql .css .pl"

gqview_suffix=".jpeg .JPG .jpg .png .PNG .bmp .BMP"

guitar_suffix=".tar .tgz .tar.gz .gz .zip"

mozilla_suffix=".html .htm"

gnomegv_suffix=".pdf .ps"

gpa_suffix=".gpg .asc"

# Jetzt werden die Arrays den Programmen
# zugeordnet. Häufig genutzte Programme/Suffixe sollten
# am Anfang der Arrays stehen.
array[0]="$emacs_suffix"
array[1]="$gqview_suffix"
array[2]="$guitar_suffix"
array[3]="$mozilla_suffix"
array[4]="$gnomegv_suffix"
array[5]="$gpa_suffix"

# Das & steht für die Datei, die geöffnet
# werden soll.
programs[0]="emacs &"
programs[1]="gqview &"
programs[2]="guitar &"
programs[3]="mozilla"
programs[4]="gnome-gv &"
programs[5]="gpa &"

# Jetzt gehts erst richtig los:
acount=${#array[@]}
icount=0
found=0
command=""

echo $acount
echo $icount

while [ $icount -lt $acount ] && [ $found -eq 0 ] ; do

command=${programs[$icount]}

    for suffix in ${array[$icount]}; do
	result=$(echo $1 | sed -n -e "s/.*.$suffix[~#]*\$/gefunden/gp")

	if [ ! "$result" = "" ] ; then
	    found=1
	    break
	fi
    done
    icount=$(expr $icount + 1);
done


# Leider: Gesonderte Behandllung des Mozilla-Browsers
if [ "${programs[3]}" = "$command" ] ; then
    # Prüfen, ob der Browser schon läuft:
    running=$(ps ax | grep "$command" | wc -l )    

    if [ $running -gt 1 ] ; then
	# Der Browser läuft schon.
	command=$command"  -remote 'OpenURL("$1",new-window)'"
    else
	# Normaler Start: Der Browser läuft noch nicht.
	command=$command" "$1
    fi
    
else
    # Das hier ist für alle anderen
    # Programme.
    repl="s!.*!"$command"!gp"
    command=$(echo $1 | sed -n -e "$repl")
fi

# eval nötig, weil die Kommandos
# eventuell etwas komplexer sein
# könnten.
eval $command &

exit 0
Artikelbewertung: 
No votes yet
War dieser Artikel hilfreich?