Rabbit Qt
Rabbit QtはRubyistのためのプレゼンテーションツール Rabbit のQt6移植版です。
オリジナルのRabbitはGTK3/GTK4(Ruby-GNOME)をGUIバックエンドとして使用していますが、本バージョンでは ruby-qt6 を使用してQt6に置き換えています。スライドのパース、テーマ、描画エンジン(Cairo/Pango)はオリジナルと同一です。
特徴
- RD、Markdown、Wiki形式のスライドソースに対応
- Rubyでスライドスタイルをカスタマイズ可能
- Emacs/Viスタイルのキーバインド
- フルスクリーンプレゼンテーション
- スライド内検索、落書きモード、スポットライト、虫眼鏡
- 画像/PDF出力
必要環境
- Ruby >= 2.4.0
- Qt6 (QtWidgets)
- Cairo, Pango, GdkPixbuf2, RSVG2, Poppler
macOS (Nix)
Nix + nix-darwin で管理する場合、devShell の buildInputs に以下が必要です:
buildInputs = with pkgs; [
cairo pango gdk-pixbuf glib gobject-introspection librsvg poppler
# .pc Requires.private の推移的依存(Ruby pkg-config gem 用)
freetype fontconfig libpng pixman zlib harfbuzz expat pcre2
libffi fribidi libthai libdatrie libsysprof-capture
# cairo.pc X11 依存(ビルド時のみ)
libX11 libXext libXrender libxcb libXdmcp libXau xorgproto
# Qt6
qt6.qtbase
];macOS の Nix Qt6 はフレームワーク形式のため、ruby-qt6 の native extension ビルドにはシンボリックリンクが必要です:
qt6Compat = pkgs.runCommand "qt6-compat" {} ''
mkdir -p $out/lib $out/include
for fw in ${pkgs.qt6.qtbase.out}/lib/Qt*.framework; do
name=$(basename "$fw" .framework)
ln -s "$fw/$name" "$out/lib/lib''${name/Qt/Qt6}.dylib"
ln -s "$fw/Headers" "$out/include/$name"
done
'';環境変数:
QT_INSTALL_HEADERS = "${qt6Compat}/include";
QT_INSTALL_LIBS = "${qt6Compat}/lib";
LDFLAGS = "-F${pkgs.qt6.qtbase.out}/lib";macOS (Homebrew)
brew install qt@6 cairo pango gdk-pixbuf librsvg popplerUbuntu / Debian
sudo apt install qt6-base-dev libcairo2-dev libpango1.0-dev libgdk-pixbuf-2.0-dev librsvg2-dev libpoppler-glib-devインストール
git clone https://github.com/masak1yu/rabbit-qt.git
cd rabbit-qt
bundle install使い方
# サンプルプレゼンテーションを表示
bundle exec ruby bin/rabbit sample/rabbit.rd
# Markdownスライドを表示
bundle exec ruby bin/rabbit your-slide.md
# 画像として保存
bundle exec ruby bin/rabbit --save-as-image sample/rabbit.rd
# フルスクリーンで起動
bundle exec ruby bin/rabbit --full-screen sample/rabbit.rdキーバインド
| キー | 動作 |
|---|---|
| n / Space / Enter / → / ↓ | 次のスライド |
| p / Backspace / ← / ↑ | 前のスライド |
| Home | 最初のスライド |
| End | 最後のスライド |
| F5 / F10 / F11 | フルスクリーン切り替え |
| / | スライド検索 |
| Shift+g | 落書きモード |
| Shift+i | 情報ウィンドウ |
| Escape / q | 終了 |
オリジナルとの違い
- GUIバックエンド: GTK3/GTK4 → Qt6 (ruby-qt6)
- アクションシステム: Gio::SimpleAction → Pure Ruby
- ターミナル埋め込み: 非対応(VTE相当なし)
- テキスト描画: Pango+Cairo → Cairo::ImageSurface経由でQImageに変換
ライセンス
本ソフトウェアは GNU General Public License v2 またはそれ以降のバージョン (GPLv2+) の下で配布されます。詳細は GPL ファイルを参照してください。
- オリジナル Rabbit: Copyright (C) 2004-2025 Sutou Kouhei, GPLv2+
- Qt: LGPL v3 / GPL v2+ のデュアルライセンス
- ruby-qt6: MIT License
本プロジェクトはGPLv2+を採用しており、QtのGPLv2+ライセンスオプションおよびオリジナルRabbitのライセンスと互換性があります。