BlinkGTK は何に使えるか

バージョン: 1.2.0-build2 / 言語: 日本語 | English

BlinkGTK は「画面を Web 技術で作る」ための部品です。HTML・CSS・JavaScript で
書いた画面を、Linux アプリケーションの中に埋め込んで動かします。

公開しているスクリーンショットが電子書籍リーダーなので日本語の本を読むための
ライブラリに見えるかもしれませんが、それは用途のひとつです。この文書では、
どういう性質があるから、どういう用途に向くのかを、実際にある機能から説明します。


用途を問わず効く 4 つの性質

用途の話に入る前に、共通して効く部分をまとめます。市場ごとの説明より、
この 4 つのほうが「自分の用途に合うか」の判断には使えるはずです。

1. ネットワークにつながっていなくても動く

blink_web_view_register_custom_scheme()独自の URL スキームを登録できます。
myapp://screen/main のような URL を受け取ったら、アプリ側の関数が本文を返す —
という形で、端末の中にあるコンテンツをそのまま配信できます。

Web サーバーを立てる必要も、外部に出ていく必要もありません。閉じたネットワークの
端末、電波の届かない場所で動く機器、通信を許されない環境で効きます。

2. 利用者にできることを絞れる

blink_web_view_set_content_policy() で、画面に対する操作を個別に禁止できます。

定数 禁止する操作
BLINK_CONTENT_POLICY_NO_COPY クリップボードへのコピー
BLINK_CONTENT_POLICY_NO_SAVE ページの保存
BLINK_CONTENT_POLICY_NO_PRINT 印刷
BLINK_CONTENT_POLICY_NO_CONTEXT_MENU 右クリックメニュー
BLINK_CONTENT_POLICY_NO_DEVTOOLS 開発者ツール
BLINK_CONTENT_POLICY_NO_SELECTION 文字の選択
BLINK_CONTENT_POLICY_NO_SCREENSHOT 画面の取得
BLINK_CONTENT_POLICY_NO_DRAG ドラッグによる持ち出し

まとめて指定する BLINK_CONTENT_POLICY_KIOSK も用意しています。
不特定多数が触る端末で「Web ブラウザとしての機能」が露出してしまう問題への答えです。

blink_web_view_set_javascript_dialog_handler() を使えば、ページが出す
alert()confirm()アプリ側で受け取って差し替えることもできます。
無人運用の端末で、消せないダイアログが出て止まる事態を避けられます。

3. 画面を占有できる / 見る距離に合わせられる

blink_web_view_set_fullscreen_handler()blink_web_view_is_fullscreen()
全画面表示を制御できます。blink_web_view_set_zoom_level() は表示倍率を変えるので、
離れて見る画面と、手元で操作する画面で同じコンテンツを使い回すことができます。

4. 好きな言語から使える

C の API を GObject として公開しており、GObject Introspection の型情報
(.gir / .typelib) を配布物に同梱しています。Python (PyGObject)、Rust、
C++、JavaScript (GJS)、Vala、Go
などから、追加のバインディングを書かずに
同じ API を呼べます。既存のチームが使っている言語に合わせられます。


用途別に見る

案内表示・サイネージ・券売機

不特定多数が触る端末では、画面が意図した状態から動かないことが要件になります。
BLINK_CONTENT_POLICY_KIOSK で操作を閉じ、全画面で占有し、
独自スキームで端末内のコンテンツを出す — という組み合わせがそのまま当てはまります。

表示物を HTML で作れることは、更新のしやすさにも効きます。掲示内容の差し替えが
アプリの作り直しではなく、コンテンツの入れ替えで済みます。

車載 (インフォテインメント・カーナビ)

車載の画面は通信が切れても動き続ける必要があります。独自スキームで端末内から
配信する形なら、圏外でも表示は成立します。表示倍率の制御は、走行中の視認性
(遠い距離から読む) と停車中の操作 (近い距離で触る) の切り替えに使えます。

GPU 描画とソフトウェア描画の両方を持っているので、GPU の構成が限られる車載向け
SoC でも動かす余地があります。ただし実機での確認は必須です — 描画経路は
ハードウェアと compositor の組み合わせに依存します。

IoT / WoT の操作画面

機器の操作パネルを HTML で作れると、同じ画面を機器上と手元のブラウザの両方で
使える
ようになります。BlinkGTK は機器側の表示を担当します。

JavaScript から C 側の関数を呼ぶ経路 (blink_web_view_execute_javascript()
スクリプト注入) があるので、Web の画面とハードウェア制御をつなげられます。

医療・計測機器

はじめにお断りしておくと、医療機器としての適合性を BlinkGTK が保証することは
できません
。規制対応は機器を作る側の責任範囲です。ここでは、そうした機器でよく
求められる要件に対してどの機能が応えられるかだけを書きます。

よくある要件 対応する機能
外部ネットワークに出さない 独自スキームで端末内配信
操作を限定する (誤操作防止) コンテンツポリシーで個別に禁止
表示内容を記録する blink_web_view_capture_screenshot()
表示の再現性 版数を実行時に取得して記録できる

計測データの可視化や研究機器の GUI のように、規制の対象外で「グラフや表を
きれいに出したい」という用途であれば、素直に使える領域です。

電子出版・日本語組版

現在いちばん実績のある領域です。縦組み、ルビ、圏点、縦中横、禁則処理といった
日本語組版の要素を Chromium のレンダリングエンジンがそのまま扱います。

どこまでできて何がまだかは、Chromium 147 → 151 の新機能
に版ごとの実測付きでまとめています。たとえば Chromium 151 では、
圏点を付けても行送りが太らなくなりました(行間に余裕がある場合)。


はじめて世に出したとき

BlinkGTK が最初に公開されたのは Interop Tokyo 2026 (幕張メッセ) です。


あなたの用途を教えてください

上に書いたのは「こういう機能があるから、こういう用途に向くはず」という説明であって、
実際の採用事例ではありません。BlinkGTK で何か作られた方がいらっしゃれば、
掲載募集の窓口
までスクリーンショットをお寄せください。ここに載せるべきは、私たちの想像ではなく
実際に動いているものだと考えています。


関連する文書