22
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PLISEAdvent Calendar 2020

Day 2

Windows Terminalを痛くしてみた。

Last updated at Posted at 2020-12-01

はじめに

みなさんWindows Terminalは使っていますか?
自分はPowerShellやコマンドプロンプト、git bashなどのコンソールアプリケーションをまとめられるため大変重宝しています。
最近WSLなども使い始めたので今後もWindows Terminalを触る機会が増えそうです。

さて、そんなWindows Terminalですが、手軽に背景画像を設定できるのをご存知でしょうか?
今回は背景に好きな画像を設定して日々の開発を楽しくする方法をご紹介します。

今回やること

  • Windows Terminalの背景に好きな画像を設定
  • 背景画像を入れ替えるプログラムを作成
  • ログオン時にプログラムを実行して自動で背景画像を切替

事前準備

Windows Terminalが入ってない人は下記ページから入手しましょう。

Windows Terminal を入手 - Microsoft Store ja-JP

Windows Terminalの背景に好きな画像を設定

Windows Terminalに背景画像を設定するのは簡単です。
まずWindows Terminalを開き Ctrl + , を入力して設定ファイルを開きます。
設定ファイルはjson形式で記述されていてprofilesがコンソールの設定を記述する箇所となっています。
その中でもdefaultsがコンソール共通の設定、listが登録している各コンソールの設定となっています。

こちらにbackgroundImagebackgroundImageOpacityを設定します。
backgroundImageには背景画像のパスを、backgroundImageOpacityには画像の透過度を指定します。

下記の例ではbackgroundImageC:\\background\\image.jpgを指定し、
backgroundImageOpacityには0.2を指定しています。
ここはお好みで調整してください。

setting.json設定例
"profiles":
{
    "defaults":
    {
        // 全体で設定したい場合
        "backgroundImage" : "C:\\background\\image.jpg",
        "backgroundImageOpacity" : 0.2
    },
    "list":
    [
        {
            "guid": "{014ab2cb-3ce7-46ef-ae0d-8f8ac3f4ae89}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false,
            // 個別に設定したい場合
            "backgroundImage" : "C:\\background\\another_image.jpg",
            "backgroundImageOpacity" : 0.2
        },
        {
            "guid": "{0c9317b5-9087-4444-9065-a6171ad190e9}",
            "name": "コマンド プロンプト",
            "commandline": "cmd.exe",
            "hidden": false
        },
        {
            "guid": "{ffe449c2-7821-401e-bf88-eccceb437483}",
            "hidden": false,
            "name": "Azure Cloud Shell",
            "source": "Windows.Terminal.Azure"
        }
    ]
}

これらを設定した上でファイルを保存します。
すると指定した画像が背景に設定されるようになったかと思います。

image.png

背景画像を入れ替えるプログラムの作成

WindowsTerminalに背景画像を設定できるようになりましたが、毎日同じ画像だと飽きてしまうかもしれません。
そのため、背景画像を自動で入れ替えるプログラムを作成します。

今回背景画像を変える方法としてWindows環境ならどこでも実行できるようにバッチファイルを選びました。
以下が背景画像を更新するプログラムとなります。

change_background_image.bat
@echo off
setlocal enabledelayedexpansion

rem 画像が保存されているフォルダへ移動
cd C:\background\source

rem ファイル数のカウント
set cnt=0
for %%f in (*jpg) do set /a cnt=cnt+1

rem 対象のファイルが1件も存在しない場合は処理を終了
if %cnt% == 0 exit /b

rem ランダムにファイルのインデックスを取得
set /a randomIndex=%RANDOM% %% %cnt%

set n=0
for %%f in (*jpg) do (
    rem インデックスに一致した順番の画像を指定場所へコピー
    if !n! == %randomIndex% (
        copy /y %%f C:\background\image.jpg 
        exit /b
    )
    set /a n=n+1
)
endlocal

exit /b

先ほどと同様に好きな画像をC:\background\sourceに置き、こちらのプログラムを実行します。
するとC:\background\image.jpgのファイルがC:\background\sourceに保存されている画像変わったかと思います。

image.png
(背景に設定する画像は右側にキャラクターが映っているものが良いかもしれませんね。)

注意点

今回WindowsTerminalの方にjpg画像を設定したため、ここでランダムで変えられる背景画像もjpg画像に限られます。
最初にpng画像やgif画像を設定した場合はプログラム上の(*jpg)となっている箇所を書き換えてください。
pngやjpgなど複合して使いたい場合は一度すべての画像をどちらかの形式に変換しておくか、プログラムの方でWindowsTerminalの設定ファイルごと書き換える必要があります。
それらの方法は今回は割愛します。


これで背景画像を入れ替えるプログラムは完成です。

ログオン時にプログラムを実行して自動で背景画像を切替

背景画像を書き換えるプログラムができたのでそちらを定期実行するようにします。
今回定期実行にはタスクスケジューラを利用します。

まずタスクスケジューラを起動します。
Win + Rで「ファイル名を指定して実行」を開き、taskschd.mscを入力し、エンターを押します。
※すべてのアプリに「タスクスケジューラ」と入力して起動でも構いません。

起動したら画面上部のタブの操作から基本タスクの作成を選択します。
あとは以下の手順でタスクを作成します。


タスク名はなんでも良いです。 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232125/a958f564-1a60-3486-afdd-5f4cd4663934.png)

今回はログオン時にします。
image.png

プログラムの開始を選びます。
image.png

プログラムの箇所は先程作成したバッチファイルにします。
image.png

完了を押すとタスクが作成されます。
image.png

タスクスケジューラライブラリの箇所で先程作成したタスクが追加されていればOKです。
右クリックから実行できるので設定できているか不安な方は実行してみましょう。
タスクスケジューラ.png

最後にログオンしてみて背景画像が切り替わっていれば完成です。
image.png

最後に

少しでもWindowsTerminalに触る時間が楽しくなれば幸いです。
それでは良いTerminalライフを!

22
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?