2 个不稳定版本

0.2.0 2022年12月6日
0.1.0 2022年10月1日

#23 in #alsa

ISC 许可证

11KB
153 代码行

smhkd License

smhkd (Simple MIDI hotkontrol daemon) 是一个通过执行命令来响应 MIDI 事件的守护进程。

它受到 sxhkd 的启发,但它处理的是 ALSA MIDI 事件而不是 X 事件。

当前状态

smhkd 仍然处于设计阶段,尚未准备好主流使用。

目前,并且目前只有它读取 ~/.config/smhkd/smhkdrc.json 中的配置文件,其外观如下

{
    "28:0": {
        "0": "pactl set-sink-volume @DEFAULT_SINK@ $VALUE%",
        "32": "pactl set-sink-volume @DEFAULT_SINK@ 100%",
        "48": "pactl set-sink-volume @DEFAULT_SINK@ 30%",
        "64": "pactl set-sink-volume @DEFAULT_SINK@ 0%"
    },
    "129:0": {
        "1": "pactl set-sink-volume @DEFAULT_SINK@ $VALUE%",
        "67": "pactl set-sink-volume @DEFAULT_SINK@ 100%",
        "66": "pactl set-sink-volume @DEFAULT_SINK@ 30%",
        "64": "pactl set-sink-volume @DEFAULT_SINK@ 0%"
    }
}

并且监听每个客户端和端口的每一对(28:0129:0 等)以获取 MIDI 事件。

每次它收到一个事件时,它都会运行与控制器 ID 关联的命令(如果有的话)。在该命令中出现的 $VALUE 出现的次数将用事件的值替换。

请注意,此配置格式仅是临时的,最终将被替换为与 sxhkd 更相似的东西。没有计划提供与 JSON 的向后兼容性,甚至在发生这种情况时也没有迁移路径。

使用方法

Usage: smhkd list
       smhkd run
       smhkd -h | --help
       smhkd --version

Commands:
    list                     List available MIDI controllers.
    run                      Listen to MIDI events and run commands.

Arguments:

Options:
    -h, --help               Show this screen.
    --version                Show version.

编译

在你的工作副本中运行 cargo build --release

贡献和报告错误

通过 GitHub pull requests 接受贡献。

请在 GitHub issues 上报告错误和功能请求。

许可证

smhkd 版权所有 (C) 2022 Jérémie Roquet [email protected],并许可在 ISC 许可证下。

依赖关系

~6–8.5MB
~159K SLoC