Terminal.app もやっつけてもらを
幾らテンポラリで使うアイテムとは言え,開いた時にガッカリしたくないので,Terminal.app もキメとこ,と思い立ちました.
結果,こんな感じとなりました.;
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怒
そういう意味で,何かちょっと気持ち悪くて自信なかったりします.スミマセン.
でも今の所,イケてるようですが,えぇ.
成功という結果を,こんなにどんよりと迎えるのって,初めてじゃないかしら.
*1:後で分かったことなのですが,*.terminal ファイルを開いた時,上のコードでいう ‘open…’ の処理の後の一拍が何気に胆っぽいです.この ‘sleep 1’ の有る無しで確度がかなり変わるようです.これを知った時は力抜けましたよ,正直.
`expect` で絞めていただこ - shellscript の実行途中で求められるパスワード入力を自動で
と言うお話.
設定用 shellscript を走らせていて,途中,度々求められるメールやパスワードの入力がどうにかならないものか,と思うようになってきました.
このために結局マシンの前を離れられない.
何のためにスクリプト用意して作業を自動化しているのか,
煩雑な作業を shellscript に任せて自動化してやっほい,という企みもこれではほっとんど意味がないじゃない.
...と彷徨い,ほどなくして expect
というコマンドがあることを知ります.
そんなとき、毎回パスワードを入力するのは面倒!(略)という問題を解決するのがexpectというコマンドです。
コマンドの返答を識別して次の入力を自動的に行うコマンド
今回これを使ってみたので,備忘録.
% sw_vers ProductName: Mac OS X ProductVersion: 10.12.2 BuildVersion: 16C67続きを読む
やっぱつらいのでやってもらを.- iTerm2 編
は?もしかしてシリーズ化とかイキッてるの?,と睨まれても仕方ない感じですが,ホントそんなことありません,の(笑,またまた os のクリーン再インストールに端を発したイベントの話.*1
実はインストールは homebrewcask で楽できてはいたのですが,設定の方は相変わらず手作業でした.
これが結構煩わしいもので,いつも,ついつい後回しにしてしまう.
そして忘れた頃に必要になって起動した時,悲しい思いをし,結局手で設定をする.でも,やっぱり面倒なのには変わりなく,尚且つさっさと取掛りたいからヤッツケな設定で切り抜ける.
で,また放置...
そんなのを性懲りもなく繰り返してました.
いけません.
これを断ちたいと思います.
*1:しつこいな.
`plutil` が json 形式にコンバートしてくれないっ、てゆのは
やりたかったこと。;
plutil -convert json ~/Library/Preferences/com.googlecode.iterm2.plist \ -o ~/com.googlecode.iterm2.plist.json
plutil
コマンド使って plist
ファイルを json 形式にコンバートして頂こうとお願いしたのですが、応えはエラー。;
~/Library/Preferences/com.googlecode.iterm2.plist: invalid object in plist for destination format
xml へは出来るのに。;
plutil -convert xml1 ~/Library/Preferences/com.googlecode.iterm2.plist \ -o ~/com.googlecode.iterm2.plist.json
一応...;
% plutil -lint ~/Library/Preferences/com.googlecode.iterm2.plist
~/Library/Preferences/com.googlecode.iterm2.plist: OK
ですよね。
そんなんなか、目にしたのがこんな記載。;
One complication with this is that some Plist data types cannot be converted by plutil. The workaround I found was to do some pre-processing on the plist before passing it to plutil. Specific to the plist that I’m working with, I had to replace both and
tags with .
「あ。」(察し
またあんたかい...つか潰すけどね,[caps lock]
以前にもレポートしましたけど,どうやら,また仕様を変えたようで.
役立たずの [caps lock] キーを control キーに変更する shellscript のお話.;
keyboard_vid=$(ioreg -n 'Apple Internal Keyboard' -r | grep -E 'idVendor' | awk '{ print $4 }') keyboard_pid=$(ioreg -n 'Apple Internal Keyboard' -r | grep -E 'idProduct' | awk '{ print $4 }') keyboardid="${keyboard_vid}-${keyboard_pid}-0" # CapsLock(30064771129) -> Control(30064771296) defaults -currentHost write -g com.apple.keyboard.modifiermapping.${keyboardid} -array-add ' <dict> <key>HIDKeyboardModifierMappingDst</key> <integer>30064771296</integer> <key>HIDKeyboardModifierMappingSrc</key> <integer>30064771129</integer> </dict> '
これで [caps lock] キーは control キーとして振る舞うようになりました.
思うに,設定の反映は killall cfprefsd
とかは暖簾に腕押し.再起動必要みたい*1.
しかし同じバージョン内で,こんな部分にまでも手を入れてくるもんなんですね.何だかな...
あ、あと知ってました?
上にあるように ‘’ 内で改行やインデント入れて記述できるんですね。エスケープ \
とか不要みたい。うん見通し良くて実に気持ちいい。
*1:
これが実にめんどくさいっっ.
何か方法ないもんですかね.