Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

OS Linux

gezocht: script waarmee ik Mozilla "nog een keer kan st

Anoniem
PeBo
7 antwoorden
  • wat ik dus bedoel is dit. als je nu mozilla eenmaal hebt gestart en je start hem nog een keer ( bijvoorbeeld omdat je op een url in een mailtje geklikt hebt ) dan krijg je de vraag of je een nieuw profile aan wilt maken enzovoorts…..

    Het enige wat ik dus wil in zo'n situatie is een nieuw scherm. Nu heb ik ooit ergens gehoord/gelezen dat er scriptjes waren die keken of mozilla al draaide en in dat geval netjes een nieuw venster voor je openen, maar die heb ik nergens kunnen vinden.

    Iemand enig idee ?
  • Gentoo installeert dit als /usr/bin/mozilla:[code:1:3f175012e0]#!/bin/sh
    #
    # The contents of this file are subject to the Netscape Public
    # License Version 1.1 (the "License"); you may not use this file
    # except in compliance with the License. You may obtain a copy of
    # the License at http://www.mozilla.org/NPL/
    #
    # Software distributed under the License is distributed on an "AS
    # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
    # implied. See the License for the specific language governing
    # rights and limitations under the License.
    #
    # The Original Code is mozilla.org code.
    #
    # The Initial Developer of the Original Code is Netscape
    # Communications Corporation. Portions created by Netscape are
    # Copyright (C) 1998 Netscape Communications Corporation. All
    # Rights Reserved.
    #
    # Contributor(s):
    #

    ##
    ## Usage:
    ##
    ## $ mozilla
    ##
    ## This script is meant to run a mozilla program from the mozilla
    ## rpm installation.
    ##
    ## The script will setup all the environment voodoo needed to make
    ## mozilla work.

    cmdname=`basename $0`

    ## don't leave any core files around
    ulimit -c 0

    ##
    ## Variables
    ##
    MOZ_DIST_BIN="/usr/lib/mozilla"
    MOZ_PROGRAM="/usr/lib/mozilla/mozilla-bin"
    MOZ_CLIENT_PROGRAM="/usr/lib/mozilla/mozilla-xremote-client"

    ##
    ## Set MOZILLA_FIVE_HOME
    ##
    MOZILLA_FIVE_HOME="/usr/lib/mozilla"

    export MOZILLA_FIVE_HOME

    ##
    ## Set LD_PRELOAD for old plugins
    ##
    if [ -f /usr/lib/mozilla/libc++mem.so ]
    then
    if [ "$LD_PRELOAD" ]
    then
    LD_PRELOAD="/usr/lib/mozilla/libc++mem.so $LD_PRELOAD"
    else
    LD_PRELOAD=/usr/lib/mozilla/libc++mem.so
    fi
    export LD_PRELOAD
    fi

    ##
    ## Set LD_LIBRARY_PATH
    ##
    if [ "$LD_LIBRARY_PATH" ]
    then
    LD_LIBRARY_PATH="/usr/lib/mozilla:/usr/lib/mozilla/plugins:$LD_LIBRARY_PATH"
    else
    LD_LIBRARY_PATH="/usr/lib/mozilla:/usr/lib/mozilla/plugins"
    fi

    export LD_LIBRARY_PATH

    ##
    ## Make sure that we set the plugin path for backwards compatibility
    ## Set MOZ_PLUGIN_PATH to $HOME/.mozilla/plugins if not set
    ##
    export MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins

    if [ "$HOME" ]; then
    export MOZ_PLUGIN_PATH="$MOZ_PLUGIN_PATH:$HOME/.mozilla/plugins"
    fi

    ##
    ## Set FONTCONFIG_PATH for Xft/fontconfig
    ##
    FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}
    es/Xft"
    export FONTCONFIG_PATH

    ##
    ## Autodetect language
    ##
    grep -q $HOME/.mozilla $HOME/.mozilla/appreg > /dev/null 2>/dev/null
    SET_LANG=$?
    if [ "$HOME" -a "$LANG" -a "$SET_LANG" != "0" ]; then
    MOZ_LANG=`grep -E "^$LANG[[:space:]]" $MOZILLA_FIVE_HOME/chrome/locale.alias | tr -s [:blank:] | cut -f 2`
    for i in "$@";do
    [ "$i" = "-UILocale" ] && MOZ_LANG=""
    done
    if [ "$MOZ_LANG" -a -r "$MOZILLA_FIVE_HOME/chrome/$MOZ_LANG.jar" ]; then
    MOZ_LANG="-UILocale $MOZ_LANG"
    else
    unset MOZ_LANG
    fi
    fi

    # Figure out if we need to ser LD_ASSUME_KERNEL for older versions of the JVM.

    function set_jvm_vars() {

    # see if the jvm exists in either of the locations
    if [ -L /usr/lib/mozilla/plugins/javaplugin_oji.so ]; then
    JVM_ORIG_LINK=/usr/lib/mozilla/plugins/javaplugin_oji.so
    fi

    if [ -L /usr/lib/mozilla/plugins/libjavaplugin_oji.so ]; then
    JVM_ORIG_LINK=/usr/lib/mozilla/plugins/libjavaplugin_oji.so
    fi

    if [ -z "$JVM_ORIG_LINK" ]; then
    return;
    fi

    JVM_LINK=`perl -e "print readlink('$JVM_ORIG_LINK')"`

    # is it relative? if so append the full path

    echo "${JVM_LINK}" | grep -e "^/" 2>&1 > /dev/null

    if [ "$?" -ne "0" ]; then
    JVM_LINK=/usr/lib/mozilla/plugins/${JVM_LINK}
    fi

    JVM_BASE=`basename $JVM_LINK`
    JVM_DIR=`echo $JVM_LINK | sed -e s/$JVM_BASE//g`
    JVM_COMMAND=$JVM_DIR/java
    if [ ! -r $JVM_COMMAND ]; then
    JVM_DIR=${JVM_DIR}../../../bin/
    JVM_COMMAND=$JVM_DIR/java
    # does the command exist?
    if [ ! -r "$JVM_COMMAND" ]; then
    return
    fi
    fi

    # export this temporarily - it seems to work with old and new
    # versions of the JVM.
    export LD_ASSUME_KERNEL=2.2.5

    # get the version
    JVM_VERSION=`$JVM_COMMAND -version 2>&1`

    unset LD_ASSUME_KERNEL

    JVM_VERSION=`echo $JVM_VERSION | grep version | cut -f 3 -d " " | sed -e 's/\"//g'`

    case "$JVM_VERSION" in
    (1.3.0*)
    # bad JVM
    export LD_ASSUME_KERNEL=2.2.5
    ;;
    esac
    }

    function check_running() {
    if [ -x $MOZ_CLIENT_PROGRAM ]; then
    $MOZ_CLIENT_PROGRAM 'ping()' 2>/dev/null >/dev/null
    RETURN_VAL=$?
    if [ "$RETURN_VAL" -eq "2" ]; then
    echo 0
    return 0
    else
    echo 1
    return 1
    fi
    else
    echo 0
    return 0
    fi
    }

    function open_mail() {
    if [ "${ALREADY_RUNNING}" -eq "1" ]; then
    exec $MOZ_CLIENT_PROGRAM 'xfeDoCommand(openInbox)' \
    2>/dev/null >/dev/null
    else
    exec $MOZ_PROGRAM $MOZ_LANG $*
    fi
    }

    function open_compose() {
    if [ "${ALREADY_RUNNING}" -eq "1" ]; then
    exec $MOZ_CLIENT_PROGRAM 'xfeDoCommand(composeMessage)' \
    2>/dev/null >/dev/null
    else
    exec $MOZ_PROGRAM $MOZ_LANG $*
    fi
    }

    # OK, here's where all the real work gets done

    # set our JVM vars
    set_jvm_vars

    # check to see if there's an already running instance or not
    ALREADY_RUNNING=`check_running`

    # If there is no command line argument at all then try to open a new
    # window in an already running instance.
    if [ "${ALREADY_RUNNING}" -eq "1" ] && [ -z "$1" ]; then
    exec $MOZ_CLIENT_PROGRAM "xfeDoCommand(openBrowser)" 2>/dev/null >/dev/null
    fi

    # if there's no command line argument and there's not a running
    # instance then just fire up a new copy of the browser
    if [ -z "$1" ]; then
    exec $MOZ_PROGRAM $MOZ_LANG 2>/dev/null >/dev/null
    fi

    unset RETURN_VAL

    # If there's a command line argument but it doesn't begin with a -
    # it's probably a url. Try to send it to a running instance.
    USE_EXIST=0
    NEW_WINDOW=
    opt="$1"
    case "$opt" in
    -mail)
    open_mail ${1+"$@"}
    ;;
    -compose)
    open_compose ${1+"$@"}
    ;;
    -*) ;;
    *) USE_EXIST=1 ;;
    esac

    othersopt=
    optlast=
    for i in "$@";do optlast=$i;done #last arg
    for i in "$@";do [[ $i == $optlast ]] && break; othersopt="$othersopt $i";done #others arg
    #???: needs check if othersopt begin with -* ?

    if [[ $optlast != *:/* && -e $optlast ]];then
    [[ $optlast != /* ]] && optlast=file://$PWD/$optlast
    elif [[ $optlast == *:/* || -n $othersopt ]];then #???? like before…
    NEW_WINDOW=1
    fi

    if [ "${USE_EXIST}" -eq "1" ] && [ "${ALREADY_RUNNING}" -eq "1" ]; then
    if [[ -z $NEW_WINDOW ]];then
    exec $MOZ_CLIENT_PROGRAM $othersopt "openurl($optlast)" 2>/dev/null >/dev/null
    else
    exec $MOZ_CLIENT_PROGRAM $othersopt "openurl($optlast,new-window)" 2>/dev/null >/dev/null
    fi
    fi

    exec $MOZ_PROGRAM $MOZ_LANG $othersopt "$optlast"
    [/code:1:3f175012e0]Maar het zit volgens mij standaard bij de Mozilla source distrib.

    Let vooral op de functie 'checkrunning' :)
  • Wat wil je precies, een nieuw mozilla-proces opstarten, of een nieuw venster openen binnen een bestaand proces?
    Eerste kan volgens mij niet, omdat Mozilla een lock op je mozilla-configuratie plaatst.
    Tweede kan door met het opstartcommando van mozilla enkele opties mee te geven.
    Typ iets als [b:47a25472e9]mozilla –help[/b:47a25472e9] achter een prompt om de diverse opties te lezen.

    Kijk ook op http://www.mozilla.org/unix
    emote.html voor informatie over hoe je een nieuw venster opent in een al draaiende Mozilla.

    Max
  • Hmm … open je de URL soms in een GNOME applicatie (bijv. Evolution)?
  • ten eerste, bedankt voor het script! alleen was het een beetje overkill :P maar toch heb ik er wel enig nutigs uit kunnen halen. voor mezelf heb ik het volgende scriptje gefrabiceerd:

    [code:1:56b307fc5f]
    mozilla -remote "ping()" 2>/dev/null >/dev/null
    RET_VAL=$?

    if [ "$RET_VAL" -eq "2" ]; then
    mozilla $1
    else
    mozilla -remote "openurl( $1 , new-tab )"
    fi
    [/code:1:56b307fc5f]

    dit scriptje doet perfect wat ik wil, indien mozilla nog niet draait. wordt hij opgestart, eventueel met meegegeven url. Indien Mozilla al wel draait, wordt er een nieuwe tab geopend in het bestaande venster, ook weer met de meegegeven url.

    HET NADEEL! het lijkt niet te werken in GNOME-2 :( Ook al heb ik mozilla ingesteld als mijn default browser, toch vertikt hij het om op te starten als ik op een link klik! Dit ligt niet aan het scriptje, want dit doet hij ook niet met de "gewone" mozilla executable.

    het gaat idd om onder andere Evolution, dus als iemand daar iets op weet?
    Indien niet, dan ga ik maar weer eens met Galeon aan de slag…
  • Ik had iets (min of meer) vergelijkbaars. Zelf zit ik nu te rommelen met de inhoud van ~/.gnome/Gnome en wel het onderdeel
    if [[ `ps -e | grep mozilla` ]]
    then
    #Mozilla is running
    `/usr/bin/mozilla -remote 'openURL('$1', new-tab)'`
    else
    #Mozilla is NOT running
    `/usr/bin/mozilla $1`
    fi[/quote:8c5762ba84]Natuurlijk niet zelf bedacht maar hier gevonden! Overigens opent dit script een nieuwe tab als Mozilla al draait. Wil je dat niet dan kan je [i:8c5762ba84]new-window[/i:8c5762ba84] gebruiken in plaats van [i:8c5762ba84]new-tab[/i:8c5762ba84].">. Dat kan je ook gewoon instellen via URL Handlers ergens in jouw Gnome-menu, denk ik. Voor mij werkt: [quote:8c5762ba84]default-show=./home/xxx/.gnome/open_url_in_mozilla_tab "%s"[/quote:8c5762ba84]en het script in dat bestand luidt als volgt:[quote:8c5762ba84]#!/bin/bash

    if [[ `ps -e | grep mozilla` ]]
    then
    #Mozilla is running
    `/usr/bin/mozilla -remote 'openURL('$1', new-tab)'`
    else
    #Mozilla is NOT running
    `/usr/bin/mozilla $1`
    fi[/quote:8c5762ba84]Natuurlijk niet zelf bedacht maar hier gevonden! Overigens opent dit script een nieuwe tab als Mozilla al draait. Wil je dat niet dan kan je [i:8c5762ba84]new-window[/i:8c5762ba84] gebruiken in plaats van [i:8c5762ba84]new-tab[/i:8c5762ba84].
  • kheb de oplossing al! ipv alleen de executable te noemen in het scriptje ( mozilla ) moest ik het hele pad ernaar opgeven ( /usr/local/bin/mozilla ) nu werkt alles prima! :D

    ik vraag me alleen af of die IF-statement in jouw scriptje werkt ? bij mij is deze voorwaarde *altijd* true, ook als mozilla helemaal niet runt! dit zorgt natuurlijk voor problemen in dat geval.
    Zou jij eens kunnen kijken of dit script bij jouw ook werkt als mozilla nog niet draait? Dit omdat de huidige methonde die ik gebruikt ( mozilla -remote "ping()" ) toch al gauw een seconde in beslag neemt; ps -e gaat veel sneller.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.