Simple Orca 插件系统
通过 Simple Orca 插件系统 (SOPS),您可以扩展 Orca 屏幕阅读器的功能 (orca)。它提供了以简单方式添加几乎任何编程语言的插件的可能性。插件的设置通过文件名控制。
安装
安装 软件包 simpleorcapluginsystem-gitAUR。
要为当前用户设置插件系统,请运行
$ /usr/share/SOPS/install-for-current-user.sh
管理
基础知识
- 安装路径。 此路径包含默认插件、文档、插件加载器和管理工具
/usr/share/SOPS/
- 用户插件的路径是
~/.config/SOPS/plugins-available/
- 以下路径用于所有已启用(激活)的插件。如果插件有效,则将加载该文件夹中的所有插件
~/.config/SOPS/plugins-enabled/
管理工具
这些工具位于安装目录下的 “tools” 文件夹中。以下命令启用/激活插件,但您必须重命名文件名以创建快捷方式并将命令传递给插件
$ ./ensop <pluginname>
禁用和卸载插件的命令是
$ ./dissop <pluginname>
这两个命令基本上只是在 ~./.config/SOPSP/plugins-enabled
中创建或删除链接,并使插件可执行。您必须手动配置插件。重启 Orca 以在更改后重新加载插件。SOPS 还提供插件管理器,安装后即可使用。要在 Orca 运行时打开插件管理器,请使用 orca+ctrl+p
。它可用于激活、停用、安装或配置插件。关闭插件管理器后,Orca 会自动重启。
插件
/usr/share/SOPS/examples
中找到一些完全预定义的示例插件。文件名结构
插件的快捷方式、插件类型和偏好设置由其文件名控制。文件名的描述性部分必须用 __-__
与偏好设置部分分隔。命令、修饰符和键必须用 __+__
分隔。
<description>__-__[<command>__+__command...][__+__<modifier>__+__<modifier>__+__key_<key>].ext
运行插件
有两种不同的方法来运行插件
如果两者都不存在,则插件不会加载。还有一些其他的 #命令/偏好设置 用于控制插件的行为。
修饰符/快捷键
使用修饰符,您可以为 key
设置不同的快捷键组合。您始终必须按下 Orca 修饰键。三个修饰键的顺序无关紧要
control
是键盘上ctrl
键的修饰符shift
是键盘上shift
键的修饰符alt
是键盘上alt
键的修饰符key_<key>
定义用于插件的基本快捷键,可以与定义的修饰符一起使用(example_plugin__-__key_d.sh 使用orca+d
)。
有效的快捷键
只有少数修饰符组合有效。这些是由 Orca 预定义的。有效的组合是
alt
例如description__-__alt__+__key_y.sh
control
例如description__-__control__+__key_b.sh
shift
例如description__-__shift__+__key_c.sh
control + alt
例如description__-__control__+__alt__+__key_w.py
shift + alt
例如description__-__shift__+__alt__+__key_y.sh
作为 key_<key>
,您可以使用每个字母数字键。
命令/偏好设置
插件的偏好设置称为命令。命令定义要传递给插件的操作。您可以添加多个命令。命令的顺序无关紧要。您可以在大多数类型的插件中使用它们。
startnotify
在插件执行之前宣布 “start <description>”。这对于具有较长进度时间的插件作为反馈很有用。(所有插件)stopnotify
宣布 “finish <description>”。这对于没有输出的插件作为反馈很有用。(所有插件)blockcall
不在线程中启动插件。请小心,因为这会锁定 Orca,直到插件完成。默认情况下,插件各自在专用线程中运行。(所有插件)error
宣布返回的错误。(所有插件)supressoutput
忽略 STDOUT 的输出。这对于可能具有 UI 并且不将输出传递到 STDOUT 的插件很有用。(仅限子进程插件)parameters_<parameter1> [parameter2] [parameter3]...
将参数传递给插件。(仅限子进程插件)exec
在加载插件时运行一次插件。主要用作高级插件。(所有插件)loadmodule
不作为子进程插件加载,而是作为高级插件加载。(仅限高级插件)
示例
Plugin name__-__startnotify__+__control__+__alt__+__key_n.sh
使用orca+ctrl+alt+n
运行并宣布进程的开始。PluginName__-__error__+__stopnotify__+__shift__+__key_y.py
使用orca+shift+m
运行并宣布完成。 还会读取发生的错误。Plugin_Name__-__key_m.py
使用orca+m
运行Plugin_Name__-__exec.py
在启动 Orca 时运行一次。
插件类型
基本上有两种不同类型的插件。
子进程插件
子进程插件是简单的插件,也是默认类型。它们可以是任何类型的应用程序或脚本,用于写入 STDOUT 或 STDERR。当按下定义的快捷键或在启动屏幕阅读器时通过 exec
执行插件时,Orca 执行插件,从 STDOUT/STDERR 读取并将结果告知用户。
要求
- 执行权限
key_<key>
或exec
必须在文件名中定义。
示例
按下 orca+y
时说 “Hello World”:文件名:Hello_world__-__key_y.sh
#!/bin/sh echo "Hello World"
高级插件
这些类型的插件使用 spec.loader.exec_module 加载。您可以使用文件名中的 loadmodule
加载它们。它们在 Orca 启动后立即完全包含在 Orca 中。高级插件功能更强大,因为您可以在 Orca 上下文中工作。它们大多类似于 orca-customizations.py
。
要求
- 用 python3 编写的正确代码
- 文件扩展名
.py
- 在文件名中使用
loadmodule
key_<key>
或exec
必须在文件名中定义
示例
配置 Orca 在加载插件时说 “bang” 而不是 “!”。文件名:replace_chnames__-__loadmodule__+__exec.py
import orca.orca orca.chnames.chnames["!"] = "bang"
插件托管
您还可以托管插件,使其可以通过插件管理器进行安装。如果您想托管插件,请阅读:/usr/share/SOPS/tools/hosting.txt
默认在线资源是:https://stormdragon.tk/orca-plugins/index.php[失效链接 2023-09-16 ⓘ]