Safariのためのアップルスクリプト


Safariの技術プレビューは、私がウェブサイトを開発していない私の主要なWebブラウザです.これは、サファリのためのベータの同等の機能は、最新の更新プログラムを備えています.
主要な損失の1つは、vimキー結合をシミュレートする良いブラウザー拡張の欠如です.Vimari 大丈夫ですが、githubで正しく動作しません.他の損失は、偶然の終了防止の欠如とタブを変更するための代替キーのバインドです.

誤った終了を防ぐ
我々が押すならば、FirefoxとChromeは我々に警告するオプションを持ちます⌘ + Q 偶然.Safariはこのオプションを提供しません.タブを閉じたいときによく起こります⌘ + W , しかし、私の不器用な指輪指は、それを逃しますW . 以前私はApp Shortcuts 修飾子→ キーボード→ ショートカット→ アプリケーションのショートカット⌘ + ⌥ + Q . それは動作しますが、私は別の方法があるかどうか好奇心旺盛です.
私はインターネットをブラウズし、ジョンGruberはすでにこの問題の解決策を共有していることがわかりました.このポストで読むことができます.Quit Confirmation for Safari on MacOS を介してdaringfireball.ネット
お使いの便宜上、少し修正されたスクリプトをここで共有します.
tell application "Safari Technology Preview"
  set windowCount to count windows
  set tabCount to 0

  repeat with currWindow in every window
    set tabCount to tabCount + (count tabs of currWindow)
  end repeat

  -- Make a string like "1 window containing 3 tabs."
  if windowCount is 1 then
    set msg to windowCount & " window containing " as string
  else
    set msg to windowCount & " windows containing " as string
  end if
  if tabCount is 1 then
    set msg to msg & tabCount & " tab." as string
  else
    set msg to msg & tabCount & " tabs." as string
  end if

  display alert ¬
    "Are you sure you want to quit Safari?" message msg ¬
    buttons {"Cancel", "Quit"} ¬
    giving up after 60
  if button returned of result is "Quit" then quit
end tell
から変更したいかもしれないことに注意してくださいSafari Technology Preview だけSafari .
あなたは、スクリプトを置きたいですScript Editor.app , そして-ジョンが提案したように、使用FastScripts . fastscriptは素晴らしいです!赤いセーターへの残高.あなたがすべきことは、スクリプトエディタによって生成されたスクリプトをSafari用のFastScriptsのフォルダーに移動させることです.明らかに、あなたはそれをそれに割り当てたいです⌘ + Q .
FastScriptsの詳細については、チェックすることができますtheir FAQ here .
我々は終了についての問題をカバーしているので、今、次の問題に移動します.

タブを変更するキーバインド
Safari用のタブを変更する既定のキーバインド⌃ + ⇥ 次のタブと⌃ + ⇧ + ⇥ 前のタブ.FirefoxとChromeに存在する既に馴染みのキーバインディングを追加します⌘ + ⌥ + ← 前のタブと⌘ + ⌥ + → 次のタブ.
Macを使ってみましたApp Shortcuts 修飾子→ キーボード→ ショートカット→ 変更するには、しかし、私は元のキーバインドを失うだろう.私は、彼らが共存することを望みます.
私のソリューションは、アップルスクリプトとfastscriptを使用することです.
タブを次のタブに変更するスクリプト
tell application "Safari Technology Preview"
  tell window 1
    set myTab to (index of current tab)
    set goodtab to (myTab + 1) as integer
    try
      set current tab to tab goodtab
    on error
      set current tab to tab 1
    end try
  end tell
end tell
タブを以前のタブに変更するスクリプト
tell application "Safari Technology Preview"
  tell window 1
    set myTab to (index of current tab)
    set goodtab to (myTab - 1) as integer
    if goodtab = 0 then
      tell application "Safari Technology Preview" to set lastTab to the number of tabs in window 1
      set current tab to tab lastTab
    else
      set current tab to tab goodtab
    end if
  end tell
end tell
あなたは変更したいSafari Technology Preview も.スクリプトはまっすぐに、アップルスクリプトの奇妙な構文の利点の一つです.そのことについて少し説明しましょうtry ... on error and if ... else パート.
次のタブスクリプトを使用して最後のタブに到達すると、エラーが発生します.その場合、最初のタブに移動します.キーバインドが利用可能なタブにループしておきたいからです.
前のタブスクリプトでは、私は知っている利用可能なタブの長さを取得するプロパティやメソッドがないので、少し複雑になります.だから私はtell ) サファリを定義するlastTab 変数としてアクティブなSafariウィンドウで利用可能なタブの数を指定します.
この日の前に、私はアップルスクリプトを使用すると思いませんでした、そして、これらの種類のMacOSユーティリティツールは私の時代を大いに助けます.私は、マックパワーユーザーを読みますabout productivity and automating some tasks , など.今、私は以前に見落とされたツールがどれくらいものすごいかについてわかっています.