本文为《PVE安装Kodi》系列文章的一部分。
说明
kodi-send
命令是Kodi自带命令行工具,可以安全的操控Kodi,除了下文使用的Quit
指令,还有很多指令可以使用,方便想要自动化操作的人来使用,具体可用的指令见:Action_IDs 及 List_of_built-in_functions 。
安装
请先按照 PVE 直接安装最新版 Kodi 教程添加好deb-multimedia
软件源。
kodi-send
命令需要安装kodi-eventclients-common
(如果未启用deb-multimedia
源,则需要安装debian官方源中的kodi-eventclients-kodi-send
):
1
|
apt install kodi-eventclients-common
|
如果是从backports源中安装的Kodi,那么也要从backports源中安装kodi-eventclients-common(假如是PVE 7,对应debian的bullseys版本):
1
|
apt install -t bullseye-backports kodi-eventclients-common
|
设置
如需要使用kodi-send
命令,需要在“Kodi设置->服务->控制”处勾选“允许通过本机应用远程控制”。
使用
输入kodi-send --help
即可查看。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Usage
kodi-send [OPTION] --action=ACTION
kodi-send [OPTION] --button=BUTTON
Example
kodi-send --host=192.168.0.1 --port=9777 --action="Quit"
Options
-?, --help Will bring up this message
--host=HOST Choose what HOST to connect to (default=localhost)
--port=PORT Choose what PORT to connect to (default=9777)
--keymap=KEYMAP Choose which KEYMAP to use for key presses (default=KB)
--button=BUTTON Sends a key press event to Kodi, this option can be added multiple times to create a macro
-a ACTION, --action=ACTION Sends an action to XBMC, this option can be added multiple times to create a macro
-d T, --delay=T Waits for T ms, this option can be added multiple times to create a macro
|
如需对本机安装的Kodi执行退出,如果Kodi是默认的状态,直接输入以下命令即可(-a
/--action
二者都可以,带不带=
都行):
1
2
|
kodi-send -a "Quit"
kodi-send --action="Quit"
|
或者只是调出退出菜单,而不是直接退出(如果遥控器的电源键没有被evsieve劫持的话,电源键在Kodi中倒是原本就是调出退出菜单,不过被evsieve劫持之后就得就这种方式曲线还原了):
1
2
3
4
5
6
7
8
9
10
11
|
# 直接调出退出菜单,只能调出,无法切出
kodi-send -a "ActivateWindow(shutdownmenu)"
# 用命令模拟按下sleep/power按键,以下两个命令作用同上,只能调出,无法切出
kodi-send --button="sleep"
kodi-send --button="power"
# 用命令模拟按下键盘的s键,键盘的s键作用也是调出退出菜单
# 相比上面的几个命令,当退出菜单已经调出时再次运行本命令可以切出退出菜单
# 而若是Kodi正处于输入文字的界面时,此命令只会真的打出“s”,调不出退出菜单
kodi-send --button="s"
|
注:以上命令均在Kodi的keymaps未作任何调整的情况下运行的。其他指令请见:Action_IDs 及 List_of_built-in_functions,全部按键见:Keyboard_controls 。
其他应用场景
针对《PVE 直接安装最新版 Kodi》中的/etc/systemd/system/kodi.service
服务,可以修改ExecStop
这一行为:
1
|
ExecStop = /usr/bin/kodi-send --action="Quit"
|
针对《像使用盒子/LibreELEC一样使用PVE直装的Kodi,实现遥控器启停》一文中的/usr/local/bin/kodi-power.sh
脚本,可以修改systemctl stop kodi.service
(就是原本的关闭Kodi的指令)这一行为下面任何一句命令,这样也算是在电源键被evsieve劫持之后曲线还原了。
1
2
3
4
5
6
7
8
9
|
# 直接退出
kodi-send --action="Quit"
# 或者只是调出退出菜单,而不是直接退出(根据上一节的说明选其一即可)
kodi-send -a "ActivateWindow(shutdownmenu)"
kodi-send --action="ActivateWindow(shutdownmenu)"
kodi-send --button="sleep"
kodi-send --button="power"
kodi-send --button="s"
|