Archiv für Sonntag, 21.12.2003

Sonntag, 21.12.2003

Sag’ zum Abschied leise »Servus«.

Jede Anwendung erlaubt heutzutage das Speichern der geöffneten Dokumente – jede Anwendung? Nein, Webbrowser bieten dieses Feature nicht, könnten es aber dringend benötigen.

Ich gehöre nicht zu den Leuten, die einmal am Tag ins Web gehen, den Kontostand abfragen und dann den Computer wieder einmotten. Der Browser ist für mich eines der wichtigsten Programme überhaupt: Er läuft bei mir ständig und ich habe zu jedem beliebigen Zeitpunkt ein ganzes Rudel an Seiten offen, dutzende von Tabs in zig Fenstern.
Häufig ist es bei mir sogar so, dass ich Tabs zu einem bestimmten Thema in einem Fenster zusammenfasse: Das Fenster mit den 5 Tabs zu Mac-Themen, das Fenster mit den 26 Tabs zu Spiegel- und Heise-Artikeln die ich noch lesen will, das Fenster mit 8 neuen CSS-Artikeln von diversen Seiten etc.pp.

Ein kleineres Problem lässt sich mit eiserner Disziplin in den Griff bekommen: Genau hinschauen, wohin man klickt. Versehentlich die Schaltfläche zum Schließen eines Fensters erwischt? Pech für die 20 Tabs, die darin geöffnet waren, die sind weg.
Ärgerlich ein Bug in Apples Safari: Ein Fenster mit einer einzelnen Seite kann per Apfel-W geschlossen werden, allerdings schließt der nächste Druck auf Apfel-W unter Umständen nicht den aktiven Tab im nächsten Fenster, sondern gleich das ganze Fenster mit all seinen Tabs (wer’s testen möchte: Auf tvtv.de in der Tagesansicht auf eine Sendung klicken, dann das Pop-up mit Apfel-W schließen und danach im ursprünglichen Fenster wieder mit Apfel-W den Tab mit tvtv.de bearbeiten: Auch dieses Fenster wird geschlossen, nicht nur der einzelne Tab).

Richtig Freude kommt auf, wenn der Browser absemmelt oder der Rechner mal einfriert und durchgestartet werden muss und somit alle Fenster mit allen Tabs in den Abgrund reißt.
Wenn Word mal abstürzt, kann ich mir einen einseitigen Brief in fünf Minuten wieder aus den Fingern saugen. Aber mehrere Dutzend geöffnete Seiten – egal ob in einzelnen Fenstern oder in Tabs – wieder zu finden und zu öffnen, dauert lang. Die History (»Verlauf«) hilft mir nicht wirklich weiter, wenn einige der Seiten schon seit zwei Tagen geöffnet waren und sich zwischen hunderten anderen Adressen in der History verstecken.

Was ich haben will sind zwei Dinge:

  1. Eine Option in den Einstellungen die dafür sorgt, dass beim Schließen von Fenstern nachgefragt wird: »Soll das Fenster wirklich geschlossen werden?« Sogar TextEdit bringt das fertig.
  2. Eine Art »Snapshot«-Funktion, die ständig die URLs aller aktuell geöffneten Seiten speichert. Nicht nur eine vergleichsweise »dumme« Verlaufsfunktion, welche sich die zuletzt besuchten Seiten merkt, sondern etwas mit mehr Grips: Wenn ich den Browser schließe oder er abstürzt, will ich beim nächsten Start eine Frage auf dem Bildschirm sehen: »Sollen die zuletzt geöffneten Seiten wieder geladen werden?«

Wenn’s schon eine Snapshot-Funktion gibt, sollte man sie auch manuell auslösen können. Für solch ein Feature müssen Fans sicherlich nicht lange gesucht werden.
Alternativ wäre eine Möglichkeit nett, per Script die einzelnen Fenster (oder noch besser die Tabs in Fenstern) abzufragen und deren URLs auf Knopfdruck alle in eine Datei schreiben zu lassen.

Für Safari und BBEdit gibt es ein AppleScript von John Gruber (»Scripting Safari URLs«), das – von BBEdit aus aufgerufen – die URLs aller offenen Safari-Windows in einer Liste anzeigt und auf Klick eine dieser URLs in das gerade geöffnete BBEdit-Dokument übernimmt. Evtl kann das Script dahingehend modifiziert werden, dass es alle URLs dieser Liste in das BBEdit-Fenster schreibt; dazu kenne ich mich jedoch zu wenig mit AppleScript und BBEdit aus. Es wäre immerhin ein Anfang in Richtung einer Snapshot-Funktion. Leider können Tabs in Safari nicht über AppleScript angesprochen werden (wieder John Gruber: »Safari’s Unscriptable Tabs«).

Für OmniWeb, der leider keine Tabs kennt, gibt es im Zusammenhang mit OmniOutliner eine Lösung: Das Script »Save OmniWeb URLs« speichert die Adressen aller geöffneten OmniWeb-Fenster in ein Outliner-Dokument – zumindest in der Theorie, denn bei mir bricht es mit einem Fehler ab (OW4.5 und OO2.2.6).

Selbst wenn das funktionierte: Solch eine manuelle Snapshot-Funktion hilft einem nur, wenn man nach dem alten Motto »Save early, save often« verfährt und selbst Browser-Zustände speichert. Denn Abstürze kann ich ja nicht kommen sehen.

Opera bietet die von mir gewünschte Frage beim Programmstart tatsächlich an: »Continue browsing there I was last time«. Das klingt vielversprechend (wenn auch mehrere Fenster zu einem Fenster zusammengefasst werden), außerdem beherrscht Opera Tabs, ist relativ aktuell, was Standard-Unterstützung betrifft (speziell CSS) und sogar das Programmende kann man sich bestätigen lassen. Allerdings ist die Mac-Version nur auf dem Versionsstand 6.03, während man in Norwegen für Windows-Plattformen bereits bei Version 7.23 angelangt ist und die 7.5 plant.
Wie sieht’s aus mit Abstürzen, wer hat Erfahrung mit Opera? Kann man nach einem Absturz dort weitermachen, wo man aufgehört hat?

Meinungen, Tipps, Hinweise?

[Dieser Text erschien am selben Tag bei Mac-TV.de]

Nachtrag (14:37 Uhr): Das Problem ist behoben, siehe meinen neuen Eintrag »Sag’ zur Wiederkehr leise "Hello again"«.
Safaris Tabs lassen sich doch per AppleScript ansprechen und jemand hat zwei Scripte zum Speichern und Öffnen geschrieben.

Erschienen am Sonntag, 21.12.2003 @ 0:18 | Kommentare deaktiviert
Tags: ,

 

Sag’ zur Wiederkehr leise »Hello again«.

Nachtrag zu meinem Posting »Sag’ zum Abschied leise "Servus"« von vor 14 Stunden: Es gibt eine Lösung!

Darauf gebracht hat mich ein Kommentar zum Artikel bei Mac-TV.
Der Leser mine23 schrieb, dass die Tabs inzwischen sehr wohl per AppleScript angesprochen werden können, ich solle mal bei macOSXhints schauen. Dort fand ich den Beitrag »Saving and restoring tabs in Safari« vom 16.09.03, der genau mein Problem beschrieb – und er hatte eine Lösung im Gepäck.

Es funktioniert so: Es gibt zwei AppleScripts, eines zum Speichern aller momentan geöffneten Tabs und eines zum Laden der zuvor gesicherten Adressen.
Das Speichern-Script – bei mir heißt es »Save current Tabs« – schreibt die URLs aller Tabs in eine Textdatei, die im Verzeichnis ~/Library/Preferences/ unter dem Namen »Safari Saved URLs« beheimatet ist.
Das Öffnen-Script – bei mir »Open saved Tabs« – liest diese Textdatei und lädt nacheinander wieder die URLs in Tabs. Sehr schön: Beim Öffnen stellt Safari alle Tabs wieder in den Fenstern her, in denen sie ursprünglich waren – nicht alle Tabs in ein Fenster, wenn sie vorher auf mehrere Fenster verteilt waren (wie es Opera macht).

Es gibt noch ein paar Stolperfallen: Das Script-Menü muss laufen und UI-Scripting muss aktiviert sein (in den Systemeinstellungen in der Sektion »Bedienungshilfen« die Option »Zugriff für Hilfsgeräte aktivieren« auf dem Reiter »Sehen«).
Ich empfehle außerdem, die Kommentare des macOSXhint-Tipps zu lesen. Darin findet sich eine verbesserte Version des Speichern-Scripts, das auch versteckte Tabs berücksichtigt. Außerdem funktioniert das Öffnen-Script auf Nicht-Englischen Systemen nicht auf Anhieb. In den Kommentaren ist aber eine Ergänzung zum Öffnen-Script, so dass es ebenfalls auf deutschen Mac OS X-Systemen läuft.
Schritt-für-Schritt-Anleitung:

  1. Die beiden Scripte per Copy/Paste von macOSXhints laden und in den Skripteditor (/Applications/AppleScript/Script Editor) kopieren. Die Korrekturen aus den Kommentaren einarbeiten.
    Alternativ meine fertigen Scripts inklusive Korrekturen bei mir runterladen.
    Die Scripts werden in ~/Library/Scripts/Safari unter beliebigen Namen abgelegt.
  2. Im Speichern-Script die »localizations« zu Beginn anpassen:
    property windowMenu : "Fenster"
    property nextTabMenuItem : "Nächsten Tab auswählen"
  3. Das UI-Scripting in den Systemeinstellungen aktivieren (siehe oben oder bei Apple).
  4. Das Script-Menü über /Applications/AppleScript/Install Script Menu freischalten (siehe ebenfalls bei Apple).
  5. Fertig, die Scripte können sofort verwendet werden.

Ich bin glücklich!
Es ist allerdings nur die zweitbeste Lösung, da man das alles per Hand machen muss. Abstürze kommen unverhofft, und wenn man wichtige Sessions nicht zuvor gespeichert hat, helfen einem die Scripte im Nachhinein auch nicht mehr. Wie immer gilt: »Save early, save often.«

 
P.S.: Keine Gewähr.

Nachtrag (15:30 Uhr): Das Speichern-Script in der neuen Version (aus den Kommentaren) funktioniert nur mit Safari 1.0 unter OS X 10.2 Jaguar. Bei Safari 1.1 mit OS X 10.3 Panther gibt’s einen Fehler. Ich schaue gerade drüber. Unter Panther funktioniert aber das ursprüngliche Speichern-Script aus dem macOSXhint (speichert jedoch nur sichtbare Tabs!).

Nachtrag (18:50 Uhr): Ein Schritt näher an der Problemlösung: Nach den Properties muss die Zeile set url_list to {} eingefügt werden. Dann klappt es mit dem Überschreiben der alten »Safari Saved URLs«-Datei und dem richtigen Zeilenumbruch in der Datei.
Allerdings bleibt ein Fehler: Es werden nur die Tabs des Fensters im Vordergrund erfasst, nicht die der weiteren Fenster. Das Script »weiß« aber, dass es mehr als ein Fenster gibt: In die »All done«-Meldung habe ich die Ausgabe der Variable eingebaut, in der die Fenster-Anzahl gespeichert ist:

»All done: URLs from 2 windows saved.«

Die aktuellen Versionen der Scripte sind online zum Download.

Erschienen am Sonntag, 21.12.2003 @ 14:37 | Kommentare deaktiviert
Tags: ,

 

+++

Archiv
RSS-Feeds: Einträge und Kommentare (zu allen Einträgen).