Safariのウインドウを並べる(縦にもタイリング版)

MacBSさん、wajunさんに刺激されて、私も改造してみました。
4個以上で縦にもタイリングするバージョンです。

try
— yoko no window no kazu (max)
set yokoMax to 3

— get screen size
tell application “Finder”
set theScreen to bounds of (window of desktop)
set X to item 3 of theScreen
set y to item 4 of theScreen
end tell

tell application “Safari”
activate
set totalCount to number of document
set theCount to 1

if totalCount = 4 then set yokoMax to 2
if yokoMax > totalCount then set yokoMax to totalCount
set windowWidth to (X / yokoMax)
set windowHeight to ((y – 22) / (((totalCount – 1) div yokoMax) + 1))

set {hidari, ue, migi, shita} to {0, 22, windowWidth, 22 + windowHeight}

repeat while theCount ≤ totalCount
set bounds of window theCount to {hidari, ue, migi, shita}
set {hidari, ue, migi, shita} to {hidari + windowWidth, ue, migi + windowWidth, shita}
if (theCount mod yokoMax) is 0 then
set {hidari, ue, migi, shita} to {0, ue + windowHeight, windowWidth, shita + windowHeight}
end if
set theCount to theCount + 1
end repeat
end tell

on error the error_message number the error_number
log (“Error: ” & the error_number & “. ” & the error_message)
end try

あれ、ここのCSSだと字下げがうまく行かないな…

それに実行結果もウインドウが4つ以上のとき、ドックに重なってしまう…何でだろ。
引き続き宿題にしよう。

なんかウインドウ3つ時、4つ時、5つ時などで、それぞれテーブル持った方がいいような気がしてきた。


AppleScript Studioでゼンマイびゅんびゅん!!

コメント

  1. MacBS より:

    タイリングバージョン、良い感じですね。
    以下の箇所を修正すればドックに重ならなくなりました。

    set windowHeight to ((y – 22) / (((totalCount – 1) div yokoMax) + 1))

    set windowHeight to ((y – 22 – 70) / (((totalCount – 1) div yokoMax) + 1))

    Dockのサイズが減算されていなかったようです。
    横に並べるだけの時は縦の最大サイズ制限で自動的にDockに隠れなかったみたいですね。

    正式にはDockの大きさにもよるので、
    set dockSize to 70
    といった具合にしたほうが良いでしょう。

    あと、タブをばらすのも実験してみました。
    click menu item “タブを新しいウインドウに移動” of menu “ウインドウ” of menu bar 1
    といった感じでやるのですが、これだとユニバーサルアクセスがOnでないとダメです。
    もうちょっと調べてみます。

  2. Kumadigital より:

    >横に並べるだけの時は縦の最大サイズ制限で

    あーそこですね。
    ココの規則性が発見できなくて、睡眠時間が1時間減りました(笑

タイトルとURLをコピーしました