From c5fce28eef037012265472164299ef3d9ce041c8 Mon Sep 17 00:00:00 2001 From: eltrac Date: Thu, 7 May 2026 23:23:13 +0800 Subject: add hammerspoon script --- .gitignore | 3 +++ hammerspoon/init.lua | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 hammerspoon/init.lua diff --git a/.gitignore b/.gitignore index 3910da5..d5faef3 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ !emacs/** !nvim/ !nvim/** +!hammerspoon/ +!hammerspoon/** + diff --git a/hammerspoon/init.lua b/hammerspoon/init.lua new file mode 100644 index 0000000..b370312 --- /dev/null +++ b/hammerspoon/init.lua @@ -0,0 +1,39 @@ +-- 这个脚本在 MacBook 接入外接显示屏时 +-- 将 Dock 栏移动到右侧 +local function updateDockPosition() + local screens = hs.screen.allScreens() + local dockPos = "bottom" + local autoHide = true + local foundExternal = false + + -- 查找名为 "P5" 的外接屏 + for _, s in ipairs(screens) do + if s:name() == "P5" then + foundExternal = true + break + end + end + + if foundExternal then + dockPos = "right" + autoHide = true + else + dockPos = "bottom" + autoHide = true + end + + local cmd = string.format( + 'defaults write com.apple.dock orientation %s; ' .. + 'defaults write com.apple.dock autohide -bool %s; ' .. + 'killall Dock', + dockPos, + autoHide and "true" or "false" + ) + + hs.execute(cmd) +end + +local screenWatcher = hs.screen.watcher.new(updateDockPosition) +screenWatcher:start() + +updateDockPosition() -- cgit v1.2.3