跳转到主要内容

将CEC事件映射到任意键绑定,以便通过电视遥控器控制您的Raspberrypi桌面。

项目描述

将CEC事件映射到任意键绑定,以便通过电视遥控器控制您的Raspberrypi桌面。

安装

您可以将 cecmap 以用户或root身份安装

作为用户

pip3 install --user cecmap

同时,确保将 ~/.local/bin 添加到您的PATH中。

作为root

sudo pip3 install cecmap

为了在切换模式时看到通知,还需要安装通知守护进程。我推荐 xfce4-notifyd

sudo apt install xfce4-notifyd

我还推荐安装一个屏幕键盘,例如。

sudo apt install matchbox-keyboard

使用方法

启动

cecmap

# or:

python -m cecmap

作为服务运行

启用启动时运行

systemctl --user enable cecmap

作为服务启动

systemctl --user start cecmap

默认键绑定

cecmap 默认配置了 键盘鼠标 模式以供您开始(见 cecmap/config/default.cfg)。您可以使用配置格式自由更改这些键绑定,并添加或覆盖模式,请参阅 配置。默认键绑定如下

鼠标 模式

键盘 模式

🔵 F1蓝色

切换模式

切换模式

🔴 F2红色

启动 matchbox-keyboard

<Win>

🟢 F3 绿色

鼠标滚轮向上

启动 kodi

🟡 F4 黄色

鼠标滚轮向下

启动 chromium-browser

🡅 向上

移动光标向上

<up>

🡇 向下

移动光标向下

<down>

🡄 向左

移动光标向左

<left>

🡆 向右

移动光标向右

<right>

🆗 选择

左键点击

<enter>

▶ 播放

中间键点击

<media_play_pause>

⏸ 暂停

右键点击

<media_play_pause>

⮨ 退出

<esc>

<esc>

配置

cecmap 使用简单的配置格式来设置键码和键绑定。要使用的配置可以在命令行中使用 -c FILE.cfg 选项指定。格式如下

[keycode]
KEY = <NUMBER>
...

[mode.NAME]
KEY = <command> [<args>...]
...

例如:

[keycode]
left = 123
yellow = 321
...

[mode.Keyboard]
left = key left
yellow = launch kodi
...

对于更实际的示例,请参阅 cecmap/config/default.cfg

如果有多个 模式 被定义,请确保定义一个执行 switch 命令的键绑定。这最容易在特殊部分 [mode.*] 中完成,该部分可以用于定义全局应用于所有模式的回退绑定。 cecmap 将在最高声明的模式中启动,并按照其出现的顺序循环遍历模式。

可以传递多个配置文件。在这种情况下,配置将按顺序合并,后一个文件覆盖先前的文件。这可以用于例如从不同的文件加载键码和键绑定。

cecmap \
    -c keycodes.cfg \
    -c mousemode.cfg \
    -c keymode.cfg

如果在命令行上未传递 -c CONFIG 选项,cecmap 将检查用户和系统,或默认配置,并使用第一个存在的配置。

  • $XDG_CONFIG_HOME/cecmap.cfg(默认为 ~/.config/cecmap.cfg

  • /etc/cecmap.cfg

  • cecmap/config/default.cfg(随包分发)

命令

目前,以下命令作为键绑定的右侧受支持

命令

launch <command> [<args>...]

启动给定的程序。您可以使用类似于shell的引号来传递包含空格的参数。

toggle <command> [<args>...]

使用命令行选项启动给定的程序。如果我们之前已启动程序,则终止它。对于如 matchbox-keyboard 之类的命令非常有用。

key <name>|<keycode>|@<letter>

输入指定的键。有关键名称列表,请参阅 Key

button left|middle|right|<number>

使用指定的按钮执行鼠标点击。更多按钮名称可用,请参阅 Button

scroll up|down|left|right [<ticks>]

在指定方向上滚动鼠标滚轮指定数量的滚动刻度(默认 = 1)。

motion up|down|left|right

在按住键的同时,在给定方向上执行鼠标光标移动。

switch [<mode>]

切换到指定的 <mode>,或者如果省略此可选参数,则按照配置文件中出现的顺序循环遍历模式。

键码

如果默认键码按预期不起作用,您可以配置特定于您设置的键码。为了确定哪个键对应哪个键码,请打开终端并执行

cec-client

按按钮时,请监视输出,并记录配置文件中的键码。

重新加载

cecmap 可以通过发送 SIGUSR1 来指示重新加载配置,例如

pkill -USR1 cecmap

或者,如果作为服务启动

systemctl --user reload cecmap

变更

v1.0.0

日期:2021年11月28日

  • 重命名为 cecmap

  • 切换 F1(蓝色)和 F4(黄色)的默认快捷键

  • 添加所有由 CEC 定义的用户控制码的键码

v0.0.5

日期:2021年11月27日

  • 修复:如果在使用 picec 之前已经按下了动作绑定的键然后释放,将修复 KeyError

  • 将/减少通知超时时间到 3 秒

  • 将代码移动到 picec.cli 子模块

  • 移除加载 .py 配置文件的能力

  • 添加加载 .cfg 配置文件的能力

  • 添加使用 SIGUSR1 在线重新加载配置的能力

  • 添加合并多个 .cfg 文件配置的能力

  • 记录配置格式

v0.0.4

日期:2021年11月26日

  • 修复:TypeError: __init__() 缺少 1 个必需的位置参数:'app_name'

  • 修复:AttributeError: 'dict' 对象没有属性 'setup'

  • 修复:AttributeError: 模块 'os' 没有属性 'setpgrgp'

v0.0.3

日期:2021年11月25日

  • 在新进程组中启动子进程(以避免我们在停止时与它们一起卸载)

  • 通过 .service 文件中的 bash -l 执行以确保可用的 PATH 自定义设置。这可能会修复在自动启动服务时出现的错误,并且对于本地安装的应用程序的启动将很有用。

  • 将代码移动到包结构

  • 使用入口点创建可执行文件

  • 将可执行文件重命名为 picec

  • 添加命令行选项以更改配置(迄今为止尚未记录,API 将会更改!)

  • 如果存在,则从 ~/.config/picec/config.py 加载配置

  • 简化配置

  • matchbox-keyboard 绑定到鼠标模式的红色按钮

  • 添加使用 notify2 关于模式更改的通知

v0.0.2

日期:2021年11月22日

  • pynput 替换 xdotool

  • 使 .service 在失败时重启

v0.0.1

日期:2021年11月22日

初始原型

  • 硬编码快捷键

  • 适用于带有魔法遥控器的 LG 电视

  • “鼠标”和“键盘”模式,用于控制鼠标或光标键

  • 基于 xdotool

  • 包括示例 .service 文件

项目详情


下载文件

下载适合您的平台文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分布

cecmap-1.0.0.tar.gz (14.5 kB 查看散列)

上传时间

构建分布

cecmap-1.0.0-py3-none-any.whl (13.8 kB 查看散列)

上传时间 Python 3

由以下支持