281 lines
4.6 KiB
Markdown
281 lines
4.6 KiB
Markdown
---
|
|
title: "Usage"
|
|
draft: false
|
|
description: "Using kbdemu"
|
|
---
|
|
{{< appveyor-ci project="kbdemu" projectID="km2f1wiy7enuh6il" >}}
|
|
{{< minio-s3 project="kbdemu" >}}
|
|
|
|
This page assumes you have already installed KbdEmu. If not, follow the installation instructions on the installation page:
|
|
|
|
{{< button text="Installation" bgcolor="#357edd" fgcolor="white" link="../installation" >}}
|
|
|
|
## Scripts
|
|
|
|
KbdEmu uses [scpt](https://gitea.arsenm.dev/Arsen6331/scpt) as its scripting language. The example script for kbdemu looks like this:
|
|
|
|
```
|
|
set testKey to "x"
|
|
keystroke $testKey with action "hold"
|
|
sleep "1s"
|
|
keystroke $testKey with action "release"
|
|
type "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"
|
|
scroll 5 with direction "up"
|
|
click "right"
|
|
move-mouse [0, 0]
|
|
send-notification "Test"
|
|
beep
|
|
open-location "https://www.arsenm.dev/"
|
|
set showDetails to (display-dialog "Show details?" with type "yesno")
|
|
if $showDetails {
|
|
display-dialog {"Color: " + (pixel-color [100, 100]) + ", Mouse: " + (str (mouse-position))} with title "Details"
|
|
}
|
|
print {"\n" + (user-choice "test" with items ["Hello", "World", 3.1415926535, $GOOS, $GOARCH, true, false, (numcpu)])}
|
|
log "Complete!"
|
|
```
|
|
|
|
By default, the `kbdemu` command will look for and execute a file called `kbdemu.scpt`, but that can be changed using the `--file` flag.
|
|
|
|
---
|
|
|
|
## Builtins
|
|
|
|
KbdEmu comes with some extra functions for automation
|
|
|
|
---
|
|
|
|
### `numcpu`
|
|
|
|
Returns the amount of available CPUs as a number.
|
|
|
|
Example:
|
|
```
|
|
print (numcpu)
|
|
```
|
|
|
|
---
|
|
|
|
### `sleep`
|
|
|
|
Sleeps for a duration as specified by an unnamed string argument formatted according to the specification of golang's `time.ParseDuration()`:
|
|
|
|
{{< button text="Godoc" bgcolor="#00ACD7" fgcolor="white" icon="cib:go" link="https://golang.org/pkg/time#ParseDuration" >}}
|
|
|
|
Examples:
|
|
```
|
|
sleep "1s"
|
|
sleep "1h2m"
|
|
```
|
|
|
|
---
|
|
|
|
### `display-dialog`
|
|
|
|
Displays a dialog window with the specified parameters.
|
|
|
|
Examples:
|
|
```
|
|
display-dialog "Test1"
|
|
display-dialog "Test2" with title "Title Test"
|
|
print (display-dialog "Test3" with title "Entry Test" with type "entry")
|
|
```
|
|
|
|
These are all the supported dialog types:
|
|
|
|
- info
|
|
- warning
|
|
- error
|
|
- entry
|
|
- yesno
|
|
|
|
Default dialog type is info.
|
|
|
|
---
|
|
|
|
### `send-notification`
|
|
|
|
Sends a notification according to the specified parameters
|
|
|
|
Examples:
|
|
```
|
|
send-notification "Test"
|
|
send-notification "Test" with title "Title"
|
|
send-notification "Test" with title "Title" with icon "test.png"
|
|
```
|
|
|
|
---
|
|
|
|
### `beep`
|
|
|
|
Creates a beep sound, if impossible, falls back to sending bell character.
|
|
|
|
Examples:
|
|
```
|
|
beep
|
|
beep "3s"
|
|
```
|
|
|
|
---
|
|
|
|
### `click`
|
|
|
|
Emulates a mouse click
|
|
|
|
Example:
|
|
```
|
|
click "right"
|
|
```
|
|
|
|
---
|
|
|
|
### `scroll`
|
|
|
|
Scrolls the specifed amount in the specified direction
|
|
|
|
Example:
|
|
```
|
|
scroll 5 with direction "up"
|
|
```
|
|
|
|
---
|
|
|
|
### `move-mouse`
|
|
|
|
Moves the cursor to the specified coordinates
|
|
|
|
Example:
|
|
```
|
|
move-mouse [100, 200]
|
|
```
|
|
|
|
---
|
|
|
|
### `keystroke`
|
|
|
|
Emulates a key event
|
|
|
|
Examples:
|
|
```
|
|
keystroke "y" with action "hold"
|
|
sleep "2s"
|
|
keystroke "y" with action "release"
|
|
keystroke "x"
|
|
```
|
|
|
|
Default action is `tap` which presses and releases the key.
|
|
|
|
---
|
|
|
|
### `type`
|
|
|
|
Types a string using the keyboard
|
|
|
|
Example:
|
|
```
|
|
type "Hello, World"
|
|
```
|
|
|
|
---
|
|
|
|
### `mouse-position`
|
|
|
|
Returns the current mouse position in the form of an array containing two number elements.
|
|
|
|
Example:
|
|
```
|
|
print (mouse-position) # [0 0]
|
|
```
|
|
|
|
---
|
|
|
|
### `pixel-color`
|
|
|
|
Returns a string containing the hex color of the given coordinates.
|
|
|
|
Example:
|
|
```
|
|
print (pixel-color [100, 100]) # ffffff
|
|
```
|
|
|
|
---
|
|
|
|
### `log`
|
|
|
|
Logs the provided message at the given level.
|
|
|
|
Examples:
|
|
```
|
|
log "Complete"
|
|
log "Error" with level "fatal"
|
|
```
|
|
|
|
The available levels are:
|
|
|
|
- info
|
|
- debug
|
|
- warn
|
|
- fatal
|
|
|
|
Default log level is info
|
|
|
|
---
|
|
|
|
### `user-choice`
|
|
|
|
Displays a user choice dialog window with provided items, returns selected item.
|
|
|
|
Example:
|
|
```
|
|
user-choice "Choose an option" with items ["Hello", "World", 1, 3.14159, 6.28318]
|
|
```
|
|
|
|
---
|
|
|
|
### `open-location`
|
|
|
|
Opens given URL in the default application set to open it.
|
|
|
|
Examples:
|
|
```
|
|
open-location "https://www.arsenm.dev"
|
|
open-location "/home"
|
|
```
|
|
|
|
---
|
|
|
|
## Variables
|
|
|
|
KbdEmu exposes some variables for use in scripts.
|
|
|
|
---
|
|
|
|
### `$GOOS`
|
|
|
|
The value from golang's `runtime.GOOS`
|
|
|
|
{{< button text="Godoc" bgcolor="#00ACD7" fgcolor="white" icon="cib:go" link="https://golang.org/pkg/runtime#GOOS" >}}
|
|
|
|
---
|
|
|
|
### `$GOARCH`
|
|
|
|
The value from golang's `runtime.GOARCH`
|
|
|
|
{{< button text="Godoc" bgcolor="#00ACD7" fgcolor="white" icon="cib:go" link="https://golang.org/pkg/runtime#GOARCH" >}}
|
|
|
|
---
|
|
|
|
### `$arguments`
|
|
|
|
Non-flag command line arguments provided to KbdEmu
|
|
|
|
Example:
|
|
|
|
Command:
|
|
```bash
|
|
kbdemu --file script.scpt "Hello, World"
|
|
```
|
|
Contents of `script.scpt`:
|
|
```
|
|
print $arguments[0] # Hello, World
|
|
``` |