iPhone/iPad開発をいつもの開発環境に近づける
普段、LinuxとWindowsを使っているユーザがMac OS Xを使うときに便利な設定をまとめます。
UNIX, Windows, Mac OS X
私は普段Linuxのデスクトップを使っており、アプリ開発やOffice文書の作成ではWindowsを使っています。両刀使いは結構苦痛でした。原理主義者ではありませんので、全てのユーザビリティをどちらかに合わせたい、ということではないのですが、どうしても慣れない、あるいはどちらかのやり方が圧倒的に便利だ、というものだけは変更したくなります。
ウィンドウズは、各種ツール(レジストリの書き換えや、XKeymacs、Cygwin、VirtuaWin、xyzzy)によって、今では好き嫌いなく使えるようになりました。iPhone/iPadの開発でMac OS Xを使い始めましたので、同じように使い易い環境を構築したいと考えています。基本的にMac OS XのベースシステムはBSDなので、UNIXに近い環境として使えることが期待できます。
ハードウェア
コンピュータ本体はApple純正しか選択肢がありませんが、ディスプレイ、キーボード、マウスはウィンドウズPCのもので支障ありません。Macの特殊キーは「システム環境設定」→「修飾キーの設定」にて設定可能で、(コマンドキー) ← (ウィンドウズキー)、(オプションキー) ← (左Altキーに)なります。また、左ControlとCapsLockの入れ替え設定もあります。キーバインディングは概ねUNIX風で、コマンドキー修飾がWindows風ショートカットになります。キーマップ入れ替えソフトもあるようですが、これは慣れてしまったほうが無難そうです。なお、コピーペーストするにはマウスで選択しただけでは駄目で、Windows風にコマンド-Cを押さないとなりません。
デスクトップ
仮想スクリーンは"Spaces"で基本的な機能をカバーすることができて満足です。但し、一覧を表示するF8が時々効かなくなります。どうしてでしょうか?
しかし、ウィンドウの挙動に満足がいっていません。XMouse機能(マウスポインタが入ったウィンドウにフォーカスが移ること(focus-follow-mouse)と、アクティブウィンドウが自動的に表示スタックの一番上に表示される(autoraise))を使えないからです。随分捜してみて、アメリカ人は大分議論してるのを見ましたが、結局のところ実現できていないようです。これは残念。
なお、Focus-Follow-MouseだけでしたらTerminalでは動作するようです。実際、Terminalで動けば75%はOKです。
defaults write com.apple.Terminal FocusFollowsMouse -string YES
こちらを参照して下さい。
また、ウィンドウリサイズや移動にマウスショートカットを設定するやり方も不明です。特にリサイズは元々右下枠にしか引っぱれるところがなく不便です。(UNIXでは設定にも依りますが、Alt-右ボタンで移動、Alt-中ボタンでリサイズ)
アプリケーション
元々入っている/usr/bin/emacsがウィンドウ無しモード("-nw")でしか上がらないのは不便なので、ここからインストールします。他に同様のGUIアプリとして、Firefox、Gimpなどを入れています。Gimpはそのままでは文字化けしてしまいますので、ここを見て直します。また、iTunesはコーデックが少なくて見られないファイルが多いですので、VLCをインストールすると良いでしょう。ほぼ何でも再生できるようになります。
日本語入力: SKK使いの方には、素晴しくデザインがカラフルで格好良いAquaSKKを使うことができます。"AquaSKK統合"モードにすると、skkinputやSKKIMEとほぼ同様の使い勝手になります。
端末エミュレータ
なんと言っても使い易いコマンドライン環境がないと話になりません。"ターミナル"が使えるのですが、シェル(bash)の設定はデフォルトのままですので、追加設定をします。基本的に他の環境の.bashrcをコピって環境を合わせれば大丈夫なのですが、入っているbashは、起動時にbashrcを読み込みませんので、.bash_profileに以下のように設定します。また、ここでは、portを使う都合で、PATHとMANPATHも設定しておきます。
本当は使い分けがある(profileはlogin shellで一回だけ読まれるため環境変数を設定し、bashrcはshell起動時に読まれるのでShell変数やaliasを設定する)訳ですが、全部.bash_profileに書き込んでしまっても良いかもしれません。
#-- command exec path and man path
export PATH="/opt/local/bin:/opt/local/sbin:${PATH}"
export MANPATH="/opt/local/share/man:${MANPATH}"
#---------- load shell run configuration
[ -f ${HOME}/.bashrc ] && . ${HOME}/.bashrc
また、アプリのところでインストールしたGUIアプリ(Cocoaアプリというんでしょうか)は、普通の実行パス上にはありません。これを端末から実行するためには、例えば以下のように.bashrcに記述しておきます。
function Emacs() { open -a /Applications/Emacs.app/ $* & true; }
alias gimp='open -a /Applications/GIMP.app/'
上記の設定でEmacsのウィンドウ版が起動できるようになります。実際にはemacsclientのような動作(ウィンドウは一個だけ上がり、Emacsとして起動すると編集対象だけ入れ替わる)になってしまいますが、改善方法は私には分りません。
"Port"というパッケージ管理システムがあるようなのでここから.dmgを拾ってきてインストールします。これで管理されるアプリは/opt/local/の下にインストールされるようです。nkf、wget、netpbmなどスクリプトで使うものをインストールしました。なお、管理者アカウント(root)になるには、"sudo su -"でOKですが、rootのパスワードを設定してしまっても良いでしょう。
# port install wget
# port install nkf
# port install netpbm
また、ファイル捜しユーティリティのlocateはありますが、肝心のデータベースが空ですので、構築します。
# /usr/libexec/locate.updatedb
またまた、perlは入っていますが、Jcode.pmとかのライブラリは入っていません。cpanは入っているので、rootでcpanを起動、インストールします。
ファイルシステム
自分のホームの下は、Finderで日本語名前が見えていても、アスキー名前が付いているようです。(Windows Vista以降のWindowsと同じ)。「書類」は"Documents"、「ダウンロード」は"Downloads"でアクセス可能です。
また、ネットワークファイルシステムは、ウィンドウズ共有(SMB)が使えます。/Volume/"sambaname"にマウントされます。確認はしていませんが、automountが使われているんでしょうか。