joetannenbaum / php-mac-automator
使用 PHP 自动化您的 Mac
0.1.0
2023-04-24 14:37 UTC
Requires (Dev)
- tightenco/duster: ^2.0
README
这是一个围绕 JXA 脚本的简单包装器,允许您使用 PHP 控制 Mac。
👋 这是一个正在进行中的项目。 我仍在完善 API 和添加功能,一些东西可能会改变。
话虽如此,玩起来还是很有趣的。所以请尽情尝试。
安装
composer require joetannenbaum/php-mac-automator
使用
use Automator\Automator; $automator = new Automator(); // Open Warp terminal and list the files in the current directory $automator->open('Warp')->typeAndEnter('ls')->run(); // or Automator::make()->open('Warp')->typeAndEnter('ls')->run();
打开应用程序
$automator->open('Warp');
输入
$automator->type('Hello World'); $automator->typeAndEnter('Hello World'); // With modifier keys (e.g. zoom in) $automator->withCommand('+'); $automator->withShift('+'); $automator->withOption('+'); $automator->withControl('+'); // With multiple modifier keys (e.g. re-open last tab) $automator->type('t', [Modifier::COMMAND, Modifier::SHIFT]); // Helpers $automator->enter(); $automator->tab(); $automator->backspace(); $automator->delete(); $automator->escape(); $automator->space(); $automator->arrowUp(); $automator->arrowDown(); $automator->arrowLeft(); $automator->arrowRight(); $automator->home(); $automator->end(); $automator->pageUp(); $automator->pageDown(); // Add modifer(s) to helper $automator->enter(Modifier::SHIFT); $automator->enter([Modifier::COMMAND, Modifier::SHIFT]); // Set the typing speed // 0.1 seconds between each character (default is 0.05) $automator->setTypingSpeed(0.1);
实用工具
// Open an app $automator->open('Warp'); // Pause (seconds) $automator->pause(1); // Repeat a block of code (e.g. zoom in five times) $automator->repeat( 5, fn (Automator $remote) => $remote->typeWithCommand('+')->pause(.05), );
注意事项
- 此脚本实际上正在向您的应用程序发送按键,但它在计算机速度下运行。请记住,在您的脚本中插入合理的
pause
语句,以便让计算机跟上。 - 如果您正在运行脚本,它将一直执行,直到该进程本身被停止或脚本完成。这意味着:如果您将标签从脚本正在运行的应用程序中移开,如果脚本还有更多输入要做,它将继续输入。请记住这一点。
示例
演示 Raycast 扩展
Automator::make() ->typeWithCommand(' ') ->pause(1) ->type('Warp Launch') ->pause(.5) ->enter() ->pause(.5) ->type('blog-joe-codes') ->pause(.5) ->enter() ->run();
演示代码片段
Automator::make() ->setTypingSpeed(.1) ->open('Visual Studio Code') ->pause(1) ->type('n', [Modifier::SHIFT, Modifier::COMMAND]) // Open a new window ->pause(.5) ->typeWithCommand('n') // Open a new file ->pause(.5) ->type('<?php') ->pause(.5) ->repeat(2, fn (Automator $remote) => $remote->enter()->pause(.25)) ->type('echo "Hello World!";') ->run();
路线图
目前您基本上可以用键盘做到的所有事情都可以自动化。我希望添加
- 鼠标控制
- 窗口控制
- 文件系统控制
- 浏览器控制