2

我想在我的工作空间自动创建的时候添加一个便笺,但是我不知道我创建一个新空间的时候是什么事件?

我可以使用 applescript 或 Hammerspoon 吗?</p>

在此处输入图像描述

4

1 回答 1

1

据我所知,没有可以创建新Desktop的本机键盘快捷键Mission ControlStickies都没有AppleScript Dictionary并且它们的 processes属性设置为。因此,UI Scripting解决方案是可行的,尽管可能不受欢迎,并且是我所知道的使用vanilla AppleScript的唯一方法。has scripting terminology false

以下是在macOS High Sierra下测试的,使用macOS 默认设置来显示Mission Control键盘快捷键,即Control–向上箭头( ⌃↑ )。此设置位于:

系统偏好设置>键盘>快捷方式>任务控制> [√] 任务控制    ⌃↑

以下示例 AppleScript 代码假定上述设置为 true 并已启用:

创建一个新的桌面并将焦点设置在它上面:

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 delay

那是容易的部分。Stickies 的问题在于,使用它创建的笔记无法固定到特定桌面,因此,虽然您可以在新桌面上以编程方式创建新笔记,但它不会留在那里,下次打开 Stickies 时,所有笔记将在打开 Stickies 的活动桌面上。那么,在新创建的桌面上创建新笔记真的有任何意义吗?我的直觉说不!

也就是说,以下示例 AppleScript 代码确实经过了这些步骤,并且仅包含在内,因为它是您问题的一部分,但在我看来,它不实用,而且是徒劳的练习。

创建一个新的桌面,将焦点设置在它上面,并创建一个新的便笺:

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 delay

注意:示例AppleScript 代码 就是这样,不采用任何错误处理,仅用于展示完成任务的多种方式之一。用户始终有责任根据需要/想要添加/使用适当的错误处理。请注意,将try 命令用作错误处理程序对于UI 脚本非常方便。

于 2018-03-17T16:42:54.273 回答