作成者: BlinkGTK Project
最終更新: 2026-10-27 (BlinkGTK 1.2.5-build5 / Chromium
156.0.8078.79)
API リファレンスマニュアルの第 9 章 (環境変数) にあたる文書です。BlinkGTK が読む環境変数は、すべてこの一覧に載せています。ここに無い名前は BlinkGTK では使われません。
環境変数は次の 3 つに分けています。BlinkGTK を組み込むアプリが頼ってよいのは、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 つ起動しなくなるので、頁の読み込みが早くなります。代わりに、ネットワークの処理が異常終了すると、アプリも一緒に終わります。既定では別のプロセスで動かし、異常終了はそのプロセスだけで済みます |
不具合が出て、下の修正が関係していそうなときに、その修正だけを止めて確かめるためのものです。止めて症状が消えた場合は、使っている版と症状を添えてお知らせください。
| 変数 | 効果(=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 までの動作)。比べるとき用 |
以下は開発・調査用の内部変数です。一覧のみ掲載し、詳細仕様は公開しません。無保証・予告なく削除されます。
| 分野 | 変数 |
|---|---|
| 更新の案内の試験 | 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 |
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 秒ごとに全画面を指定回数だけ往復します。大きな一段のサイズ変化を作る検証用 |
| 変数 | 状態 |
|---|---|
BLINKGTK_KEEP_GPU_COMPOSITING=1 |
software 起動でも GPU
合成を無効にしません。描画経路を実行中に切り替えるための前提です。CPU
が増えます(手元の測定でアニメーションするページを 20 秒、約 12%
増。その機械・そのページでの比で、上限でも代表値でもありません)。EGL
経路の切替が公開 API になるまでは無保証です |
BLINKGTK_ENABLE_THREADED_COMPOSITING |
廃止(threaded compositing は既定 ON 化済み。旧名は無効) |
BLINKGTK_GPU_MODE で選べる描画モードと選び方