desktop icon zum shell script

Dieses Thema im Forum "KDE" wurde erstellt von kimi, 01.06.2008.

  1. kimi

    kimi blub

    Dabei seit:
    20.12.2006
    Beiträge:
    425
    Zustimmungen:
    0
    Ort:
    Tuttlingen
    hallo leute,

    ich habe eine frage, die sicher schon oft gestellt wurde, nur konnte ich leider mit den von mir gefundenen threads und lösungen nichts anfangen.

    ich will einen desktop-icon zu einem programm erstellen, welches ich nicht über den paketmanager installiert habe, sondern das als java-programm daherkommt. es gibt ein shellskript im entsprechenden ordner, welches das programm startet.

    bisher konnte ich es nur mit

    Code:
     cd /pfad/zum/programm/
    
    ./programm 
    starten.

    Einen Icon zu erstellen, dessen befehl "/pfad/zum/programm/programm" lautet, bringt leider nichts. aber es gibt doch bestimmt eine möglichkeit, auch solche programme vom desktop aus zu starten?

    es handelt sich um lightzone, ein bildbearbeitungsprogramm, welches übrigens seehr zu empfehlen ist. auch den torcs strecken editor könnte man so starten.

    Nun bin ich selber hier mit meinem latein am ende (was freilich nix heißen muss) und wollte fragen, ob mir hier jemand helfen kann?

    Vielen dank schon einmal,

    grüße

    kimi
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 whopper, 01.06.2008
    whopper

    whopper Foren As

    Dabei seit:
    01.10.2006
    Beiträge:
    96
    Zustimmungen:
    0
    müsst doch eigentlich gehen mit /pfad/zum/programm/programm

    hast du im script

    Code:
    #!/pfad/zur/shell
    ...
    ...
    ...
    ...
    
     
  4. #3 Gott_in_schwarz, 01.06.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Shebangs werden von shells interpretiert. Wer sagt denn, dass Icons in einer extra-shell gelauncht werden? Wenns ein bash-Skript ist, versuchs mal mit dem Befehl:
    Code:
    bash /pfad/zun/skript.sh
    Oder direkt das Java-Programm ausführen, sollte (afaik, könnte mich irren) mit:
    Code:
    java /pfad/zun/skript.jv
    gehn.

    Edit: Es hätte btw nicht geschadet, wenn du zumindest die DE und den WM angegeben hättest...
     
  5. sinn3r

    sinn3r Law & Order
    Moderator

    Dabei seit:
    28.12.2006
    Beiträge:
    2.764
    Zustimmungen:
    0
    Ort:
    Wentorf
    Du kannst deinem Lieblingsshellemulator (zb konsole oder gnome-terminal, eterm und wie sie alle heisen) auch ein Programm mit geben, dass sie ausfuehren sollen, ich hab das zb fuer irssi (mit konsole)

    Code:
    konsole -e /usr/bin/irssi
     
  6. kimi

    kimi blub

    Dabei seit:
    20.12.2006
    Beiträge:
    425
    Zustimmungen:
    0
    Ort:
    Tuttlingen
    vielen dank für die schnellen antworten. ich habe kde und kubuntu installiert.

    ich habe den icon-befehl jetzt auf
    Code:
     konsole -e /usr/local/LightZone 
    umgeändert, dann öffnet sich die konsole kurz und schluss war.
    könnte das daran legen dass das script nicht auf .sh endet? es hat schlicht garkeine endung. muss ich das dann umbenennen?

    grüße und nomel vielen dank

    kimi
     
  7. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
    setzt mal den "." davor, der fehlt ja offensichtlich.


    Ciao
     
  8. #7 Gott_in_schwarz, 02.06.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Nein, tut er offensichtlich nicht.

    @TE: Was soll das Skript eigentlich tun? Ein externes Java-Programm starten? Warum startest du das Java-Programm nicht "direkt"? Ist das alles Textbasiert oder gibts ne GUI? Etc. pp.
     
  9. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
    gott: naja, ich hab oben nur gesehn, wie er das Script mit Punkt startet und im unteren Pfad fehlt er, daher meine Annahme.

    ciao
     
  10. #9 saeckereier, 02.06.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    ls -l scriptname ?
    Inhalt des SkripteS?
     
  11. kimi

    kimi blub

    Dabei seit:
    20.12.2006
    Beiträge:
    425
    Zustimmungen:
    0
    Ort:
    Tuttlingen
    es geht um LightZone, ein Fotobearbeitungsprogramm (s.o.). Da gibt es ein Startscrpit, mit dem ich es starte, genau wie maniadrive (hab ich allerdings inzwischen ein deb), torcs track editor, usw und so fort. ein readme ist nicht dabei, daher weiß ich aber auch nicht, was ich da für ein java dingens starten soll. wenn mich einer eines besseren belehren kann, bin ich sofort dabei...
    es handelt sich übrigens, wie die anderen programme, die ich so starte, um gui programme (java programme teilweise), von denen keine pakete vorhanden sind. es tut mir leid, dass ich nicht mehr infos geben kann, weiß allerdings nicht, wo ich noch weitere herbekommen sollte. mich verwundert halt, dass in der easylinux, wo ich auf das programm gestoßen bin, einfach steht "oder erstlellen sie einen icon, passende grafik findet sich im verzeichnis bla."

    viele grüße,

    kimi
     
  12. #11 saeckereier, 03.06.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Bitte das erste einmal ausführen und den Inhalt des Skriptes hier posten
     
  13. #12 kimi, 03.06.2008
    Zuletzt bearbeitet: 03.06.2008
    kimi

    kimi blub

    Dabei seit:
    20.12.2006
    Beiträge:
    425
    Zustimmungen:
    0
    Ort:
    Tuttlingen
    @ saeckereier:
    Code:
    seba@Sebastian:/usr/local/LightZone$ ls -l ./LightZone
    -rwxr-xr-x 1 root root 7761 2008-04-20 00:35 ./LightZone
    vielleicht hilft es etwas weiter...

    grüße

    kimi

    EDIT:

    ich habe jetzt einfach eine verknüpfung gesetzt zum skript, dann kann man es starten. nur halt den icon nicht verändern..^^ man hat halt dann die vorschau auf das script auf dem desktop. nicht schön, aber es funktioniert.
     
  14. #13 saeckereier, 03.06.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Postest du auch nochmal das Skript selbst?
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. kimi

    kimi blub

    Dabei seit:
    20.12.2006
    Beiträge:
    425
    Zustimmungen:
    0
    Ort:
    Tuttlingen
    achso, sorry so hatte ich das nicht verstanden, kann ich natürlich machen.

    Code:
    #! /bin/sh
    
    # Uncomment the following line to override the JVM search sequence
    # INSTALL4J_JAVA_HOME_OVERRIDE=
    # Uncomment the following line to add additional VM parameters
    # INSTALL4J_ADD_VM_PARAMS=
    
    read_db_entry() {
      if [ -n "$INSTALL4J_NO_DB" ]; then
        return 1
      fi
      db_file=$HOME/.install4j
      if [ ! -f "$db_file" ]; then
        return 1
      fi
      if [ ! -x "$java_exc" ]; then
        return 1
      fi
      found=1
      exec 7< $db_file
      while read r_type r_dir r_ver_major r_ver_minor r_ver_micro r_ver_patch<&7; do
        if [ "$r_type" = "JRE_VERSION" ]; then
          if [ "$r_dir" = "$test_dir" ]; then
            ver_major=$r_ver_major
            ver_minor=$r_ver_minor
            ver_micro=$r_ver_micro
            ver_patch=$r_ver_patch
            found=0
            break
          fi
        fi
      done
      exec 7<&-
    
      return $found
    }
    
    create_db_entry() {
      tested_jvm=true
      echo testing JVM in $test_dir ...
      version_output=`"$bin_dir/java" -version 2>&1`
      is_gcj=`expr "$version_output" : '.*libgcj'`
      if [ "$is_gcj" = "0" ]; then
        java_version=`expr "$version_output" : '.*"\(.*\)".*'`
        ver_major=`expr "$java_version" : '\([0-9][0-9]*\)\..*'`
        ver_minor=`expr "$java_version" : '[0-9][0-9]*\.\([0-9][0-9]*\)\..*'`
        ver_micro=`expr "$java_version" : '[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*'`
        ver_patch=`expr "$java_version" : '.*_\(.*\)'`
      fi
      if [ "$ver_patch" = "" ]; then
        ver_patch=0
      fi
      if [ -n "$INSTALL4J_NO_DB" ]; then
        return
      fi
      db_new_file=${db_file}_new
      if [ -f "$db_file" ]; then
        awk '$1 != "'"$test_dir"'" {print $0}' $db_file > $db_new_file
        rm $db_file
        mv $db_new_file $db_file
      fi
      dir_escaped=`echo "$test_dir" | sed -e 's/ /\\\\ /g'`
      echo "JRE_VERSION	$dir_escaped	$ver_major	$ver_minor	$ver_micro	$ver_patch" >> $db_file
    }
    
    test_jvm() {
      tested_jvm=na
      test_dir=$1
      bin_dir=$test_dir/bin
      java_exc=$bin_dir/java
      if [ -z "$test_dir" ] || [ ! -d "$bin_dir" ] || [ ! -f "$java_exc" ] || [ ! -x "$java_exc" ]; then
        return
      fi
    
      tested_jvm=false
      read_db_entry || create_db_entry
    
      if [ "$ver_major" = "" ]; then
        return;
      fi
      if [ "$ver_major" -lt "1" ]; then
        return;
      elif [ "$ver_major" -eq "1" ]; then
        if [ "$ver_minor" -lt "6" ]; then
          return;
        fi
      fi
    
      if [ "$ver_major" = "" ]; then
        return;
      fi
      app_java_home=$test_dir
    }
    
    add_class_path() {
      if [ -n "$1" ] && [ `expr "$1" : '.*\*'` -eq "0" ]; then
        local_classpath="$local_classpath${local_classpath:+:}$1"
      fi
    }
    
    old_pwd=`pwd`
    
    progname=`basename "$0"`
    linkdir=`dirname "$0"`
    
    cd "$linkdir"
    prg="$progname"
    
    while [ -h "$prg" ] ; do
      ls=`ls -ld "$prg"`
      link=`expr "$ls" : '.*-> \(.*\)$'`
      if expr "$link" : '.*/.*' > /dev/null; then
        prg="$link"
      else
        prg="`dirname $prg`/$link"
      fi
    done
    
    prg_dir=`dirname "$prg"`
    cd "$prg_dir"
    prg_dir=`pwd`
    app_home=.
    cd "$app_home"
    app_home=`pwd`
    bundled_jre_home="$app_home/jre"
    
    cd "$old_pwd"
    
    
    if [ -f "$bundled_jre_home/lib/rt.jar.pack" ]; then
      old_pwd200=`pwd`
      cd "$bundled_jre_home"
      echo "Preparing JRE ..."
      jar_files="lib/rt.jar lib/charsets.jar lib/plugin.jar lib/deploy.jar lib/ext/localedata.jar lib/jsse.jar"
      for jar_file in $jar_files
      do
        if [ -f "${jar_file}.pack" ]; then
          bin/unpack200 -r ${jar_file}.pack $jar_file
    
          if [ $? -ne 0 ]; then
            echo "Error unpacking jar files. Aborting."
            echo "You might need administrative priviledges for this operation."
    exit 1
          fi
        fi
      done
      cd "$old_pwd200"
    fi
    if [ -z "$app_java_home" ]; then
      test_jvm $INSTALL4J_JAVA_HOME_OVERRIDE
    fi
    
    if [ -z "$app_java_home" ]; then
    if [ -f "$app_home/.install4j/pref_jre.cfg" ]; then
        read file_jvm_home < "$app_home/.install4j/pref_jre.cfg"
        test_jvm "$file_jvm_home"
        if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
            rm $HOME/.install4j
            test_jvm "$file_jvm_home"
        fi
    fi
    fi
    
    if [ -z "$app_java_home" ]; then
      test_jvm "$app_home/jre"
      if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
        rm $HOME/.install4j
        test_jvm "$app_home/jre"
      fi
    fi
    
    if [ -z "$app_java_home" ]; then
      path_java=`which java 2> /dev/null`
      path_java_home=`expr "$path_java" : '\(.*\)/bin/java$'`
      test_jvm $path_java_home
    fi
    
    
    if [ -z "$app_java_home" ]; then
      common_jvm_locations="/opt/i4j_jres/* /usr/local/i4j_jres/* /usr/bin/java* /usr/bin/jdk* /usr/bin/jre* /usr/bin/j2*re* /usr/bin/j2sdk* /usr/java* /usr/jdk* /usr/jre* /usr/j2*re* /usr/j2sdk* /usr/java/j2*re* /usr/java/j2sdk* /usr/java/jdk* /usr/java/jre* /usr/lib/java/jre /usr/local/java* /usr/local/jdk* /usr/local/jre* /usr/local/j2*re* /usr/local/j2sdk* /usr/lib/java* /usr/lib/jdk* /usr/lib/jre* /usr/lib/j2*re* /usr/lib/j2sdk*"
      for current_location in $common_jvm_locations
      do
    if [ -z "$app_java_home" ]; then
      test_jvm $current_location
    fi
    
      done
    fi
    
    if [ -z "$app_java_home" ]; then
      test_jvm $JAVA_HOME
    fi
    
    if [ -z "$app_java_home" ]; then
      test_jvm $JDK_HOME
    fi
    
    if [ -z "$app_java_home" ]; then
      test_jvm $INSTALL4J_JAVA_HOME
    fi
    
    if [ -z "$app_java_home" ]; then
    if [ -f "$app_home/.install4j/inst_jre.cfg" ]; then
        read file_jvm_home < "$app_home/.install4j/inst_jre.cfg"
        test_jvm "$file_jvm_home"
        if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
            rm $HOME/.install4j
            test_jvm "$file_jvm_home"
        fi
    fi
    fi
    
    if [ -z "$app_java_home" ]; then
      echo No suitable Java Virtual Machine could be found on your system.
      echo The version of the JVM must be at least 1.6.
      echo Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.
      echo You can also try to delete the JVM cache file $HOME/.install4j
    exit 83
    fi
    
    
    
    vmoptions_val=""
    vmoptions_file="$prg_dir/$progname.vmoptions"
    if [ -r "$vmoptions_file" ]; then
      exec 8< "$vmoptions_file"
      while read cur_option<&8; do
        is_comment=`expr "$cur_option" : ' *#.*'`
        if [ "$is_comment" = "0" ]; then 
          vmoptions_val="$vmoptions_val $cur_option"
        fi
      done
      exec 8<&-
    fi
    INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS $vmoptions_val"
    
    local_classpath=""
    add_class_path "$app_home/.install4j/i4jruntime.jar"
    for i in `ls "$app_home/." | egrep "\.(jar$|zip$)"`
    do
      add_class_path "$app_home/./$i"
    done
    
    LD_LIBRARY_PATH="$app_home/.:$LD_LIBRARY_PATH"
    DYLD_LIBRARY_PATH="$app_home/.:$DYLD_LIBRARY_PATH"
    SHLIB_PATH="$app_home/.:$SHLIB_PATH"
    LIBPATH="$app_home/.:$LIBPATH"
    LD_LIBRARYN32_PATH="$app_home/.:$LD_LIBRARYN32_PATH"
    LD_LIBRARYN64_PATH="$app_home/.:$LD_LIBRARYN64_PATH"
    export LD_LIBRARY_PATH
    export DYLD_LIBRARY_PATH
    export SHLIB_PATH
    export LIBPATH
    export LD_LIBRARYN32_PATH
    export LD_LIBRARYN64_PATH
    
    #!/bin/bash
    #
    # Find the amount of physical memory, divide that number by two, and use the
    # result to append a Java heap limit option to the install4j environment
    # variable that determines VM options.
    #
    # If the physical memory exceeds 4GB, then cap the Java heap limit at its
    # intrinsic limit of 2GB.  (GB figures are rounded down, to accomodate slop
    # in how linux counts memory and how Java fails near its limit.)
    
    totalmem=`cat /proc/meminfo | grep MemTotal | sed -r 's/.* ([0-9]+) .*/\1/'`
    fourGB=4000000
    twoGB=2000000
    if [ $totalmem -ge $fourGB ]; then
      maxmem=$twoGB
    else
      maxmem=$(( $totalmem / 2 ))
    fi
    option=-Xmx${maxmem}k
    
    INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS $option"
    
    "$app_java_home/bin/java" -client -Dinstall4j.jvmDir="$app_java_home" -Dinstall4j.appDir="$app_home"  -Dexe4j.moduleName="$prg_dir/$prg" -Dcom.lightcrafts.licensetype=ESD $INSTALL4J_ADD_VM_PARAMS -classpath "$local_classpath" com.install4j.runtime.Launcher launch com.lightcrafts.platform.linux.LinuxLauncher true false "$prg_dir/LightZone.log" "$prg_dir/LightZone.log" false  true false "" true true -1 -1 "" 20 20 "Arial" "0,0,0" 8 500 "" 20 40 "Arial" "0,0,0" 8 500 -1  "$@"
    
    
    exit $?
    
    ich hoffe, dass das etwas helfen kann.

    grüße

    kimi
     
  17. #15 saeckereier, 03.06.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    nimm mal nach dem Shebang (#!) das Leerzeichen raus
     
Thema: desktop icon zum shell script
Besucher kamen mit folgenden Suchen
  1. script per desktop icon ausführen

    ,
  2. shell befehl mit icon ausführen

Die Seite wird geladen...

desktop icon zum shell script - Ähnliche Themen

  1. Gnome Desktop Icons für Laufwerke entfernen

    Gnome Desktop Icons für Laufwerke entfernen: [gelöst] Gnome Desktop Icons für Laufwerke entfernen Hallo Wie bekomme ich es hin, das die Festplattensymbole nicht mehr auf dem Desktop...
  2. Icons auf Desktop verschwunden

    Icons auf Desktop verschwunden: Hallo, letzten hat sich Gnome irgendwie aufgehangen... die icons auf dem Desktop sind verschwunden und auch rechtklick auf dem Desktop geht...
  3. Ganz großes Icon aufm Desktop

    Ganz großes Icon aufm Desktop: moin, hab mir grad eben mal wieder das schöne XGL-Beispiel Video von Novell ( http://video.google.de/videoplay?docid=-7587965514994593432 )...
  4. Desktopicons verbergen

    Desktopicons verbergen: Hallo, ich hab mal wieder eine kleine Frage, diesmal geht es um das Erscheinugsbild :) Und zwar will ich meinen Desktop mal völlig frei von...
  5. Icons auf Desktop verhindern

    Icons auf Desktop verhindern: Wie kann ich bei KDE verhindern, dass eingelegte CD/DVDs als Icon auf dem Desktop erscheinen? Ich benutze kubuntu 6.06 mit KDE 3.5. mfg thobit