Skript zum Anordnen von Finder-Fenstern

buridans_esel

Aktives Mitglied
Thread Starter
Dabei seit
26.10.2005
Beiträge
135
Reaktionspunkte
13
Hallo Skripter & User! :)

Habe beim Mac die Funktion vermisst, zwei Fenster im Finder
automatisch nebeneinander anzuordnen
, um zB Ordner zu
vergleichen oder Dateien per Drag&Drop zu verschieben.

Also hab ich ein Skript geschrieben, das bis zu 16 Finder-Fenster
tabellenartig auf dem Bildschirm anordnet. OK, 16 braucht kein Mensch,
aber mit 4 Stück arbeite ich zB relativ oft. Normalerweise sieht das so aus:

1.jpg


Fenster wurden also vergrößert, herumgeschoben, und wenn
man vom vordersten ins hinterste Fenster etwas kopieren
möchte, muss man wieder herumschieben. Oder man benutzt
mein skript ;)

2.jpg


und zack-zack...

3.jpg


...werden die Fenster tabellenartig ausgerichtet und füllen die
komplette Arbeitsfläche aus:

4.jpg


Das Ganze geschieht animiert. Die Animation ist inspiriert
vom Aufspringen der Info-Fenster, wenn man im Finder mehrere
Objekte markiert und Apfel+I drückt. Man kann die Anzahl der
Animationsschritte anpassen (schneller oder flüssiger), und die
Schrittweite wird so berechnet, dass die Bewegung langsam
anfängt, exponentiell beschleunigt und genauso wieder bremst.

Bei 16 Fenstern wird das Dock ausgeblendet, um Platz zu schaffen.

Einziges Problem:
ich habe keine Möglichkeit gefunden, per AppleScript die
Bildschirmauflösung und die Höhe des Dock abzufragen,
so dass diese Größen per Hand auf Ihrem Mac angepasst werden
müssen (siehe Markierungen im Quelltext).

Das Skript als Quelltext gibt es hier – bitte runterladen,
ausprobieren und Feedback schreiben!

Dankeschön!
:D
 
Im Quelltext an dieser Stelle wird ein Fehler angezeigt wegen "then"

if n ³ 16 then -- bei 16 Fenstern: 4x4

WARUM???
 
Ich glaube, das liegt an der Textcodierung, die Datei ist in der Mca-Codierung gespeichert, d. h. man kann den Link oben nicht anklicken, kopieren und in den Script-Editor einsetzen, sondern muss mit der rechten Maustaste auf den Link und die Skriptdatei speichern. Da steht eigentlich "n ≥ 16"
 
Wenn ich jetzt mal gehäßig sein darf sage ich dazu:

"Why do it the Mac way, wenn you can do it that simple the windows-way!"


Kurz um eine nette Idee die man natürlich nur gaaaanz selten braucht. Ich bevorzuge Expose. Aber scripte mal weiter, irgendwann ist was für mich mit dabei.
 
...werden die Fenster tabellenartig ausgerichtet und füllen die
komplette Arbeitsfläche aus:

4.jpg
Super. Werd ich mal testen. Kommt mir sehr gelegen!! :D

PATTE:
Expose?
Das kann meins nicht. Deins?
Du kannst zwar über die Fenster fahren, aber drin arbeiten?
Und es werden alle Fenster angesprochen. Nicht nur der Finder.
 
Hallo Skripter & User! :)

Dateien per Drag&Drop zu verschieben.

Ich bin im speziellen auf dieses Problem eingegangen: das kann mein Expose. Weißt ja, einfach länger auf das auserkorene Fenster halten und schon kannst Du die Dateien dort hin droppen. Für den Zwischendurchdrop optimal. Beim vergleichen bekommt dein Script dann halt ein plus.
 
Nicht nur beim Vergleichen...
Stell dir vor du hast noch 2x Safari, iTunes, Mail und "weiß der Geier noch alles" offen.
Das wird alles mit Expose einbezogen. Kann dann durchaus knapp am Monitor werden. Unter Umständen auch unübersichtlich.
Um mehr Daten in Ordner auf zu teilen ist das Skript doch ideal?




Übrigens.
Wo finde ich die Angabe der Pixel fürs Dock?


EDIT:
AppleScript Fehler
"length of grid" kann nicht gelesen werden

Habe 2 Monitore(a 1280x1024) hier. Obs daran liegt?
Bei "Breite des Bilschirms in Pixel" habs ich auch mal mit 2560 versucht. Nada.
 
Zuletzt bearbeitet:
Wollte dat auch ma versuchen, allerdings kommt die Fehlermeldung beim Ausführen:

„items 1 thru 2 of {bounds of item 1 of items 1 thru item 1 of rest of {16, 1} of {1}}“ kann nicht gelesen werden.
 
Nicht nur beim Vergleichen...
Stell dir vor du hast noch 2x Safari, iTunes, Mail und "weiß der Geier noch alles" offen.
Das wird alles mit Expose einbezogen. Kann dann durchaus knapp am Monitor werden. Unter Umständen auch unübersichtlich.
Um mehr Daten in Ordner auf zu teilen ist das Skript doch ideal?




Übrigens.
Wo finde ich die Angabe der Pixel fürs Dock?


EDIT:
AppleScript Fehler
"length of grid" kann nicht gelesen werden

Habe 2 Monitore(a 1280x1024) hier. Obs daran liegt?
Bei "Breite des Bilschirms in Pixel" habs ich auch mal mit 2560 versucht. Nada.

Das ist schon richtig das bei Exposé alles einbezogen wird, aber da gibt es ja den Tabulator und schon kann man in den einzelnen Anwendungen hin und her springen. Einfach testen, Exposé anschalten und dann staunen.

MacMan2
 
Einfach testen, Exposé anschalten und dann staunen.

Brauch weder testen noch staunen.
Nehm doch Expose. Oder hab ich gesagt das ich net weiß wie das geht?
Das is schon was tolles, so is ja nicht. Aber halt...

Ne Idee bezüglich dem Dock?
 
Wollte dat auch ma versuchen, allerdings kommt die Fehlermeldung beim Ausführen:

„items 1 thru 2 of {bounds of item 1 of items 1 thru item 1 of rest of {16, 1} of {1}}“ kann nicht gelesen werden.

Problem habe ich auch, wenn ich nicht im Finder bin.
Im Finder bekomme ich aber nur EIN Fenster arrangiert...?

EDIT:
ok, habe überlesen, dass dies nur für den Finder gilt und mehr als ein Finder-Fenster hatte ich beim Test gerade nicht offen -))
 
Hallo,

siehr super aus. Leider funktioniet es bei mir auch nicht auf Anhieb.
Zum Nachschauen habe ich gerade keine Zeit.

Mittels "do shell script" und "read defaults" kannst Du Dir die Plist auslesen.
In der "com.apple.dock.plist" sind alle Informationen enthalten.
Somit kannst Du die Dock-Höhe und Breite ermitteln.

Viele Grüße
 
Hallo,

ich habe es Dir fertig gestellt ;-)

Wichtig:
Du mußt auch beachten, ob überhaupt ein Fenster geöffnet ist.
Im Anhang das fertige Skript (Deins + Modifizierung).

Funktioniert jetzt auf jedem Rechner.

Viele Grüße
 

Anhänge

  • Finder-ArrangeNicely(GetDisplaySize).applescript.zip
    4,6 KB · Aufrufe: 163
Danke für Euer Feedback!

wie ich sehe, ist es doch nicht so portabel, wie es sein sollte. Kann verschiedene Gründe haben, verschiedene System- und AppleScript-Versionen zum Beispiel.

Übrigens.
Wo finde ich die Angabe der Pixel fürs Dock?
(...)
AppleScript Fehler
"length of grid" kann nicht gelesen werden

Das Dock habe ich "per Hand" ausgemessen: Bildschirmfoto gemacht, geguckt, wieviele Pixel hoch das Dock ist. Geht bestimmt eleganter, cf. Beitrag von little_pixel.

Der Fehler könnte auftreten, wenn keine Finder Fenster geöffnet waren, oder ich hab keine Ahnung warum noch.

Fehlermeldung beim Ausführen:
items 1 thru 2 of {bounds of item 1 of items 1 thru item 1 of rest of {16, 1} of {1}} kann nicht gelesen werden.
leider keine Ahnung warum, sollte eigentlich nicht vorkommen

einfach länger auf das auserkorene Fenster halten und schon kannst Du die Dateien dort hin droppen.
Danke für den Tip! Wusste ich noch nicht. Nützlich, wenn man ein Bild aus dem Internet gleich in einen geöffneten Ordner ziehen will.

Hallo, ich habe es Dir fertig gestellt ;-)

Wichtig:
Du mußt auch beachten, ob überhaupt ein Fenster geöffnet ist.
Im Anhang das fertige Skript (Deins + Modifizierung).

Funktioniert jetzt auf jedem Rechner.
little_pixel, danke für Deine Mühe! Da war ein Profi am Werk, bei vielen Zeilen verstehe ich nicht mal, was sie machen. Jedenfalls solltest Du Deinen (Nick-)Namen oben ins Skript als Koautor reinsetzen.
  • shell script funktioniert super! Dock-Höhe jetzt also automatisch.
  • danke auch für die Ergänzung, dass das Skript nur dann aktiv wird, wenn ein Finder Fenster da ist.
  • Das mit der plist funktioniert bei mir nicht: es gibt auf dem gesamten Rechner keine Datei namens "com.apple.windowserver" :( -- weder im Ordner "ByHost" noch sonst irgendwo
    Damit geht's leider doch noch nicht auf jedem Rechner
PHP:
tell application "Finder" to set plistName to (name of files of folder plistFolderPath whose name contains "com.apple.windowserver") as string
--> genau das geht nicht. Gibt es diese plist wirklich auf jedem System?

Bei zwei Bildschirmen -- bitte fragt mich nicht, das war mein allererstes AppleScript, hier gibt es Leute die was davon verstehen, wie little_pixel.

Ansonsten, viel Spaß beim Weitertesten!
 
Zuletzt bearbeitet:
Funktioniert jetzt auf jedem Rechner.

Muss noch was beim Starten beachtet werden? Habe einen Syntaxfehler:
Es wurde "Ausdruck" erwartet, aber ein "property"" wurde gefunden.



[*]Das mit der plist funktioniert bei mir nicht: es gibt auf dem gesamten Rechner keine Datei namens "com.apple.windowserver" :( -- weder im Ordner "ByHost" noch sonst irgendwo
Damit geht's leider doch noch nicht auf jedem Rechner
[/LIST]
Gibt es diese plist wirklich auf jedem System?

Bei zwei Bildschirmen -- bitte fragt mich nicht, das war mein allererstes AppleScript, hier gibt es Leute die was davon verstehen, wie little_pixel.
Geb doch mal in der Suche vom Finderfenster das hier ein > com.apple.windowserver .
Solltest du eigentlich schon haben.

Das mit den 2 Bildschirmen wird sicher wer wissen, hoffe ich.
Zum testen habe ich übrigens min. 4 Finderfenster offen.
 
nee, ich habe wirklich keine windowserver plist
 
Also meine Maus hats se ( Mini mit Tiger 10.4.9) und ich auch (panther siehe Sig.)

Seh grad das du nen iMac hast? Evtl. deswegen? :suspect:
 
Irgendwann kommen sie allen zurückgekrochen.

Wie wäre es mit einem Leopard Update?

*Hundeblick*
 
hallo buridans_esel

dein script funktioniert recht gut bislang, definitif gut genug..!! vielen dank! 2 fragen hätt ich dazu

.geht das auch mit allen offenen fenstern oder nur dem finder.

.noch wichtiger, wenn ich das script anklicke komm ich in einen viewer und muss dann dort auf ausführen klicken. gibts eine möglichkeit das das ding sofort auslöst wenn ich doppelklicke... bzw. bitte wie?

liebe grüße christoph
 
Zurück
Oben Unten