Skip to main content

如何自動讓 Finder 合併所有視窗

Table of Contents

## 如何自動讓 Finder 合併所有視窗

# 引言(Introduction)

Mac 的 Finder 在使用多個視窗時,可能會讓用戶感到困擾,因為當 Finder 視窗越來越多時,容易讓人迷失在視窗之間,無法迅速找到剛剛打開的那個視窗。雖然你可以使用類似 AltTab - Windows alt-tab on macOS,按 option-Tab 的快捷鍵來切換視窗,但這並不總是最方便的方法。Finder 提供了「視窗」選單中的「合併所有視窗」功能,可以將所有打開的視窗合併到一個視窗中,但每次都需要手動執行。為了自動化這個過程,我們可以利用 Hammerspoon 來實現。

Hammerspoon 是一個開源的自動化工具,允許用戶使用 Lua 腳本來控制 macOS 的各種功能,讓你的 Mac 更加個性化和高效。

# 方法(Methods)

對於沒有使用過 Hammerspoon 的人,以下是一步步的操作指南,幫助你實現 Finder 視窗自動合併的功能。

  1. 安裝 Hammerspoon

    • 首先,你需要從 Hammerspoon 官方網站 下載並安裝 Hammerspoon。
    • 安裝完成後,打開 Hammerspoon 應用,並允許它獲取必要的系統權限。
  2. 打開 Hammerspoon 配置文件

    • 打開 Hammerspoon 後,在菜單欄中點擊 Hammerspoon 圖標,選擇 Open Config 來打開配置文件。這個文件通常是 ~/.hammerspoon/init.lua
  3. 編寫腳本

    • 在打開的 init.lua 文件中,將以下代碼複製並貼上:
    -- 定義一個函數來執行 AppleScript
    function mergeAllWindows()
        local script = [[
            tell application "System Events"
                tell process "Finder"
                    click menu item "合併所有視窗" of menu "視窗" of menu bar 1
                end tell
            end tell
        ]]
        hs.osascript.applescript(script)
    end
    
    -- 監控應用程式切換事件
    hs.application.watcher.new(function(appName, eventType, appObject)
        if (eventType == hs.application.watcher.activated) then
            if (appName == "Finder") then
                mergeAllWindows()
            end
        end
    end):start()
    
  4. 保存並重新加載配置

    • 保存文件後,回到 Hammerspoon 的菜單欄圖標,選擇 Reload Config 來重新加載配置文件。你可以看到一個通知表示配置已經重新載入。
  5. 測試腳本

    • 打開多個 Finder 視窗,然後點擊其他應用程式,之後再回到 Finder。當 Finder 被激活時,Hammerspoon 會自動執行 mergeAllWindows 函數,合併所有打開的 Finder 視窗。

# 結果(Results)

當你完成上述步驟後,Hammerspoon 會在每次 Finder 被激活時自動合併所有視窗,這樣你就不再需要手動執行這個操作。

# 討論(Discussion)

這段腳本有效地解決了 Finder 多視窗管理的困擾。Hammerspoon 是一個非常強大的工具,允許你使用腳本來自動執行各種操作,讓你可以根據自己的需求來定制 macOS 的行為。即使你沒有編程經驗,按照這些步驟也能輕鬆上手。

# 結論(Conclusion)

通過 Hammerspoon 和簡單的 Lua 腳本,我們可以實現 Finder 視窗的自動合併功能,這不僅節省了時間,還提升了日常工作的效率。這個解決方案特別適合那些經常在 Finder 中打開多個視窗的用戶。如果你經常在 Finder 中工作,這個工具將成為你日常工作中不可或缺的一部分。