Simple Orca Plugin System
Simple Orca Plugin System (SOPS) を使うことで Orca スクリーンリーダーの機能を拡張することができます。あらゆるプログラミング言語で簡単にプラグインを追加することが可能です。プラグインの設定はファイル名によって制御されます。
目次
インストール
AUR から simpleorcapluginsystemAUR または 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 は自動的に再起動されます。
プラグイン
ファイル名の構造
プラグインのショートカットやタイプ、設定はファイル名で制御されます。ファイル名の記述部は __-__
によって設定部と分ける必要があります。コマンドや修飾キーは __+__
で区切ります。
<description>__-__[<command>__+__command...][__+__<modifier>__+__<modifier>__+__key_<key>].ext
プラグインの実行
プラグインを実行する方法は2つあります:
- ショートカット (#修飾子/ショートカットを見てください)。
- プラグインがロードされたときに実行 (#コマンド/設定を見てください)。
何も設定されていない場合、プラグインはロードされません。
修飾子/ショートカット
修飾子を使って 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
は標準出力を無視します。UI が存在し標準出力を使わないプラグインの場合に有用です (サブプロセスプラグインのみ使えます)。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 が起動したときに実行。
プラグインのタイプ
基本的にプラグインには2種類のタイプがあります。
サブプロセスプラグイン
サブプロセスプラグインは単純なプラグインでありデフォルトのタイプです。標準出力や標準エラーに書き込みを行う、あらゆるアプリケーションやスクリプトで使えます。定義したショートカットが押されたときや exec
でプラグインが実行されると、Orca はプラグインを実行して、標準出力/標準エラーを読み込んで結果をユーザーに知らせます。
要件
- 実行権限
- ファイル名の中に
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-customizations.py
と似ています。詳しくは次のページを参照: https://wiki.gnome.org/Projects/Orca/FrequentlyAskedQuestions/CustomizingOrca
要件
- Python3 で書かれたコード
- ファイル拡張子が
.py
- ファイル名に
loadmodule
を使用 - ファイル名の中に
key_<key>
やexec
を定義する必要があります。
サンプル
プラグインがロードされている場合に "!" を "bang" と発音・表示するように Orca を設定:
replace_chnames__-__loadmodule__+__exec.py
#!/bin/python import orca.orca orca.chnames.chnames["!"] = "bang"
プラグインのホスト
プラグインをホストすることで、プラグインマネージャからプラグインをインストールできるようにすることもできます。プラグインをホストする方法は、次のファイルを見てください: /usr/share/SOPS/tools/hosting.txt
。
デフォルトのオンラインリソースは: https://stormdragon.tk/orca-plugins/index.php