El Capitanで、BetterTouchToolを使ってFinderを開いたり閉じたりする

2016.1.6追記
BetterTouchToolが有料化されるので、BetterTouchToolを使わないようにしてみました。
El Capitanで、サービスを使ってFinderを開いたり閉じたりする | MacFeeling Blog
2015.11.26追記
デフォルトのウインドウという表現が分かりづらかったので、補足しました。

前回は、デフォルトのFinderウインドウ(新規のウインドウではなく、すでにタブが設定されカスタマイズされている)を開くだけだったのですが、今回はFinderが前面にあって、ウインドウが一つ以上開いている時は、設定したショートカットキーが押された場合に、全てのウインドウを閉じるようにしてみました。

El Capitanで使えなくなった、TotalFinderのバイザー機能に似た感じにしたくてというのが、そもそもの始まりです。

BetterTouchToolを使ってFinderをアクティブに | MacFeeling Blog

環境
OS X El Capitan 10.11.1
BetterTouchTool 1.44 (453)

デフォルトのFinderウインドウ(新規のウインドウではなく、すでにタブが設定されカスタマイズされている)とは
finder01

設定したショートカットキーが押された場合の動作

  • Finderが前面にあって、ウインドウが一つも開いていない時は、デフォルトのウインドウを開く
  • Finderが前面にあって、ウインドウが一つ以上開いている時は、全てのウインドウを閉じる。
  • Finderが背面にある時は、デフォルトのウインドウを開いて前面に持ってくる

スクリプトの編集
前回保存したスクリプト(例では、DockFinderClick.scpt)ファイルをダブルクリック。
「ユーティリティ」フォルダ内の、「スクリプトエディタ.app」が起動するので

前回のコード

tell application "System Events"
	tell process "Dock"
		click UI element "Finder" of list 1
	end tell
end tell

を、以下のコードに変更(ちょっと雑なコードですが :wink_wp:)

tell application "System Events"
	--前面にあるアプリケーション名を取得
	set appName to name of first application process whose frontmost is true
end tell

set openFlg to true

if "Finder" is in appName then
	--Finderが前面にある
	tell application "Finder"
		if (number of window > 0) then
			--Finder ウインドウが1つ以上開いているので全て閉じる
			close every window
			set openFlg to false
		end if
	end tell
end if

if openFlg then
	--デフォルトのウインドウ(新規のウインドウではなく、すでにタブが設定されカスタマイズされている)を開く
	tell application "System Events"
		tell process "Dock"
			click UI element "Finder" of list 1
		end tell
	end tell
end if

BetterTouchToolの設定方法などは、El Capitanで、BetterTouchToolを使ってFinderをアクティブに | MacFeeling Blogをご覧ください。

コメント

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