【iPhone】壁紙をランダムに切り替えるショートカット + オートメーション

更新情報

2021/09/01
wallpaperSwitcherのレシピを修正してリンクを貼り直しました。
<修正点>
・md5 → MD5
・実行結果(戻り値)として設定した壁紙を返すように


今回は、壁紙をランダムに切り替えるショートカットの紹介です。まあ今更感がすごいあるんですが、世の中そんなもんだと思います(?)。

オートメーションと組み合わせることで、毎日壁紙を自動切り替えしたりできます。

動作の例


以下、目次の概要です。

[1. シンプルな方法 〜ショートカット作成編〜] と [2. シンプルな方法 〜オートメーション作成編〜] はセットの内容になっていて、ショートカットAppを使って壁紙を自動切り替えする方法についての基礎を紹介しています。

[3. 日付の情報を使って壁紙を選ぶ] では、壁紙をランダムではなく、毎日違うものに連続して切り替えていく方法について紹介しています。

[4. 壁紙が必ず切り替わるようにする] 以降の章では、ランダムに壁紙が確実に切り替わる方法についての概要を紹介した後、その処理を組み込んだショートカットの配布と使い方説明を載せています。

0. はじめに

ここで紹介・配布しているショートカットを使う上で起きた問題などについては私は一切の責任を負いません。自己の責任の上での使用をお願いします。念のため


1. シンプルな方法 〜ショートカット作成編〜

まずはシンプルなやり方として、写真Appのアルバム(のような複数枚の画像の集まりで出来ているもの)からランダムに1枚とってきてそれを壁紙として設定するという方法を紹介します。

オートメーションに処理を直書きしてもよいといえばよいのですが、処理はショートカットで作り、作ったショートカットをオートメーションから呼び出すようにするという二段構えの構成を取っておくと後々便利だと思うので、この章では先ずショートカット作成からはじめたいと思います。オートメーションから呼び出す方法については次の章を参照してください。


それでは、ショートカット作成の手順を以下に示します。(1)〜(15)までと長いですが....。

(1) 写真App上で好きな壁紙をまとめたアルバムを作成する。(ここではアルバム名をWallpapersとしていますが、アルバム名はなんでも構いません。好きな名前で作ってください)

画像1


(2) 新規にショートカットを作成し、「写真を検索」アクションを追加する。

画像2

※ 新規にショートカットを作成する手順がわからなければここを参考にしてください

※ 「写真を検索」アクションは画面下の検索窓に"写真を検索"などと入力すると見つかると思います。見つかったものをそのままタップして追加してください。


(3) 「写真を検索」アクション中の"フィルタを追加"をタップして、フィルタを追加します。追加されるフィルタはデフォルトでは、"アルバム 次と等しい 最近の項目"というようになっていると思います。

画像3


(4) 追加されたフィルタの"最近の項目"を押して、(1)で作成したアルバムを選択します。"最近の項目"の部分が選択したアルバム名になればおkです。

画像4


(5) この状態になったら、ショートカットを実際に実行して少しテストしてみましょう。実行するには画面右下の青三角を押してください。指定したアルバムの写真が以下のように表示されればおkです。

画像5

※ ここでは、指定したアルバムの写真を全て取得しているので、表示された写真を左にスワイプしたりすると他の写真も表示することができます。


〜 一旦休憩 〜

さて、ここまでで指定したアルバムから写真を全て取得するということができるようになりました。

次のステップとしては、そうして取得した全ての写真からランダムに1枚選び出すということになると思います。

アルバムから写真をランダムに1枚だけ取り出す方法の一例としては、
 ・アルバムの全ての写真をランダムに並び替えて、
 ・そうして並び替えたものの最初の写真を取り出す

というのが挙げられます。この2つの処理の結果として、ランダムに1枚の写真をアルバムから入手するという機能が実現できるというのがわかると思います。

手順(6)以降では、実際に上で挙げた2つの処理を順に実装していきます。

〜 一旦休憩 〜


(6) まずはそうして入手したアルバムの全ての写真をランダムに並び替えてみましょう。並び順序の"なし"の部分をタップして、"ランダム"に変更してください。

画像6


(7) そうしたら手順(5)と同様にして、画面右下の青三角を押してショートカットを何度か実行してみてください。以下のような感じで実行するたびにアルバムの写真がランダムな並び順序になっているのが確認できればおkです。

画像7

※ 表示された写真を左にスワイプしたりすることでも順序がランダムになっていることを確認できるかと思います。


(8) 次はランダムに並び替えたものの中から最初の1枚だけ取得するようにしてみましょう。先ずは制限をタップしてオンにしてください。

画像8


(9) そうしたら、項目の欄の左の方にある「+-ボタン」を使って項目数を5から1に変更してください。

画像9


(10) ここまで実装できたら、実際に何度か実行してテストしてみてください。以下のようにアルバムの中からランダムに写真が1枚だけ表示されるのが確認できればおkです。

画像10

※ 表示される写真の下に複数であることを示す点がないことも確認してください。ランダムに1枚だけ表示されているのがわかりますね。


〜 一旦休憩 〜

さて、ここまでの手順で「指定したアルバムからランダムに写真を1枚だけ取得する」ということができるようになったはずです。

あとはそうして取得した写真を壁紙に設定するということができるようになれば、最終目標である「指定したアルバムからランダムに壁紙を設定する」という処理をショートカットに行わせるということが達成できるかと思います。

ではショートカット作成に戻って最後のステップを完成させましょう。

〜 一旦休憩 〜


(11) ショートカット編集画面下の検索窓に「壁紙を設定」と入力し、「壁紙を設定」アクションを追加してください。

画像11


(12) この状態でショートカットを実行(画面右下の青三角)すると、ランダムに選び出された写真で壁紙を設定するプレビュー画面が開くかと思います。また、実際に表示されるプレビュー画面から今の壁紙を変更したりもできるかと思います。何度か実行してみて、壁紙がランダムに設定できることを確認してください。


(13) さて、最後の仕上げとして、プレビュー画面なしで壁紙が変更されるようにしましょう。変更は簡単で、「壁紙を設定」アクションの「表示を増やす」をタップした後で出てくる「プレビューを表示」をオフにするだけです。そのまんまですね。

画像12


(14) ここまでできたら、ショートカットを保存しておきましょう。画面右上の「次へ」をタップして好きなショートカット名を入力した後、「完了」を押してショートカットを保存してください。

画像13

※ ここではショートカット名をchangeWallpaperとしていますが、皆さんは好きな名前をつけてください。


(15) 完成したらできたショートカットをタップして何度か実行してみましょう。実行するたびにランダムに壁紙が切り替わっていれば成功です。


さて、長かったですが、これで実行すると「指定したアルバムからランダムに写真を選び出して壁紙に設定する」と言うショートカットが作成できたと思います。

あとはこれを、オートメーションの中で呼び出すようにすれば、この記事を読んでいる皆さんが本当にやりたいであろう「何時になったら壁紙を自動で切り替える」ということができるようになります。次の章では、その方法について紹介していきます。


2. シンプルな方法 〜オートメーション作成編〜

では、1. で作成したショートカットをオートメーションから呼び出してみましょう。手順を以下に示します。

(1) 新規にオートメーション(個人用オートメーション)を作成して、トリガーを選択する画面を開いてください。

画像14

※ 作成するのは「個人用オートメーション」の方です

※ 新規にオートメーションを作成する方法がわからなければ、ここを参照してください


(2) トリガーとして、「時刻」を選択します

画像15


(3) オートメーションを実行させたい時刻を設定します。(つまり、壁紙が何時に変わって欲しいかということです。ここでは午前0時に設定しています)

画像16

※ 色々細かく設定できますが、普通に使う分には真ん中の方にある時刻だけ変更すればよいでしょう


(4) 時刻を設定し終わったら、画面右上の「次へ」を押して、アクション編集画面に移動します。


(5) 画面下の検索窓に「ショートカットを実行」と入力して、「ショートカットを実行」アクションを追加します。

画像17


(6) 追加された「ショートカットを実行」アクションを編集し、先ほど作成したショートカットを実行するようにします。(薄い青字のショートカットの部分をタップして変更してください)

画像18


(7) 画面右上の「次へ」を押して次に進み、「実行の前に尋ねる」をオフにした後で「完了」を押してオートメーションを保存してください。

画像19


これで、指定した時刻になればオートメーションが発動し、その中で先ほど作成したショートカットが実行されて、壁紙が自動で切り替わるようになったはずです。

変わることを今すぐ確認したければ、今から5分後に時刻を設定するなどしてテストすればよいと思います。

また、手順(1)でトリガーを選択する部分を「時刻」ではない別のトリガーに変更するなどすれば、色々なタイミングで自動で壁紙を切り替えることができるようになると思います。色々と試してみてください。


3. 日付の情報を使って壁紙を選ぶ

完全ランダムではなく、毎日違う壁紙を順番に設定したいという風に考えている場合は、以下のようにすれば良いと思います。

レシピ例

画像20


ショートカットの処理の流れを簡単に説明すると、

(1) 先ず、指定したアルバムの写真を全部取ってきます。ここでは写真の順序をランダムではなく固定にしたいので、並び順序はとりあえず"なし"にでもしておきます(名前順とかの方が本当はいいかもしれませんね)

(2) 次に、「カウント」アクションを使って取得した写真の枚数を数えています。例えばアルバムに3枚の写真がある場合、3という出力(結果)が得られます

(3) 今から昔の適当な日付(ここでは2021年1月1日)と、今日の日付(ショートカットを実行した日)の間が何日あるかを「日付間の時間を取得」アクションで調べています。

(4) 以下の式を計算して結果を得ます。計算には「計算式」アクションを使っています。

日付間の時間 mod アルバムの写真の枚数 + 1

(5) アルバムから、(4)の計算結果番目の写真を取得します。取得には「リストから項目を取得」アクションを使います

(6) 取得した壁紙をiPhoneの壁紙に設定します


このようにすることで、毎日異なる壁紙を連続して設定するということができるかと思います。テストしたければ、「現在の日付」の部分を手入力するようにして、色々な日付を入力してみればいいと思います。(ただし、日付間の時間を取得するアクションの結果がマイナスにならないように注意する必要があります)


4. 壁紙が必ず切り替わるようにする

完全ランダムに壁紙を選択していくことの問題点として、2回連続で同じ壁紙を引き当ててしまうということがあります。

アルバムに保存する壁紙の枚数を増やせば、まあまあ回避できる問題ではあるのですが、ここではもっと厳密に、回避する方法についての概要を紹介します。

先ず、今設定している壁紙がなんであるかということがなんらかの形でわかる必要があるかと思います。それができるようになったならば、ランダムに引いた壁紙が、今設定している壁紙と同じものである場合はそれとは違うものを設定するという風にすれば仮に2回連続で同じ壁紙を引き当てたとしても、結果として設定される壁紙は違うものになるという処理になるかと思います。

もっと具体的に言えば、ファイルAppやメモAppなどに今の壁紙を表すなんらかの情報(名前やらハッシュ値やら)を書いておいて、ランダムに引いた壁紙を設定するときはそれを読み出して、そのまま設定しても構わないかどうかを判断させるということになります。

このような処理を入れたショートカットを作ったので、以降の章で配布とその使い方説明をしたいと思います。配布するショートカットのレシピの詳細な説明は載せませんが、処理の概要としては上で述べた通りです。


5. これ以降を読むのに必要なファイルApp

これ以降の記事を読んでいくには純正のファイルAppが必要になると思うので、まだインストールされていなければ以下からインストールするようにしてください。


6. ショートカットの取得

ショートカットは以下リンクからダウンロードできます。

wallpaperSwitcher


7. 使い始める前に

本ショートカットで扱う壁紙などの情報は、デフォルトでは「iCloud Drive/Shortcuts/wpswr/」フォルダ内に置かれます。

なので、ショートカットを使い始める前に、「iCloud Drive/Shortcuts/」フォルダ内に"wpswr"という名前のフォルダがないことをファイルAppを使って確認しておいてください。

もし"wpswr"という名前のフォルダがある(既に使っている)ならば、本ショートカットの編集画面を開いて、一番上の辞書アクションの鍵"root"の値を"wpswr"から変更し、保存場所を変える必要があります。また、この時変える名前は、既に「iCloud Drive/Shortcuts/」フォルダ内にあるフォルダ名とは被らないようにする必要があるということにも注意してください。

例えば、"wpswr"を"walls"に書き換えたならば、「iCloud Drive/Shortcuts/walls/」にフォルダ内に本ショートカットで扱う情報が書き込まれることとなります。


8. フォルダ構造の初期化

初めて起動すると、「The folder /Shortcuts/wpswr/ is not found. Do you want to create /Shortcuts/wpswr/?」のように聞かれるので、OKを押してこのショートカットで扱う情報を格納するフォルダを作成します。

「Finished initializing the folder structure!」というメッセージが出れば、このステップは完了です。

ファイルAppを開いて、「iCloud Drive/Shortcuts/wpswr/」フォルダができていることを確認してください。

できているフォルダ内が以下のようになっていれば、おkです。

画像21


9. 切り替え対象の壁紙の登録

「iCloud Drive/Shortcuts/wpswr/wallpapers/」フォルダ内に好きな壁紙画像を保存することで登録が行えます。

壁紙画像は2枚以上必要なので、注意してください。

壁紙をカメラロールからフォルダへ追加する手順をいかに簡単にまとめときます。

(1) 写真Appを開く

(2) 右上にある選択ボタンを押して、追加したい壁紙画像を選択する(複数選択可)

(3) 左下の共有ボタンを押して、「ファイルに保存」を選択する

(4) 「iCloud Drive/Shortcuts/wpswr/wallpapers/」を選択して、保存完了する


壁紙を保存完了すると、「iCloud Drive/Shortcuts/wpswr/wallpapers/」フォルダ内は以下のようになるはずです。繰り返しになりますが、壁紙画像は2枚以上必要です。

画像22


10. ショートカット単体で使う

正しく設定できていれば、ショートカットを実行するたびに実際に壁紙が切り替わるはずです。
 ここで切り替わる壁紙が、「iCloud Drive/Shortcuts/wpswr/wallpapers/」フォルダ内に入れたものになっていることを確認してください。

切り替わっている様子(再掲)


11. オートメーションとして使う

ショートカットを実行するアクションを使って
wallpaperSwitcherを呼び出してあげることで、オートメーションとして実行することが可能です。オートメーションの作り方は、[2. シンプルな方法 〜オートメーション作成編〜] を参照してください。

「毎日何時に切り替える」とか、「充電が何%になったら切り替える」とか色々できると思います。

ショートカットを複製して、トリガーごとに異なるフォルダから壁紙をランダムに選択して切り替えるみたいなことをしても楽しそうですね。


12. まとめ

今回は壁紙切り替えショートカットについて取り上げました。(今更感)

ここで取り上げている各種ショートカットでは、ロック画面とホーム画面を同じ画像に設定していますが、レシピなどに少し手を加えれば、ロック画面とホーム画面では違う画像を選択するとか多分できると思います。

では今回はこの辺で。では〜。

この記事が気に入ったらサポートをしてみませんか?