代码之家  ›  专栏  ›  技术社区  ›  karl

在Mac上创建新工作区时,如何运行脚本?

  •  2
  • karl  · 技术社区  · 8 年前

    当我自动创建工作区时,我想在工作区中添加一个便签,但我不知道创建新空间时会发生什么?

    我可以用applescript或Hammerspoon吗

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   user3439894    8 年前

    据我所知,没有本地人 键盘快捷键 可以创建新的 桌面 。二者都 任务控制 桌面便利贴 没有 AppleScript字典 及其流程 has scripting terminology 所有物 设置为 false 。因此a UI脚本 解决方案是可行的,尽管可能不太有利,而且我知道的唯一方法是 香草 AppleScript

    在以下条件下进行了测试 马科斯High Sierra 使用 macOS公司 默认设置 已为 键盘快捷键 揭露 任务控制 ,即 控件向上箭头 ( Œƒ†‘ )。此设置位于:

    系统首选项 &燃气轮机; 键盘 &燃气轮机; 快捷方式 &燃气轮机; 任务控制 &燃气轮机; 任务控制 Œƒ†‘

    以下内容 实例 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 命令 可能需要针对您的系统进行调整,和/或其他 延迟 命令 可能需要也可能不需要。调整 价值观 的和/或添加/删除 延迟 命令 视情况而定。

    这是最简单的部分。粘滞的问题是,使用它创建的注释无法固定到特定的桌面,因此,虽然您可以通过编程在新桌面上创建新注释,但它不会停留在那里,下次打开粘滞时,所有注释都将位于打开粘滞的active Desktop上。那么,在新创建的桌面上创建新便笺真的有什么意义吗?我的直觉说不!

    也就是说,下面 实例 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 
    
    • 请注意 价值 延迟 命令 可能需要针对您的系统进行调整,和/或其他 延迟 命令 可能需要也可能不需要。调整 价值观 的和/或添加/删除 延迟 命令 视情况而定。

    注: 这个 实例 AppleScript 密码 就是这样,不雇佣任何 错误处理 这只是为了显示完成任务的多种方法之一。用户始终有责任添加/使用适当的 错误处理 根据需要/需要。请注意 try 命令 作为 错误处理程序 非常方便 UI脚本