summaryrefslogtreecommitdiff
path: root/hammerspoon
diff options
context:
space:
mode:
authoreltrac <hi@eltr.ac>2026-05-07 23:23:13 +0800
committereltrac <hi@eltr.ac>2026-05-07 23:23:13 +0800
commitc5fce28eef037012265472164299ef3d9ce041c8 (patch)
tree64003898aa20e46a2f1de0829151a251ceb28c26 /hammerspoon
parent81cd923355096512d15188a031e87c39aaa92c82 (diff)
add hammerspoon script
Diffstat (limited to 'hammerspoon')
-rw-r--r--hammerspoon/init.lua39
1 files changed, 39 insertions, 0 deletions
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()