LibreOffice Impress の「発表者ツール」画面上でマウスを動かすとセカンダリディスプレイ(観客の見ているスライド画面)に赤いレーザーポインター風のモノをオーバーレイ表示する Python スクリプトです。 あっ、基本 Ubuntu の話ですよ。
- 発表者ツールが起動している状態で、実行するとレーザーポインターが表示される。
- 発表者ツール上の「黒くないところ(スライド領域)」だけをざっくりトラッキング対象として扱い、セカンダリディスプレイ上に同期表示する。
- ディスプレイ配置が「セカンダリディスプレイが右側扱い」であることを前提としてます。
- PyQt5 を使って、セカンダリディスプレイに背景透過/全画面のオーバーレイウィンドウを作っています
- Python 3.7+
- PyQt5(
pip install PyQt5)
-
このリポジトリをcloneまたはダウンロード
-
laser_pointer_overlay.pyを実行:python3 laser_pointer_overlay.py
-
LibreOffice Impress で発表者ツールを起動
-
発表者ツール内の白いスライド領域でマウスを動かすと、セカンダリディスプレイに赤いポインタが表示される。
-
終了は、ターミナルから殺すしかないのだが、↓
- laser-toggle.sh のようなスクリプトを書いて実行すると laser_pointer_overlay.py スクリプトを呼び出せます。で、もう一度 sh スクリプトを走らせるとプロセスを殺す。
- これを GNOME のカスタムショートカットなどに割り当てましょう。発表者ツール表示時にショートカットキーを押すごとにトグル的に動作するようになるよ。
- スクリプトを終了せずにスライドショーを閉じるとレーザーポインターが残っちゃうよ。そこは自分で何とかしてくれ。
.
├── laser_pointer_overlay.py # メインスクリプト
├── laser-toggle.sh # おまけのシェルスクリプト
├── LICENSE # MITライセンス + PyQt5注意書き付き
└── README.md # このファイル
- ディスプレイ構成は自分の環境に合わせて手直ししてください。当然、使用モニタを変更した場合は、座標マッピングもずれる可能性があります。
- スライド領域の位置は固定のハードコード(例:x=50, y=230)にしたので、必要に応じて調整してください。
- HiDPI環境では描画座標に補正が必要な場合があるかも。
- とりあえずY軸だけ位置を微調整できるようにしています(
Y_OFFSET_CORRECTION)が、効かないかもしれないのでご注意。
MIT License(詳細は LICENSE ファイル参照)
PyQt5 の使用により、再配布時は GPL v3 に準拠する必要があります。