BlinkGTK 環境変数リファレンス

作成者: BlinkGTK Project
最終更新: 2026-10-27 (BlinkGTK 1.2.5-build5 / Chromium 156.0.8078.79)

API リファレンスマニュアルの第 9 章 (環境変数) にあたる文書です。BlinkGTK が読む環境変数は、すべてこの一覧に載せています。ここに無い名前は BlinkGTK では使われません。

環境変数は次の 3 つに分けています。BlinkGTK を組み込むアプリが頼ってよいのは、1 つ目の「公開サポート」だけです。


1. 公開サポート環境変数

変数 値 既定 説明
BLINKGTK_GPU_MODE software / egl / swiftshader software 描画モードの選択。software が推奨・既定。egl は GPU 経路(実験的)、swiftshader は software 相当
BLINKGTK_HEADLESS 1 未設定 headless 動作(実ディスプレイなし・CI 向け)。--headless 付与を制御
BLINKGTK_NO_SANDBOX 1 / 0 未設定 1 = 無条件で無効化。0 = 無条件で有効のまま。未設定 = 自動判定 — /proc/sys/user/max_user_namespaces を読み、0 か読めなければ無効化されます。有効になったかは blink_gtk_is_sandboxed() で問い合わせられます
BLINKGTK_EXTRA_SCHEMES カンマ区切り scheme 名 未設定 独自の URL スキーム (例: ebook) を、https などと同じ扱いの標準スキームとして登録します。独自スキームの読み込み処理 (custom scheme loader) と組み合わせて使います
BLINKGTK_SCROLL_SPEED — — 廃止。設定しても何も変わりません。スクロール量は固定の係数で決まります (2026-09-15 実測)。該当コードは残っていますが、どの出荷物にも入っていません
BLINKGTK_DMABUF_PATH パス 未設定 egl モードの dmabuf デバイスパス指定
BLINKGTK_FRAME_PNG_DIR ディレクトリパス 未設定 フレーム PNG の保存先(検証用途。設定時のみ保存)
BLINKGTK_FRAME_PNG_MAX 整数 0 診断用フレーム PNG の保存枚数。既定 0 = 保存しない。診断が要るときだけ枚数を指定する
BLINKGTK_DISABLE_SITE_ISOLATION 1 未設定 サイトごとのプロセス分離を無効化します。保護を弱めます。 分離は、あるサイトのページが乗っ取られたときに別のサイトのデータを読ませないための境界です。無効にすると複数サイトの文書が同じプロセスに同居します。v1.2.0-build8 から既定で有効で、これは不具合が出たときの逃げ道です
BLINKGTK_PRESENT_POLICY warm / warm-force 未設定 見る人がいない窓に対して、画面へ出す仕事 (合成・キャプチャ・転送) を止めます。組版とラスタは止めないので先読みは保たれます。warm は窓が隠れている間だけ、warm-force は試験専用で常に止めます。復帰時は damage を待たず 1 回無条件でキャプチャするため、古いフレームは残りません。止めている間も、blink_web_view_capture_screenshot_async() などの撮影は成功し、その後も止めたままです (1.2.3-build2 以降。それより前は 2 秒で失敗していました)。1.2.4-build3 からは、software の撮影はほとんどの場合、要求した時点の画面を返し、画面へは出さずに終わることがあります
BLINKGTK_LOG_LEVEL 0 / 1 / 2 0 診断出力の量。0 すべて / 1 大幅に削減 / 2 ほぼ無音。ログが多いと感じたら上げてください
BLINKGTK_DIAG_VERBOSE 1 未設定 毎フレームの診断も出します (既定は抑止)
BLINKGTK_IM_MODULE gtk / GTK の入力モジュール id 未設定 v1.2.3 から。 入力メソッドの選び方。未設定 (または gtk) なら BlinkGTK は何も名指しせず、GTK に決めさせます (Wayland では text-input 経路)。その他の値 (ibus など) はその id を BlinkGTK のビューに名指しします。1.2.2 と同じ動作にするには ibus を指定します。 設定した値は blink_gtk_get_im_module() で問い合わせられます
GTK_IM_MODULE GTK の入力モジュール id — v1.2.3 以降、BLINKGTK_IM_MODULE が未設定なら BlinkGTK の WebView にも適用されます (GTK の通常の選び方に従うため)。BLINKGTK_IM_MODULE で id を名指しした場合は、GTK4 の gtk_im_multicontext_set_context_id() がこの変数より優先されるので、WebView にはこの変数が適用されません。1.2.2 までは BlinkGTK が常に ibus を名指しし、XMODIFIERS から判別してプロセス全体のこの変数を書き換えていました。1.2.3 からは書き換えません
BLINKGTK_A11Y 1 未設定 アクセシビリティを有効にします。 支援技術 (Orca 等) が Web ページの中身を読めるよう、ページの構造を AT-SPI に出します。既定では Chromium がページのアクセシビリティ情報を作らないため、出すものがありません。常時有効にすると全ページでその構築費用がかかるので、必要なときに開く形にしています。指定しなくても、支援技術 (Orca 等) が接続すると自動で開きます (1.2.2-build4 から。アプリの後から支援技術を起動した場合も含む)。1.2.4 からは at-spi2-core 2.61 以降 (Fedora 45 等) でも自動で開き、BLINKGTK_A11Y=1 で起動した後に支援技術を起動した場合も届きます。自動で開かない環境では 1 を指定してください。コマンドライン引数 --force-renderer-accessibility でも同じことができますが、起動経路に依存しない環境変数のほうが確実です
BLINKGTK_UPDATE_CHECK 1 未設定 (オフ) 1.2.4 から。 新しい版が出ていたら、ログに英語と日本語の 2 行 ([BlinkGTK update] A newer version is available: ... / [BlinkGTK update] 新しい版があります: ...) で知らせます。アプリ側から blink_gtk_set_update_check(TRUE) (blink_gtk_init() の前に呼ぶ) でもオンにできます。その場合も利用者が BLINKGTK_UPDATE_CHECK=0 を指定すれば止まります (利用者の指定が優先)。既定はオフ — BlinkGTK は他の製品に組み込まれるので、製品の利用者が知らないうちに外へ通信しないためです。1 のときだけ、起動の 5 秒後に 1 回、配布のリポジトリの版の一覧 (GitHub の API、api.github.com) を読みます。添付ファイルは取得しません。確かめるのは 1 日 1 回までで、結果は $XDG_CACHE_HOME/blinkgtk/update-check に置きます。Windows の版とは取り違えません。通信できないときは何も案内しません (起動は待たせません)
BLINKGTK_SUBPROCESS_PATH 実行ファイルのパス、または 0 未設定 (自動) 1.2.5 から。 Python (PyGObject)・GJS など、BlinkGTK を直接リンクしていないプログラムから使うと、BlinkGTK は子プロセス (zygote ほか) を、BlinkGTK と一緒にインストールされる blinkgtk-subprocess で起動します (RPM・DEB では /usr/libexec/blinkgtk-0.1/blinkgtk-subprocess)。サンドボックスは有効のままです。1.2.4 までは子プロセスに python3 などが起動され、Python からは起動できませんでした。場所を変えて配った場合はこの変数でパスを指定します。0 を指定すると子プロセスの実行ファイルを替えません (1.2.4 までの動き)。C のアプリは自分の実行ファイルが子プロセスを兼ねるので、指定は要りません
BLINKGTK_WIN_GPU_PATH vulkan 未設定 Windows 専用・試験段階 (BlinkGTK for Windows 1.2.4-build4 から)。 値 vulkan のとき、Chromium の GPU 合成の結果を CPU に読み戻さずに GTK の Vulkan のレンダラーへ渡します。サイトや Windows 版のお知らせで「GPU の経路 P4」と呼んでいるものです (指定する値は vulkan だけです)。既定は無効。Intel Iris Xe の 1 機種でのみ確認。 Linux では使われない
BLINKGTK_NO_AUTO_SHUTDOWN 1 未設定 (自動で片づける) Windows 専用 (BlinkGTK for Windows の 1.2.5-build1 の次の版から (未出荷))。 Windows では、blink_gtk_run_main_loop() が戻るときに BlinkGTK が blink_gtk_shutdown() を自動で呼び、窓を閉じたあと速やかにプロセスが終わります。1 を指定すると、この自動の片づけをしません。メインループが戻ったあとも BlinkGTK を使い続けるアプリ向けです。その場合は、アプリが終わる前に自分で blink_gtk_shutdown() を呼んでください。アプリが blink_gtk_shutdown() を自分で呼んでも、2 回目は何もしないので害はありません。Linux では使われない
BLINKGTK_FOLLOW_GTK_THEME 0 未設定 (GTK のテーマに合わせる) 1.2.5-build2 から。 頁の配色 (prefers-color-scheme・フォームの部品・スクロールバー) を GTK のテーマの明暗に合わせるのが既定です。アプリの実行中にテーマを切り替えると、頁も読み込み直さずに切り替わります。0 を指定すると合わせず、頁は 1.2.5-build1 までと同じく常に light になります。頁の HTML が dark に対応していないアプリで使います。なお、color-scheme を指定していない頁は、0 を指定しなくても地の色が白のままです
BLINKGTK_NETWORK_IN_PROCESS 1 未設定 (別のプロセス) 1.2.5-build2 から。 ネットワークの処理を、別のプロセスではなくアプリのプロセスの中で動かします。頁を開くたびにプロセスを 1 つ起動しなくなるので、頁の読み込みが早くなります。代わりに、ネットワークの処理が異常終了すると、アプリも一緒に終わります。既定では別のプロセスで動かし、異常終了はそのプロセスだけで済みます

2. エスケープハッチ(既定のまま推奨)

不具合が出て、下の修正が関係していそうなときに、その修正だけを止めて確かめるためのものです。止めて症状が消えた場合は、使っている版と症状を添えてお知らせください。

変数 効果(=0 等を設定した場合) 関連する修正
BLINKGTK_PUMP_LEGACY=1 メインループの回し方を、Wayland の接続を監視する方式 (fd-watcher pump) から以前の方式 (g_idle pump) に戻す(待機中の CPU の使用率が増えます) 1.1.0 の修正: 何も操作していない間も CPU を 1 コア近く使い続けていた問題
BLINKGTK_DEFER_ZYGOTE=0 起動のときに、子プロセスを作るための補助のプロセス (zygote) の準備ができるのを最初に待つ、以前の順序に戻す (起動が遅くなります) 1.2.5-build2 から。起動の短縮 (窓の表示と頁の読み込み完了が早くなる)
BLINKGTK_FAST_RENDER_NODE=0 起動のときに、GPU の装置 (/dev/dri のレンダーノード) が使えるかを Mesa を読み込んで確かめる、Chromium の元の手順に戻す (起動が遅くなります)。software の経路 (既定) のときだけ関係します 1.2.5-build2 から。起動の短縮 (頁の読み込み完了が早くなる)
BLINKGTK_VK_DRIVER_SELECT=0 起動のときに、読み込む Vulkan のドライバを、この機械に在る GPU のものに絞らないようにする (起動が遅くなります)。Vulkan のローダの環境変数 (VK_LOADER_DRIVERS_SELECT など) を自分で設定している場合は、BlinkGTK はそれを変えません 1.2.5-build2 から。起動の短縮 (窓が出るまでが早くなる)
BLINKGTK_PUMP_RESCUE=0 メインループを 100ms ごとに必ず起こす仕組み (起床の保証) を無効化 1.1.0 で、下の「白紙のまま固定される問題」の修正と一緒に入ったもの
BLINKGTK_QUEUE_DRAW_TIMER=1 1.2.4 から。16ms ごとの定期の描き直しを、それより前の版と同じく常に動かす。1.2.4 の既定では、静止した頁を描き直し続けないよう、BlinkWebView ではこの描き直しを動かさない (待機中の CPU の使用率が下がる)。=0 で常に止める 1.2.4 の変更: 静止した頁を 16ms ごとに描き直さない
BLINKGTK_T2_AUTO=0 1.2.4 から。拡大率 1 の画面で、ソフトウェアの描画の受け取りを T2 (撮影を使わず、合成の結果を共有メモリで受け取る経路) に自動で切り替えるのをやめ、それより前の版と同じ経路を使う。1.2.4 の既定では拡大率 1 のとき T2 を選び、小さな範囲だけが変わる頁で CPU の使用率が下がる。拡大率 1 以外の画面では T2 を使わず、移ったときも元の経路に戻す。BLINKGTK_USE_MOJO_IPC=0 でも同じ 1.2.4 の変更: 拡大率 1 の画面で T2 を既定にした
BLINKGTK_CAPTURE_DAMAGE_GATE=0 画面が変わっていないときに画面のコピー (キャプチャ) を省く仕組み (capture damage gate) を無効化 1.1.0 の修正: 待機中に CPU を使い続けていた問題
BLINKGTK_FORCE_SINGLE_THREADED=1 renderer を単一スレッド compositing に戻す(描画停止リスクあり)
BLINKGTK_120_INVAL_FALLBACK=0 描き直す範囲が空と計算されたときに補う仕組み (invalidation フォールバック) を無効化 1.1.0 の修正: 文字サイズを大きく変えた直後に、頁が白紙のまま固定される問題
BLINKGTK_EGL_AUTO_FALLBACK=0 GPU 経路が使えないときの software 自動退避を無効化(画面が白いままになります)
BLINKGTK_EGL_AUTO_FALLBACK_MS=<ms> 上記の待ち時間(既定 5000)。短くすると GPU 初期化の遅い機械で誤退避します
BLINKGTK_120_ACT_REDRAW=0 新しい描画結果を有効にしたとき、もう一度描き直させる仕組み (activation 再 damage) を無効化 1.1.0 の修正: 文字サイズを大きく変えた直後に、頁が白紙のまま固定される問題
BLINKGTK_120_CKB_REDRAW=0 まだ描かれていない部分 (checkerboard) が残ったときに描き直させる仕組みを無効化 1.1.0 の修正 (文字サイズを大きく変えた直後に、頁が白紙のまま固定される問題) に対する予備の対策
BLINKGTK_EGL_FRACTIONAL=1 egl モードの分数スケーリングを opt-in(実験的)。1.2.4 から、拡大率 1.25・1.5 の画面で頁が分数の拡大率 (devicePixelRatio 1.25・1.5) で描かれる。それより前の版 (1.2.0-build3〜1.2.3) では、エンジンが自動で付ける拡大率に整数へ切り上げられ、2 で描かれていた 1.1.0 から指定したときだけ有効。1.2.4 の修正で分数のまま描かれる
BLINKGTK_EGL_RESIZE_BRIDGE=0 egl resize ブリッジを無効化
BLINKGTK_RUBY_RESERVE_EM=0.5 段組みの列の切断幅から、ルビの張り出しぶん (0.5em) を差し引く、v1.2.0 までの動作に戻す。差し引くと列に入る量が減り、行がちょうど 1 本入らなくなることがある v1.2.1 の変更: 既定を 0 (差し引かない) にした
BLINKGTK_FRAME_COPY=1 1.2.3-build4 から。 software の描画で、画面へ渡す 1 枚ごとに画素をコピーする従来の動作に戻す (既定はコピーせずに渡す)。表示がおかしいときの切り分け用
BLINKGTK_EGL_FAKE_PRESENTATION=0 1.2.4 から。 egl モードで「画面に出た」の通知を送らない、以前の動作に戻す。戻すと、動く頁を表示し続けたときに renderer とブラウザのメモリが増え続けます (1.2.3 までの動作)。比べるとき用

3. 内部診断(サポート対象外)

以下は開発・調査用の内部変数です。一覧のみ掲載し、詳細仕様は公開しません。無保証・予告なく削除されます。

分野 変数
更新の案内の試験 BLINKGTK_UPDATE_CHECK_URL (確かめ先の差し替え。check-update-notice.sh の手元のサーバ用)
白紙のまま固定される問題の調査 BLINKGTK_120_CC_DIAG / BLINKGTK_120_DISP_DIAG / BLINKGTK_120_CLIP_DIAG / BLINKGTK_120_DIAG / BLINKGTK_120_PAINT_KICK / BLINKGTK_120_FI_ROW1 (fault injection・検証専用) / BLINKGTK_120_TYPEB_FIX
組版 BLINKGTK_VBREAK_P0 / BLINKGTK_TOC_P0 / BLINKGTK_LAYOUT_DEBUG
EGL 経路 BLINKGTK_EGL_DIAG / BLINKGTK_EGL_MANUAL_VIEWPORT / BLINKGTK_EGL_BRIDGE_SETTLE_MS / BLINKGTK_EGL_GTK4_NATIVE / BLINKGTK_EGL_RECIPIENT_ALWAYS (EGL の受け面を経路によらず常に作る試作)
出力層・合成 BLINKGTK_USE_K2C / BLINKGTK_USE_MOJO_IPC / BLINKGTK_USE_EGL_WIDGET / BLINKGTK_T2_DELIVER_EMPTY (陰性対照: T2 で renderer の最初のフレームを待たずに、描画結果を画面へ渡す) / BLINKGTK_T2_DAMAGE (試作・既定オフ: T2 で Viz が描き直した範囲を GTK に伝え、変わった範囲だけテクスチャを更新する) / BLINKGTK_T2_DAMAGE_TEST_SHRINK (陰性対照: 伝える範囲を 1 px 狭める) / BLINKGTK_T2_AUTO (0 で、拡大率 1 の画面で T2 を自動で選ぶのをやめる。1.2.4 から既定で有効) / BLINKGTK_TEST_PERMISSION_LOAD_DELAY_MS (試験用: 許可の保存の読み込みを遅らせる) / BLINKGTK_USE_NEW_OUTPUT_DEVICE / BLINKGTK_USE_FSVC / BLINKGTK_SW_SUBSURFACE / BLINKGTK_REENABLE_ENDPAINT_HOOK / BLINKGTK_AURA_SHOW_IMMEDIATE
経路のライブ切替 BLINKGTK_BLINKSHIFT_AUTOSWAP / BLINKGTK_BLINKSHIFT_EGL_RECREATE / BLINKGTK_BLINKSHIFT_NO_KICK
追跡・計測 BLINKGTK_GX_LOG (EGL の描画結果を画面へ渡す処理を、1 行 1 事象で出す診断ログ。BJGX <事象> t=<ms> buf=<wl_buffer の wire id> submit=<通番> 形式) / BLINKGTK_CAPTURE_TRACE / BLINKGTK_MOJO_TRACE / BLINKGTK_TRACE_PIXEL_SUPPLIER / BLINKGTK_HARNESS_AUDIT / BLINKGTK_MINORI / BLINKGTK_PROFILE_DIR / BLINKGTK_RESIZE_FIT
検証専用 BLINKGTK_DELIVER_LOG_MAX (EGL の描画結果を画面へ渡す処理のログの行数上限。既定 5。画面が出ないときに、どの操作が呼ばれたか・どの wl_buffer だったかを定常状態まで追える) / BLINKGTK_CONTENT_PROBE_MAX (定常状態の中身を 計測だけ 延長する。表示の判定は先頭 8 枚のまま変わらない) / BLINKGTK_TEST_FORCE_FRACTIONAL / BLINKGTK_TEST_GPU_COPYFROMSURFACE / BLINKGTK_TEST_ALLOC_LOG / BLINKGTK_TEST_GATE_FAKE_PRE (判定の基準を差し替える陰性対照) / BLINKGTK_TEST_FOCUS_LOG / BLINKGTK_TEST_SWITCH_PATH (<経路 id>:<ms>) / BLINKGTK_TEST_COMPOSITOR_RECREATE / BLINKGTK_TEST_DISPOSE_QUIT_MS / BLINKGTK_TEST_EXECV_RESTART / BLINKGTK_TEST_OUTPUT_SWAP / BLINKGTK_TEST_OUTPUT_SWAP_SKIP

3b. 開発用デモ (simple_browser) だけのもの — 配布物では使われません

ライブラリも、配布物のサンプル blinkgtk_browser も、この変数を読みません。 BlinkGTK の開発に使っているデモ simple_browser だけが読む変数です。simple_browser は配布物に含めていません。

変数 効果
BLINKGTK_RESTART_ACTIVATION=0 再起動時に activation token を引き継ぐのをやめます(引き継ぐと新しい窓が前面に出ます)
BLINKGTK_RESTART_LINGER_MS=<ms> 再起動を fork + 親の残存で行い、その残存時間を指定します。既定は 0(無効) で、従来どおり execv します
BLINKGTK_DEMO_SELECT_PATH=<id>@<ms>,... 試験専用。起動から指定したミリ秒の時点で、描画経路の一覧の項目 <id> を選びます (例 egl@6000,software@12000)。人が一覧を選んだときと同じ処理を通ります
BLINKGTK_PERMISSION_ALLOW デモが権限要求を自動で許可します。ライブラリ本体は既定で拒否します
BLINKGTK_INSPECTOR_DASH インスペクタのダッシュボードを開きます
BLINKGTK_TEST_SUITE / BLINKGTK_TEST_CAPTURE デモの検証モード
BLINKGTK_DEMO_NO_EBOOK / BLINKGTK_DEMO_NO_JLREQ デモ起動時の EBOOK 設定 / JLReq 組版の適用を止めます
BLINKGTK_MUTTER_REACTIVATE / BLINKGTK_DEBUG_ISSUE_84 窓の前面化まわりの切り分け用
BLINKGTK_CHROMIUM_VERSION 廃止。同梱しない内部デモ専用の変数でした。配布物では使われません
BLINKGTK_AUTO_RESIZE=<回数> デモが窓を指定回数だけ自分でリサイズします (リサイズまわりの検証用)。止める指定ではありません
BLINKGTK_AUTO_FULLSCREEN=<回数> デモが 2.5 秒ごとに全画面を指定回数だけ往復します。大きな一段のサイズ変化を作る検証用

4. 廃止

変数 状態
BLINKGTK_KEEP_GPU_COMPOSITING=1 software 起動でも GPU 合成を無効にしません。描画経路を実行中に切り替えるための前提です。CPU が増えます(手元の測定でアニメーションするページを 20 秒、約 12% 増。その機械・そのページでの比で、上限でも代表値でもありません)。EGL 経路の切替が公開 API になるまでは無保証です
BLINKGTK_ENABLE_THREADED_COMPOSITING 廃止(threaded compositing は既定 ON 化済み。旧名は無効)

関連