当我在 Mac 上创建新工作区时,如何 运行 脚本?
how can I run a script when I create a new workspace on my Mac?
我想在我的作品space自动创建时添加一个便利贴,但我不知道我创建新作品时发生了什么space?
我可以使用 applescript 或 Hammerspoon 吗?
据我所知,没有可以创建新 桌面 的本机 键盘快捷键 。 Mission Control 和 Stickies 都没有 AppleScript Dictionary 及其进程 has scripting terminology
属性 设置为 false
。因此,UI Scripting 解决方案是可行的,尽管可能不太受欢迎,而且我知道的唯一方法是 vanilla AppleScript.
以下是在 macOS High Sierra 下测试的,其中 macOS defaults 键盘快捷键显示Mission Control,即Control–向上箭头( ⌃↑).此设置位于:
系统偏好设置 > 键盘 > 快捷方式 > 任务控制 > [√] 任务控制 ⌃↑
以下 示例 AppleScript code 假定上述设置为真并已启用:
创建一个新桌面并将焦点设置到它:
tell application "System Events"
key code 126 using control down -- # Control-Up Arrow
delay 0.25
tell group 2 of group 1 of group 1 of application process "Dock"
click (every UI element whose description is "add desktop")
delay 0.25
click last UI element of list 1
end tell
end tell
- 请注意,
delay
命令 的 值 可能需要针对您的系统进行调整,和/或额外的 delay
命令 可能需要也可能不需要。适当调整值和add/removedelay
命令。
这是简单的部分。 Stickies 的问题是用它创建的笔记不是 pin-able 特定桌面,因此虽然您可以通过编程方式在新桌面上创建新笔记,但它不会留在那里,下次您打开 Stickies ,所有笔记都将位于打开即时贴的活动桌面上。那么,在新创建的桌面上创建新笔记真的有什么意义吗?我的直觉说不!
也就是说,下面的 example AppleScript code 确实完成了这些步骤并且是仅包含在内是因为它是您问题的一部分,但在我看来它不切实际并且是徒劳的练习。
创建一个新的桌面,将焦点设置到它,并创建一个新的即时贴:
if running of application "Stickies" then
tell application "Stickies" to quit
delay 0.5
end if
tell application "System Events"
key code 126 using control down -- # Control-Up Arrow
delay 0.25
tell group 2 of group 1 of group 1 of application process "Dock"
click (every UI element whose description is "add desktop")
delay 0.25
click last UI element of list 1
end tell
tell application "Stickies" to activate
delay 1
keystroke "n" using command down
delay 0.25
keystroke "This is a new Stickies note on a new Desktop."
end tell
- 请注意,
delay
命令 的 值 可能需要针对您的系统进行调整,和/或额外的 delay
命令 可能需要也可能不需要。适当调整值和add/removedelay
命令。
注意: 示例 AppleScript 代码 就是这样,不使用任何 错误处理 ,仅用于展示完成任务的多种方法之一。用户始终有责任 add/use 适当地 错误处理 作为 needed/wanted。请注意,使用 try
命令 作为 错误处理程序 对于 UI 非常方便脚本.
我想在我的作品space自动创建时添加一个便利贴,但我不知道我创建新作品时发生了什么space?
我可以使用 applescript 或 Hammerspoon 吗?
据我所知,没有可以创建新 桌面 的本机 键盘快捷键 。 Mission Control 和 Stickies 都没有 AppleScript Dictionary 及其进程 has scripting terminology
属性 设置为 false
。因此,UI Scripting 解决方案是可行的,尽管可能不太受欢迎,而且我知道的唯一方法是 vanilla AppleScript.
以下是在 macOS High Sierra 下测试的,其中 macOS defaults 键盘快捷键显示Mission Control,即Control–向上箭头( ⌃↑).此设置位于:
系统偏好设置 > 键盘 > 快捷方式 > 任务控制 > [√] 任务控制 ⌃↑
以下 示例 AppleScript code 假定上述设置为真并已启用:
创建一个新桌面并将焦点设置到它:
tell application "System Events"
key code 126 using control down -- # Control-Up Arrow
delay 0.25
tell group 2 of group 1 of group 1 of application process "Dock"
click (every UI element whose description is "add desktop")
delay 0.25
click last UI element of list 1
end tell
end tell
- 请注意,
delay
命令 的 值 可能需要针对您的系统进行调整,和/或额外的delay
命令 可能需要也可能不需要。适当调整值和add/removedelay
命令。
这是简单的部分。 Stickies 的问题是用它创建的笔记不是 pin-able 特定桌面,因此虽然您可以通过编程方式在新桌面上创建新笔记,但它不会留在那里,下次您打开 Stickies ,所有笔记都将位于打开即时贴的活动桌面上。那么,在新创建的桌面上创建新笔记真的有什么意义吗?我的直觉说不!
也就是说,下面的 example AppleScript code 确实完成了这些步骤并且是仅包含在内是因为它是您问题的一部分,但在我看来它不切实际并且是徒劳的练习。
创建一个新的桌面,将焦点设置到它,并创建一个新的即时贴:
if running of application "Stickies" then
tell application "Stickies" to quit
delay 0.5
end if
tell application "System Events"
key code 126 using control down -- # Control-Up Arrow
delay 0.25
tell group 2 of group 1 of group 1 of application process "Dock"
click (every UI element whose description is "add desktop")
delay 0.25
click last UI element of list 1
end tell
tell application "Stickies" to activate
delay 1
keystroke "n" using command down
delay 0.25
keystroke "This is a new Stickies note on a new Desktop."
end tell
- 请注意,
delay
命令 的 值 可能需要针对您的系统进行调整,和/或额外的delay
命令 可能需要也可能不需要。适当调整值和add/removedelay
命令。
注意: 示例 AppleScript 代码 就是这样,不使用任何 错误处理 ,仅用于展示完成任务的多种方法之一。用户始终有责任 add/use 适当地 错误处理 作为 needed/wanted。请注意,使用 try
命令 作为 错误处理程序 对于 UI 非常方便脚本.