2020.11.14(土) 追記
masOS Big Sur 11.0.1 でも動作すること確認済み。
2019.10.08(火) 追記
masOS Catalina 10.15 でも動作すること確認済み。
本記事は、MojaveでFinderタブが保存・復元されなくなり不便を感じている方向けの記事です。
アプリの概要
MacのFinderで開いているタブを保存するアプリ及び、復元するアプリです。
手動で各アプリを実行することで、タブ保存・復元が行えます。
自動でのタブの保存・復元を検討しましたが、
自動保存・復元の実現は厳しかったため手動実行としています。
アプリ開発の背景
Finderの赤丸の閉じるボタンでFinderを閉じた場合、
Finderを起動するとmacOS High Sierra 10.13まではタブが復元されていました。
しかしmacOS Mojave 10.14からはタブが復元されなくなった為、
Finderのタブの保存と復元を行うアプリの開発に至りました。
タブが復元されなくなったことはMojaveがリリースされて直ぐに気づいていましたが、
まぁいいかと思い今に至りましたが、やはり不便だったため作成となりました。
Mojaveからタブが復元されなくなったことについては、以下のAppleコミュニティでもディスカッションされています。
バグか、もしくは仕様変更 – Apple コミュニティ
https://discussionsjapan.apple.com/thread/110209006
各アプリの詳細
finder_tab_save.app(タブ保存)
表示しているタブを保存するアプリです。
使い方
finder_tab_save.appを実行すると、Finderで開いているタブのパスのリスト情報が
~/Documents/finder-tab-app/finder_tab_save_lists.txtに保存されます。
(finder-tab-appのディレクトリ及び、finder_tab_save_lists.txtは自動生成されます)
finder_tab_save.app実行時の注意点として、現在アクディブになっているタブを先頭として
タブは右から順番に保存されていきます。
そのため、後述のfinder_tab_restore.appを実行した際は、
finder_tab_save.app実行時にアクディブになっていたタブから順番に復元されます。
(=Finderの左から順番にタブ復元されます)
なお、finder_tab_save.appはFinderのツールバーに追加して使用すると便利です。
(ツールバーへの追加方法は、Commadを押下しながらfinder_tab_save.appをマウスでツールバーにドラッグ&ドロップすると追加できます)
動作デモ
現在アクティブのタブから始まり、右から順番に保存しています。
(動作デモでは ミュージック → ピクチャ → ムービー の順番で保存されています)
もし現在アクティブのタブが「ピクチャ」のタブの状態でfinder_tab_save.appを実行した場合は
ピクチャ → ムービー → ミュージック の順番で保存されます。
※繰り返しですが、保存された順番に復元されるためご注意ください。
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | on run -- 保存先ディレクトリ set saveDirPath to "~/Documents/finder-tab-app/" -- 保存先ファイル名 set saveFileName to "finder_tab_save_lists.txt" -- 保存先ディレクトリを作成 do shell script "mkdir -p " & saveDirPath & " 2>/dev/null" -- 保存先ファイルの中身を空にする do shell script ": > " & saveDirPath & saveFileName tell application "Finder" -- Finderの表示中のタブ数を取得 set tabCount to count windows end tell -- タブのパスを格納するリスト set tabPathList to {} repeat tabCount times tell application "System Events" -- finderをアクティブにする tell application process "Finder" to set frontmost to true -- Control + Tabを押下 keystroke tab using {control down} -- delayを挟まないと上手くパスが取得できないため挟む delay 0.1 tell application "Finder" -- 現在のパスを取得 set currentPath to insertion location as text set x to POSIX path of currentPath -- 取得したパスをリストへ追加 set tabPathList to tabPathList & x end tell end tell end repeat -- リストの要素数 set tabPathListCount to count tabPathList -- リストの最後の要素の値を取得 set tabPathListLastValue to item tabPathListCount of tabPathList -- リストの最初に要素を追加 copy tabPathListLastValue to the beginning of tabPathList -- リストの最後の要素を削除 set tabPathList to reverse of rest of reverse of tabPathList repeat with tabPath in tabPathList -- ファイルに追記 do shell script "echo '" & tabPath & "' >> " & saveDirPath & saveFileName end repeat end run |
finder_tab_restore.app(タブ復元)
finder_tab_save.appで保存したタブを復元するアプリです。
使い方
finder_tab_restore.appをクリックすると、finder_tab_save.appで保存したタブを復元します。
既にFinderが起動している場合はタブが追加される形で復元されるため、
赤丸の閉じるボタンでFinderを閉じた後にfinder_tab_restore.appを実行してください。
finder_tab_restore.appはDockに追加して使用すると便利です。
動作デモ
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | on run -- タブのパスのリストを保存しているファイル(ホームディレクトリ以下のパスを指定) set targetFilePath to "Documents/finder-tab-app/finder_tab_save_lists.txt" -- ファイルを読み込み set targetFile to (the POSIX path of (path to home folder)) & targetFilePath -- ファイルから読み込んだパスを改行毎に分割してリストへ set paths to read targetFile using delimiter linefeed as «class utf8» repeat with path in paths set targetPath to POSIX file path tell application "System Events" -- finderをアクティブにする tell application process "Finder" to set frontmost to true -- Command + Tを押下 keystroke "t" using command down end tell -- delayを挟まないと上手く指定のパスへ移動できない場合があるため挟む delay 0.1 -- 指定のパスへ移動 tell application "Finder" to set target of front window to targetPath as alias end repeat end run |
各アプリの実行時の注意
finder_tab_save.app及びfinder_tab_restore.appの実行に辺り、
システム環境設定>セキュリティとプライバシー>アクセシビリティ
にて、finder_tab_save.appとfinder_tab_restore.appを追加してコンピュータの制御を許可してください。
許可しないと権限不足で実行できないためです。
各アプリ実行時に、それぞれ以下のダイアログが表示されますがOKをクリックしてください。
■finder_tab_save.app
■finder_tab_restore.app
アプリのダウンロード
ソースコードを公開しているためご自分でもアプリを作成出来ますが、
ダウンロードして使えるようにzipファイルにして配布いたします。
ダウンロード
https://www.villness.com/files/finder-tab-app_20191001.zip
zipファイルを復号後、finder-tab-appフォルダは書類(Documents)フォルダに置いてご使用ください。
なお、ご自分でアプリを作成して使用されたい場合は後述の方法でアプリ作成してご使用ください。
(おまけ)アプリの作成方法
Automatorを起動
Automatorを起動します。
「ワークフロー」を選択
「ワークフロー」を選択します。
「AppleScriptを実行」を右のエリアにドラッグ&ドロック
「AppleScriptを実行」を右のエリアにドラッグ&ドロックします。
ソースコードを記述
ソースコードを記述します。
finder_tab_saveの場合
finder_tab_restoreの場合
「アプリ」として保存
以下のように、保存時にフォーマット「アプリケーション」を指定してアプリとして保存します。
最後に
手動実行ではありますが、タブが保存&復元できるためMac再起動後など楽になるかと思います。
常に複数タブを開いた状態で作業されている方には、少なからずサポートできるアプリになったのではないかと思います。
出来れば自動でタブを保存・復元できればベストなのですが、、
もし方法ご存知の方はご連絡お待ちしております!
【動確環境】
Mac:macOS Mojave 10.14.6、masOS Catalina 10.15
コメントを残す