Terminal.app もやっつけてもらを

幾らテンポラリで使うアイテムとは言え,開いた時にガッカリしたくないので,Terminal.app もキメとこ,と思い立ちました.

f:id:wooweezoowee:20170208035905p:plain:w300

結果,こんな感じとなりました.;

readonly DIR_TEMP="$HOME/temp/"

url_is=http://cocopon.me/app/vim-iceberg/Iceberg.terminal
profile_is=$(basename "${url_is}" .terminal)

curl "${url_is}" \
  -o "${DIR_TEMP}/$(basename ${url_is})"

open "${DIR_TEMP}/$(basename ${url_is})"
sleep 1

defaults delete com.apple.Terminal "Default Window Settings"
defaults write com.apple.Terminal "Default Window Settings" -string "${profile_is}"
defaults delete com.apple.Terminal "Startup Window Settings"
defaults write com.apple.Terminal "Startup Window Settings" -string "${profile_is}"

# # check
# echo Default: $(defaults read com.apple.Terminal "Default Window Settings")
# echo Startup: $(defaults read com.apple.Terminal "Startup Window Settings")

# killall Terminal

で良いと思うのですが.

と言うのも実は前の週の平日中,このコードで中々上手く行かなくて日々夜な夜な幾度とない試行錯誤をしていたのですが,その週末になって何故か 100% の確率でガッチリ設定できるようになったんです....って何こうゆのっ*1

そういう意味で,何かちょっと気持ち悪くて自信なかったりします.スミマセン.

でも今の所,イケてるようですが,えぇ.

成功という結果を,こんなにどんよりと迎えるのって,初めてじゃないかしら.

でもな,と思うとこあって.

“運任せ” 的なのやっぱ何か気もてぃわるい...

だったらいっそのこと,皆消してしまえばいー

と考えた.

えぇ,実はその “追い詰められ感” はここまでのレベルに達していたこと,敢えて残しておこうと思います.

駄目だった時は,何回やっても “Basic” のままで*2,それに加え,かなりの割合で “Grass” がデフォルトになってしまう*3...

試行錯誤中のある時,このケースをふと思い出し.

「だったら “Grass” 消せば良くね?」

からの,もっと強硬に,その他要らないテーマは全部消してしまう.そうすることで “デフォルト” がズレ迷う要因自体を断てばよろし,と.

極端な話,使いたいテーマ,一つだけであれば自ずとそれに “デフォルト” が付く...?

こゆ中央突破、大好きっ笑

Terminal.app がデフォでもっているテーマ,消してしまえ

で,試しました.

“Pro” だけは残す(笑*4

結果.;

#!/bin/bash -eu

readonly DIR_TEMP="$HOME/temp/"

# plistbuddy
readonly PB=/usr/libexec/PlistBuddy
readonly PLISTIS=${HOME}/Library/Preferences/com.apple.Terminal.plist


IFS_ORG=$IFS
IFS=$'\n'

# 使いたいテーマを取得
url_is=http://cocopon.me/app/vim-iceberg/Iceberg.terminal
profile_is=$(basename ${url_is} .terminal)

curl "${url_is}" \
  -o "${DIR_TEMP}/$(basename ${url_is})"

# 不要なテーマを消すwww
for key in $(${PB} -c "print: 'Window Settings'" ${PLISTIS} | \
                       grep -aE "name =" | \
                       awk -F'=' '{name_is=$2; sub(";","",name_is); gsub(/^[[:space:]]*|[[:space:]]*$/,"",name_is); \
                       print name_is}')
do
  if [ "$key" != "Pro" ]; then
    # echo "remove the key: ${key}"
    ${PB} -c "Delete :\"Window Settings\":\"${key}\"" ${PLISTIS}
  fi
done
IFS=$IFS_ORG

# 使いたいテーマを適用
open "${DIR_TEMP}/$(basename ${url_is})"
sleep 1

# デフォルトの設定
defaults delete com.apple.Terminal "Default Window Settings"
defaults write com.apple.Terminal "Default Window Settings" -string "${profile_is}"
defaults delete com.apple.Terminal "Startup Window Settings"
defaults write com.apple.Terminal "Startup Window Settings" -string "${profile_is}"

# # チェック
# echo Default: $(defaults read com.apple.Terminal "Default Window Settings")
# echo Startup: $(defaults read com.apple.Terminal "Startup Window Settings")


# killall Terminal

Terminal.app を再起動.

結果,こうなります.

f:id:wooweezoowee:20170208035035p:plain

スッキリ.

何か,「ざまぁみろ」って感じ笑

はい,おしまい.

*1:後で分かったことなのですが,*.terminal ファイルを開いた時,上のコードでいう ‘open…’ の処理の後の一拍が何気に胆っぽいです.この ‘sleep 1’ の有る無しで確度がかなり変わるようです.これを知った時は力抜けましたよ,正直.

*2:それでも,たまに成功する時もあったりするものだから,本当に困るし,何より疲れる.

*3:このビビッドな緑の色合いってのが,これまたとても苛つくのよね.こんなの使う人いるんかい,と.

*4:これ,多くの人は共感していただけるだろうと思います笑