Vraag & Antwoord

OS Linux

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

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}/res/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/remote.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 [URL Handlers]. 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 [url=http://lists.ximian.com/archives/public/users/2002-September/006580.html]hier[/url] 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

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

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