Windows Terminalの背景を透明にして動画を流す方法

Posted: 2022-09-23

基本的にはmicrosoft/terminal/issues/14059に書いたことと同じなのですが、日本語で情報が見つからなかったので、日本語でも書いておきたいと思います。

ターミナルの背後で動画 を再生している様子。

Windows Terminal側の設定

Windows Terminal画面のタイトルバーを右クリックし Settingsを選択します。画面左側のProfilesの一覧の中から、変更したい項目、例えば Ubuntu-20.04を選択します。

Windows Terminal; Profiles
画面右側に設定項目の一覧が表示されるので、その中のAdditional settings > Appearanceを選択します。

Windows Terminal; Additional settings
TransparencyBackground opacity(不透明度)を80%程度に設定します。
Windows Terminal; Transparency
右下のSaveを押して変更を確定します。

ブラウザ側の設定

上記の設定でターミナルの背景は透明になりますが、ある問題が生じます。それはブラウザのCPUやメモリを節約しようとする仕組みによって、Windows Terminalを全画面にしたときにブラウザの画面が描画されないという問題です。例えば、背景で動画を再生しようすると動画が真っ黒になってしまったり、Webアプリケーションのコードを変更した結果をプレビューしようとすると文字が消えてしまったりします。

上記のブラウザの挙動はごく一部の人以外には望ましい挙動であり、今後修正されることはおそらくないでしょう。したがってこの問題は自分でWebブラウザの設定を変更して解決する必要があります。以下にその手順を示します。

Google Chromeの場合

アドレスバーにchrome://flags/#calculate-native-win-occlusionと入力して、設定画面のCalculate window occlusion on Windowsの項目をDisabledに設定します。

Google Chrome; Calculate window occlusion on Windows

Reference: Videos turn black when a full screen window is “on top” of the window playing the video.

Firefoxの場合

アドレスバーにabout:configと入力します。警告が出る場合がありますが、設定を変更したいので Accept the Risk and Continueを選択します。

Firefox; Proceed with Caution

次の画面では設定を変更したい項目の名前を検索する欄が表示されるので、そこにwidget.windows.window_occlusion_tracking.enabledと打ち込みます。

Firefox; Search preference name

双方向の矢印のアイコンをクリックして値をfalseに変更します。

Firefox; Toggle the parameter

Reference: Firefox stops rendering videos (the whole web-page) after 10 seconds when in background