#lua-script #scripting #keyboard #macro

bin+lib scriptkeys

ScriptKeys 允许您为支持的设备上的每个按键轻松构建宏(在 Lua 中)

4 个版本

0.2.2 2023 年 7 月 6 日
0.2.1 2023 年 6 月 26 日
0.2.0 2023 年 6 月 24 日
0.1.0 2023 年 6 月 22 日

#1645命令行工具

每月 32 次下载

自定义许可证

34KB
797

ScriptKeys

从按键到 Lua 脚本的一个简单映射。将按键索引映射到 Lua 脚本以自动化不同的繁琐任务。

安装

  1. cargo install scriptkeys 将从 Crates.io 拉取以方便安装
  2. 或者您可以像预期的那样本地构建
    1. cargobuild --release
    2. 定位二进制文件 ./target/release/scriptkeys 到相关的 PATH 目录

Brew 和其他系统级包装可能是未来的一个值得投资的选择。

配置

配置位置遵循以下逻辑:工作目录、~/.config 目录或 ~/.scriptkeys 目录中名为 config.tomlscriptkeys.toml 的文件名。

示例配置

device = 'XK68JS'

[[mappings]]
key = 0
script = 'Script1.lua'

[[mappings]]
key = 1
script = 'Script2.lua'

编写脚本

脚本存储在 ./.scripts 目录(其中 ./ 是二进制的工作目录)或 ~/.scriptkeys/scripts/ 目录中。

Lua 脚本直接且应遵循以下结构

Test = Test or {}

function Test.Press()
    print("Hello from the Press Key Method in Lua.")
end

function Test.Release()
    print("Hello from the Release Key Method in Lua.")
end

确保脚本的文件名与 Lua 表的名称相同。在这种情况下,Lua 表名为 Test,因此 Lua 文件需要命名为 Test.lua。Lua 表和 Lua 文件的名称可以是任意的,但它们必须匹配。

可用的辅助函数

在 Lua 上下文中,有辅助函数用于模拟键盘按键。以下是一份这些函数的列表。

  • keyClick("<字符>")
  • keyPress("<字符>")
  • keyRelease("<字符>")
  • rawKeyClick(<u16>)
  • rawKeyPress(<u16>)
  • rawKeyRelease(<u16>)

示例

Test = Test or {}

function Test.Press()
    keyClick("H")
    keyClick("e")
    keyClick("l")
    keyClick("l")
    keyClick("o")
    keyClick("Space")
    keyClick("W")
    keyClick("o")
    keyClick("r")
    keyClick("l")
    keyClick("d")
    keyClick("!")
end

function Test.Release()
end

映射的完整列表可以在 map_str_to_key 辅助函数中找到

支持的设备

  • XKeys 68 JS

依赖项

~6–36MB
~542K SLoC