Sony α clockの世界遺産の写真でMojaveのダイナミックデスクトップ壁紙を作ってみる

皆さんはPCやMacの壁紙に何を使っていますか?僕は世界遺産の写真を使っています。ソニーさんがα clockでとても高品質な壁紙を提供してくださっています。代表的な世界遺産を定点観測して時間とともに移りゆく景色が楽しめます。

Sony Global α clock
https://www.sony.net/united/clock/heritage/

各場所毎に12枚ずつの壁紙がダウンロードできます。どれもとても美しい。ソニーのデジタル一眼で撮影したものだそうです。多少のロゴは入りますが気になりません。気分に応じて色んな世界遺産の写真を壁紙に使っていました。

そこでMac OS Mojaveの登場。時間とともに壁紙が変わるダイナミックデスクトップに対応しました。実際にカリフォルニアのMojave砂漠の写真が時間とともに変わるように設定されています。これはα clockにも使えるんじゃないかと思って作ってみました。備忘録を兼ねて掲載しておきます。

ダイナミックデスクトップを作成できるAppがいくつか出ているようですが、余計なおかねをかけたくなかったので、コマンドラインになるけどフリーで作成できる方法を選びました。jittodesignさんのブログがとても役立ちました。

jittodesign blog - Mojaveのダイナミックデスクトップを自作してみた
https://jittodesign.org/dynamicdesktop-13947/

必要なソフトをインストール

まずApp StoreからXcodeをインストールします。そこそこ時間かかります。
https://itunes.apple.com/jp/app/xcode/id497799835?mt=12

次にターミナルを起動して下記のコマンドを入力してコマンドラインツールをインストール。
xcode-select --install

そしてフリーで公開されているWallpapperというダイナミックデスクトップ壁紙作成コマンドラインツールをインストール。管理者権限で実行するsudoコマンドを使うときはパスワードを要求されます。
git clone https://github.com/mczachurski/wallpapper.git
cd wallpapper
swift build --configuration release
sudo cp .build/x86_64-apple-macosx10.10/release/wallpapper /usr/local/bin

続いて次のコマンドでライセンス条項を表示してspaceで読み進めて最後にagreeで同意。
sudo xcodebuild -license

これでWallpapperがインストールされ前準備が完了。

ダイナミックデスクトップ壁紙の下準備

いよいよダイナミックデスクトップ壁紙作成に入ります。
α clockで作成したい世界遺産の場所の壁紙を12枚保存します。zipで圧縮されているので解凍してjpgファイルを取り出してください。私の場合は解像度はMacBook Pro用に1920 x 1200を用いました。皆様の環境に合わせてください。その際、大まかな撮影時間を記録しておきます。推定される季節もメモしておきましょう(適当でいいです)。

デスクトップにフォルダを作成しそこに取り出した12枚のjpgファイルを移動します。ここでは例としてromeというフォルダにrome_01.jpgからrome_12.jpgというファイルを保存したとします。

壁紙の切り替えに用いるのは、実は時間ではなくて、太陽高度と太陽方位です。どんな計算をしているのか分かりませんが、太陽高度と太陽方位を設定する必要があります。天文台にも太陽高度・方位を計算してくれるサイトがありましたが、私は下記のサイトを利用しました。

keisan - 太陽高度(一日の変化)
https://keisan.casio.jp/exec/system/1185781259

まず「google map」をクリックして世界遺産の場所の名前を検索すると、経度と緯度が出てくるので「取り込む」をクリック。次に時差を入力(Google先生に尋ねてください)。ローマなら「2」です。そして写真から想定される日付(だいたいの季節から勝手に想定)を設定して「計算」をクリック。すると時刻毎の太陽高度と太陽方位が表になっています。先ほどメモした写真の撮影時間に一致する太陽高度・方位を記録。これは次に作成する設定ファイルinfo.jsonで入力します。

テキストエディタ(私はmiを使いました)でinfo.jsonファイルを作成します。下記のようにコマンドを入力します。altitudeは先ほど調べた太陽高度、azimuthには太陽方位をコピー&ペーストしてください。fileNameには先ほどデスクトップのフォルダに保存した画像ファイル名を入力します。isPrimaryは優先する画像でしょうか、1つだけtrueにして後はfalseにします。isForLightはライトモードのときの画像にtrueにして、isForDarkはダークモードのときの画像にtrueにしてください。入力が終わったらinfo.jsonというファイル名で先ほどのデスクトップのフォルダに保存した画像ファイルと同じとことに保存。

[
  {
    "altitude": 12.84,
    "azimuth": 70.26,
    "fileName": "rome_01.jpg",
    "isPrimary": false,
    "isForLight": false,
    "isForDark": false
  },
  {
    "altitude": 23.56,
    "azimuth": 79.35,
    "fileName": "rome_02.jpg",
    "isPrimary": true,
    "isForLight": true,
    "isForDark": false
  },
  {
    "altitude": 36.64,
    "azimuth": 88.76,
    "fileName": "rome_03.jpg",
    "isPrimary": false,
    "isForLight": false,
    "isForDark": false
  },
  {
    "altitude": 51.19,
    "azimuth": 105.88,
    "fileName": "rome_04.jpg",
    "isPrimary": false,
    "isForLight": false,
    "isForDark": false
  },
  {
    "altitude": 61.37,
    "azimuth": 122.85,
    "fileName": "rome_05.jpg",
    "isPrimary": false,
    "isForLight": false,
    "isForDark": false
  },
  {
    "altitude": 65.72,
    "azimuth": 134.91,
    "fileName": "rome_06.jpg",
    "isPrimary": false,
    "isForLight": false,
    "isForDark": false
  },
  {
    "altitude": 68.9,
    "azimuth": 210.7,
    "fileName": "rome_07.jpg",
    "isPrimary": false,
    "isForLight": false,
    "isForDark": false
  },
  {
    "altitude": 56.05,
    "azimuth": 247.15,
    "fileName": "rome_08.jpg",
    "isPrimary": false,
    "isForLight": false,
    "isForDark": false
  },
  {
    "altitude": 50.78,
    "azimuth": 254.62,
    "fileName": "rome_09.jpg",
    "isPrimary": false,
    "isForLight": false,
    "isForDark": false
  },
  {
    "altitude": 45.32,
    "azimuth": 260.94,
    "fileName": "rome_10.jpg",
    "isPrimary": false,
    "isForLight": false,
    "isForDark": false
  },
  {
    "altitude": 39.78,
    "azimuth": 266.51,
    "fileName": "rome_11.jpg",
    "isPrimary": false,
    "isForLight": false,
    "isForDark": false
  },
  {
    "altitude": 12.42,
    "azimuth": 290.06,
    "fileName": "rome_12.jpg",
    "isPrimary": false,
    "isForLight": false,
    "isForDark": true
  },
]

ダイナミックデスクトップ壁紙を作成・設定

いよいよ壁紙作成に取りかかります。
再度ターミナルを起動。デスクトップに作成したフォルダに移動します。ユーザー名には皆さんそれぞれのユーザー名に置き換えてください。フォルダ名もここではromeにしていますが、作成したフォルダ名に置き換えてください。

cd /Users/ユーザー名/Desktop/rome

それではいよいよ作成コマンドを実行します。HEIC形式のファイルが作成されます。ここではrome.heicというファイル名にしましたが、皆さんのお好みに置き換えてください。

wallpapper -o rome.heic -i info.json

しばらくすると作成したフォルダにrome.heicファイルができています。これがダイナミックデスクトップ壁紙ファイルです。

これを壁紙が保存されているDesktop Pictureフォルダにコピーしてください。FinderでMacintosh HD>ライブラリ>Desktop Picturesと進めば見つけられます。途中Macのパスワードが必要です。

最後にシステム環境設定の「デスクトップとスクリーンセーバー」でダイナミック壁紙を設定。ダイナミックデスクトップのところに山の写真ができていれば成功です(なぜかプレビューはうまくいかずすべて山の写真になってますが、実際の壁紙はきちんと表示されます)。

時間とともに変わる壁紙は時間の感覚ができていいです。この記事は備忘録なのでスクリーンショットが少なくてごめんなさい。時間ができたら追加してみます。少しでもお役に立てれば幸いです。



コメント

このブログの人気の投稿

アメリカでマネーオーダーを入手する

USPSのCertified Mail(特定記録)を自宅で作成する

クラムシェルモードでMacBookのWi-Fiが不安定