Applescript - 在 MacOS Monterey 上设置系统偏好停靠栏大小滑块的值
Applescript - Set value of System Preferences dock size slider on MacOS Monterey
我正在尝试使用 AppleScript 将停靠栏大小更改为指定值。我的 OS 是 MacOS Monterey v12.0,这可能很重要。
我能够获得适当的“Dock Size”滑块的句柄,但我不知道如何直接设置它的值。
考虑到我在 tell slider
区块中,我已经尝试过...
set value to targetValue
set value of value indicator 1 to targetValue
- 使用
set focused to true
设置前对焦(没有区别)
有效但不够精确的方法是使用 increment
/decrement
repeat while value is less than targetValue
increment
end repeat
repeat while value is greater than targetValue
decrement
end repeat
...但这非常不精确,最终将值设置到一个不够精确的范围内。
我的完整脚本如下。我正在使用
从命令行调用它
$ osascript -s eo /path/to/file/Resize-Dock.applescript 0.3
调整大小-Dock.applescript
#!/usr/bin/osascript
on run argv
set targetValue to item 1 of argv
if running of application "System Preferences" then
quit application "System Preferences"
delay 1
end if
tell application "System Preferences"
activate
reveal pane id "com.apple.preference.dock"
delay 1
tell application "System Events"
tell slider 1 of group 1 of window "Dock & Menu Bar" of application process "System Preferences"
set currentValue to value of value indicator 1
log " Dock size value BEFORE = " & currentValue
set focused to true
######## HERE IS WHERE I NEED HELP PLEASE ########
set value of value indicator 1 to targetValue
set currentValue to value of value indicator 1
log " Dock size value AFTER = " & currentValue
end tell
end tell
end tell
if running of application "System Preferences" then
quit application "System Preferences"
end if
end run
PS:是的,我知道我可以选择避免使用 AppleScript 并直接写入默认值,例如...
defaults write com.apple.dock tilesize -int 60
killall Dock
然而,这有一个主要缺点,即它会影响应用程序徽章计数。我花了很多时间试图直接解决这个问题,现在我只是想通过 AppleScript 来推动改变,以专门避免这种情况。
非常感谢任何帮助
这在 macOS Monterey.
中对我来说完全适用
示例 AppleScript 代码:
tell application "System Events" to ¬
tell dock preferences to set its dock size to 0.3
备注:
上面显示的示例 AppleScript 代码在[=40=中进行了测试macOS Monterey 下的 ]Script Editor 以及 System Preferences 中的 Language & Region 设置到 英语(美国)— 小学 并为我工作没有问题1.
- 1 在 系统偏好设置 > 安全与隐私[=] 中假定必要且适当的设置63=] > 隐私 已根据需要set/addressed。
请注意,虽然在 macOS Monterey 下进行了测试,但它应该也适用于其他版本的 macOS。
也可以从终端作为:
osascript -e 'tell application "System Events" to tell dock preferences to set its dock size to 0.3'
或者可以在 shell 脚本 中使用 #!/usr/bin/osascript
shebang 使用 on run argv
handler., 例如:
示例 AppleScript 代码:
#!/usr/bin/osascript
on run argv
set targetValue to item 1 of argv
tell application "System Events" to tell dock preferences to set its dock size to targetValue
end run
我正在尝试使用 AppleScript 将停靠栏大小更改为指定值。我的 OS 是 MacOS Monterey v12.0,这可能很重要。
我能够获得适当的“Dock Size”滑块的句柄,但我不知道如何直接设置它的值。
考虑到我在 tell slider
区块中,我已经尝试过...
set value to targetValue
set value of value indicator 1 to targetValue
- 使用
set focused to true
设置前对焦(没有区别)
有效但不够精确的方法是使用 increment
/decrement
repeat while value is less than targetValue
increment
end repeat
repeat while value is greater than targetValue
decrement
end repeat
...但这非常不精确,最终将值设置到一个不够精确的范围内。
我的完整脚本如下。我正在使用
从命令行调用它$ osascript -s eo /path/to/file/Resize-Dock.applescript 0.3
调整大小-Dock.applescript
#!/usr/bin/osascript
on run argv
set targetValue to item 1 of argv
if running of application "System Preferences" then
quit application "System Preferences"
delay 1
end if
tell application "System Preferences"
activate
reveal pane id "com.apple.preference.dock"
delay 1
tell application "System Events"
tell slider 1 of group 1 of window "Dock & Menu Bar" of application process "System Preferences"
set currentValue to value of value indicator 1
log " Dock size value BEFORE = " & currentValue
set focused to true
######## HERE IS WHERE I NEED HELP PLEASE ########
set value of value indicator 1 to targetValue
set currentValue to value of value indicator 1
log " Dock size value AFTER = " & currentValue
end tell
end tell
end tell
if running of application "System Preferences" then
quit application "System Preferences"
end if
end run
PS:是的,我知道我可以选择避免使用 AppleScript 并直接写入默认值,例如...
defaults write com.apple.dock tilesize -int 60
killall Dock
然而,这有一个主要缺点,即它会影响应用程序徽章计数。我花了很多时间试图直接解决这个问题,现在我只是想通过 AppleScript 来推动改变,以专门避免这种情况。
非常感谢任何帮助
这在 macOS Monterey.
中对我来说完全适用示例 AppleScript 代码:
tell application "System Events" to ¬
tell dock preferences to set its dock size to 0.3
备注:
上面显示的示例 AppleScript 代码在[=40=中进行了测试macOS Monterey 下的 ]Script Editor 以及 System Preferences 中的 Language & Region 设置到 英语(美国)— 小学 并为我工作没有问题1.
- 1 在 系统偏好设置 > 安全与隐私[=] 中假定必要且适当的设置63=] > 隐私 已根据需要set/addressed。
请注意,虽然在 macOS Monterey 下进行了测试,但它应该也适用于其他版本的 macOS。
也可以从终端作为:
osascript -e 'tell application "System Events" to tell dock preferences to set its dock size to 0.3'
或者可以在 shell 脚本 中使用 #!/usr/bin/osascript
shebang 使用 on run argv
handler., 例如:
示例 AppleScript 代码:
#!/usr/bin/osascript
on run argv
set targetValue to item 1 of argv
tell application "System Events" to tell dock preferences to set its dock size to targetValue
end run