Bing Desktop を Mac に導入する方法

# Bing Desktop を mac で使う方法

Bing Desktop 大好きです。社畜の心を癒やしてくれる Microsoft の慈悲です。
**社畜に壁紙を見る余裕があるの？知るかーーー！！！！！！！！！＼(＾▽＾)／**

そんな素晴らしい Bing Desktop ですが、残念ながら Mac 版は公開されていません。なので、意地でも Mac で使えるようにしましょう。

調べてみると、 Bing Desktop を Mac で使おうとする有志は一杯いました。今回は  Github の有志の知恵を借りて Bing Desktop を Mac に導入します。

# Bing Desktop を mac に導入する

作業の流れは以下になります。とても簡単です。

1. bing-wallpaper を導入する

なお、前提条件として、以下の２つがあります。

1. Git が導入済み、かつ `git clone` の意味がわかる
2. homebrew が導入済み、かつ homebrew でアプリを導入できる

前提状況のどちらもそれほど難しくなく、一般的な内容なので、サクッと実行してみてください。私は、塩漬けの Git と homebrew でしたが、勝手にアップデートされました。

## bing-wallpaper の導入

[bing-wallpaper](https://github.com/thejandroman/bing-wallpaper) という Github で公開されているプログラムを導入します。具体的には、以下の作業を行います。

1. bing-wallpaper リポジトリを `git clone` する
2. bing-wallpaer.sh を実行する  

なお、2. の途中で、ターミナル.app がアクセスを要求してきます（以下の図参照）。「OK」を押して、アクセスを許可してください。

![スクリーンショット 2018-11-23 21.41.03.png](https://qiita-image-store.s3.amazonaws.com/0/233927/1900f8e6-6daa-2ec5-a4bc-8f0d43a114a2.png)

```shell-session
MacBook-Air:~ username$ mkdir git_repo
MacBook-Air:~ username$ cd git_repo/
MacBook-Air:git_repo username$ git clone https://github.com/thejandroman/bing-wallpaper.git
Cloning into 'bing-wallpaper'...
remote: Enumerating objects: 331, done.
remote: Total 331 (delta 0), reused 0 (delta 0), pack-reused 331
Receiving objects: 100% (331/331), 1.46 MiB | 1.53 MiB/s, done.
Resolving deltas: 100% (122/122), done.
MacBook-Air:git_repo username$ cd bing-wallpaper/
MacBook-Air:bing-wallpaper username$ ls
LICENSE			Tools			contributing.json
README.md		bing-wallpaper.sh
MacBook-Air:bing-wallpaper username$ ./bing-wallpaper.sh -w
Downloading: BrazilianPine_JA-JP10074166204_1920x1080.jpg...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  331k  100  331k    0     0   503k      0 --:--:-- --:--:-- --:--:--  503k
MacBook-Air:bing-wallpaper username$ ./bing-wallpaper.sh -w
Skipping: BrazilianPine_JA-JP10074166204_1920x1080.jpg...
MacBook-Air:bing-wallpaper username$ open $HOME/Pictures/bing-wallpapers/
MacBook-Air:bing-wallpaper username$ 
```
これで、Bing Desktop の壁紙が `$HOME/Pictures/bing-wallpapers/` にダウンロードされました。この壁紙がダウンロードされたフォルダを Mac の壁紙フォルダに設定します。Mac の [システム環境設定]-[デスクトップとスクリーンセーバー] を開き、`$HOME/Pictures/⁨bing-wallpapers⁩` フォルダを壁紙フォルダに設定してください。

これで Mac の壁紙が Bing Desktop の美しい壁紙になりました。でも、これだけでは Mac の壁紙は、毎日最新の Bing Desktop の壁紙に更新されません。そのため、 ⁨bing-wallpaper が用意してくれている定期実行用スクリプトを設定します。

## Bing Desktop の定期的実行
bing-wallpaper は、 `bing-wallpaper.sh` を定期的に実行するためのスクリプトや設定ファイルを Tools フォルダの中に用意してくれています。 Mac は スクリプトの定期実行に launchd を使う流れなので、launchd 用の設定ファイルを修正し、launchd に設定ファイルを登録します。

launchd 用の設定ファイルは、`Tools/com.ideasftw.bing-wallpaper.plist` です。テキストエディタで、１０行目のパスを正しいパスに修正します。

```sh
10 :			<string>/Users/username/Pictures/bing-wallpaper.sh</string>
```

コマンドで修正する場合は、以下になります。

```bash
# コマンドで修正する場合、 bing-wallpaper.sh がある場所で実行すること
sed -i ".bak" -e "s#/Users/username/Pictures#$(pwd)#g" Tools/com.ideasftw.bing-wallpaper.plist
```

修正した設定ファイルを launchd のフォルダに格納し、設定ファイルの load と start を行います。

```bash
# bing-wallpaper.sh がある場所で実行すること
cp Tools/com.ideasftw.bing-wallpaper.plist $HOME/Library/LaunchAgent
launchctl load $HOME/Library/LaunchAgents/com.ideasftw.bing-wallpaper.plist
launchctl start com.ideasftw.bing-wallpaper.plist
```

これで、 Mac の壁紙は毎日最新の Bing Desktop の壁紙に更新されます。また、 launchd は、スリープ中に壁紙更新時刻が過ぎていたら、スリープ復帰後に壁紙を更新してくれます。 launchd すごい！