Gibt es eine Möglichkeit, bestimmte URLs an bestimmte Webbrowser in Linux umzuleiten?

1263
jraxxo

Ich benutze Chrome als Standardbrowser in Ubuntu 12.10. Ich muss Firefox für geschäftliche Zwecke verwenden (bestimmte Websites, die sich auf meine Arbeit beziehen, funktionieren nur mit Firefox). Gibt es eine Möglichkeit, Ubuntu zur Verwendung von Firefox für bestimmte Arten von URLs (möglicherweise durch einen regulären Ausdruck definiert) zu zwingen, während Chrome als Standardbrowser für alle anderen Aufgaben verwendet wird? Vielleicht als Shell-Skript im Hintergrund? Ich möchte, dass dies systemweit funktioniert und Links von Chrome selbst sowie PDFs / ODTs usw. abdeckt.

Ich habe nach Lösungen gesucht, konnte aber nichts außer OpenWith finden, einer Firefox-Erweiterung, die eine Schaltfläche zum Öffnen bestimmter Links in anderen Browsern hinzufügt. Hier müsste ich vorher Firefox öffnen, was mir nicht weiterhilft.

Hat jemand irgendwelche Ideen? So etwas wie Choosy für Linux?

3
Related: http://superuser.com/questions/198179/always-open-specific-domains-in-a-different-browser-from-firefox?rq=1 Ƭᴇcʜιᴇ007 vor 10 Jahren 1
Nun, ich verwende Linux, also ist es nicht so relevant ... jraxxo vor 10 Jahren 0

1 Antwort auf die Frage

5
hololeap

Die in Linux ausführbare Datei, die eine Ressource mit Ihrem "Favoriten" -Programm öffnet, wird aufgerufen xdg-open. Es ist etwas kompliziert, aber Sie können mit zusätzliche Regeln hinzufügen xdg-mime install. Ich weiß jedoch nicht, ob Sie dies sogar für eine bestimmte URL tun können.

Dies wird noch komplizierter, wenn bestimmte Desktop-Umgebungen unterschiedliche ausführbare Dateien und Methoden zum Öffnen ihrer Standardprogramme verwenden. Zum Beispiel hat KDE dies kde-open, aber nicht jede KDE-Anwendung scheint dies zu verwenden.

Egal, ich habe das teilweise nur mit einem Shell-Skript und einer Liste von Domains / URLs in einer Datei arbeiten lassen. Sie können es nach Ihren Wünschen anpassen.

Hinweis: Je nach Ihrer Desktopumgebung müssen Sie diesen Vorgang möglicherweise für andere ausführbare Dateien wiederholen. Zum Beispiel hat Gnome gvfs-open, KDE kde-openund XFCE exo-open. (Selbst dann kann es nicht für jede Anwendung funktionieren.)

Hinweis: Das Shell-Skript hängt von pcregrepder Installation auf Ihrem System ab.

  1. Finde die xdg-openausführbare Datei

    which xdg-open 
  2. Erstellen Sie ein neues Verzeichnis in Ihrem Basisordner

    mkdir -p ~/.local/bin 
  3. Fügen Sie Ihrer ~/.bashrcDatei Folgendes hinzu

    ~ / .bashrc

    export PATH="$/.local/bin:$" 
  4. Erstellen Sie das Shellskript im neu erstellten Ordner. (Achten Sie darauf, die vier obersten Variablen so zu bearbeiten, dass sie für Ihr System korrekt sind!)

    ~ / .local / bin / xdg-open

    #!/bin/bash  DOMAIN_LIST_FILE=~/'domains.txt' OTHER_BROWSER='/path/to/other-browser' # For instance /usr/bin/firefox BROWSER_OPTIONS='' # Optional, for command line options passed to browser XDG_OPEN='/path/to/xdg-open'  if echo "$1" | pcregrep -q '^https?://'; then matching=0 while read domain; do if echo "$1" | pcregrep -q "^https?://$"; then matching=1 break fi done < "$DOMAIN_LIST_FILE"  if [[ $matching -eq 1 ]]; then "$OTHER_BROWSER" $BROWSER_OPTIONS ${*} exit 0 fi fi  "$XDG_OPEN" ${*} 
  5. Erstellen Sie die Liste der Domänen in Ihrem Basisordner

    ~ / domains.txt

    stackexchange.com stackoverflow.com superuser.com 
  6. Melden Sie sich ab und wieder an, damit die Einstellungen wirksam werden

Ändern Sie `pcregrep -q '^ https?: //'` in `grep -q '^ http \?: \ / \ /'`, wenn Sie nicht über pcregrep verfügen (was auch immer das ist :)) Boris Churzin vor 7 Jahren 1