開発環境としてのMac OS X Leopard
なかなかrootにならせてくれない、ハードウェアを選ばせてくれない、設定ファイルをviでいじらせてくれないなど、不自由なUNIX : Mac OS Xですが、それ故の自由が何物にも代え難い今日この頃。Leopardになってcron+pdumpfsの仕事まで持って行かれてしまいました。
前回のTiger版カスタマイズメモに引き続いて、Mac OS Xのカスタマイズを書いておこうと思います。
Terminal.app
タブ機能が実装されたりssh-agentがKeychainと統合されたりと、Leopardで驚異的なアップデートが行われたターミナル周りですが、まだまだ改善できる余地があります。問題は以下の3点。
- HomeキーとEndキーが使えない
- 色が見にくい
- ショートカットキーが使いにくい
まずHomeキーやEndキーですが、これは環境設定で変更できます。Terminal.appの環境設定の「キーボード」タブで、以下の設定をすればOKです。
キー | 修飾キー | 操作 | 操作の内容 |
end | なし | 文字列を下記のシェルへ送信 | \033[F |
home | なし | 文字列を下記のシェルへ送信 | \033[H |
(どうでもいいですが「文字列を下記のシェルへ送信」は「下記の文字列をシェルへ送信」の誤訳ですよね…)
LeopardになってTerminal.appの設定のインポート/エクスポートができるようになりました。私の設定を↓ここに置いておくので、これをインポートしてもOKです。
続いて色が見にくい問題ですが、背景色や文字色は簡単に変えられるのに、なぜかANSI Colorは変えられません。Tigerでお世話になっていたTerminalColorsは、現時点ではLeopardのTerminal.appには対応していません。
そんなところに、Leopard版Terminal.appでもANSI Colorを変えられるようにするプラグインを開発された方が現れました!おかげさまでTerminalColoreopardをインストールすれば解決です。
個人的にはRedを(255,50,20)、Blueを(110,110,255)にするのがいい感じ。
最後にショートカットキーが使いにくい問題ですが、これはMac OS Xの環境設定で設定を変えてやればOKです。
環境設定(Quicksilverで起動するにはSystem Preferences.app)の「キーボードとマウス」の「キーボードショートカット」タブで、Terminal.app用の設定を追加します。「アプリケーション」に「ターミナル」を選択、メニュータイトルに「前のタブを選択」、キーボードショートカットに「Shift + ←」を入力、というような流れでカスタマイズできます。
Terminal.app以外のアプリケーションでもカスタマイズできて、たとえばSafariで検索窓にフォーカスを持って行くショートカットは押しにくくてサッパリですが、ここでカスタマイズできます。
MacPortsをホームディレクトリにインストールする on Leopard
LeopardでMacPortsをホームディレクトリに入れるには、↓このconfigureオプションでMacPortsをソースからビルドすればOKです。ユーザー権限でMacPortsが使えます。
$ ./configure --prefix=$HOME/ports --with-install-group=`id -gn` --with-install-user=`id -un` --with-tclpackage=$HOME/ports/tcl $ make $ make install
それから~/.bash_profileでPATHとDYLD_FALLBACK_LIBRARY_PATHを設定しておきます。
export DYLD_FALLBACK_LIBRARY_PATH=$HOME/self/usr/lib:$HOME/self/lib:$HOME/ports/lib export PATH=$HOME/ports/bin:$PATH
GNU coreutils派な方は、まずcoreutilsパッケージを+with_default_names付きで入れておくと吉です。
$ port selfupdate $ port install libiconv +enable_cp932fix $ port install coreutils +with_default_names $ port install findutils +with_default_names $ port install wget $ port install nkf $ port install ruby $ port install rb-rubygems $ port install python24 +puredarwin $ port install mercurial $ port install subversion $ port install -f svk
MacPortsをホームディレクトリにインストールすると、たまにインストールに失敗するパッケージがあります。だいたいはパーミッションの設定に失敗しています。イントールが中断した時点で↓このコマンドを実行して、再度port installするとうまくいくことがあります。
find ~/ports/var/macports/sources/rsync.macports.org/release/ports/lang/python24/work/destroot/Users/`id -un`/ports/ -gid 0 -exec chgrp `id -gn` {} + # lang/python24のところをパッケージ名に置き換える
ディスプレイを閉じた状態でノート型Macを使う
ご存じの方も多いかと思いますが、MacBookやMacBook Proは外部ディスプレイとキーボードをつなげて、フタを閉じた状態で使うことができます。正式名称は「リッドクローズドモード」と言うらしいです。(Mac OS X 10.5 Help 「ディスプレイを閉めた状態でノート型コンピュータを使用する」)
私は自宅でも手元のマシンにはMacBookを使っていて、外部ディスプレイ+キーボード+ペンタブレットで使っています。帰ってきたらフタを閉じたままのMacBookにもじゃもじゃとケーブルをつないで、そのまま作業を再開できます。UIは常に見慣れたMac OS Xで、ブックマークやターミナルの設定などを同期する必要もなく、至極快適です。
「ダウンロード」「ライブラリ」を「Downloads」「Library」にする
Finderでディレクトリを移動するとき、ホームディレクトリにある「ダウンロード」や「ライブラリ」ディレクトリは名前が日本語なので、キーボードで移動できなくて困ります。これはローカライズされたディレクトリに入っている、.localizedファイルを削除するか移動すればOKです。ただし有効にするには再ログインが必要なので注意。
$ mv ~/Downloads/.localized{,.disabled} $ mv ~/Library/.localized{,.disabled}
fcdとopen .
fcdが便利です。
Finder で選択されている場所に cd する(ターミナルの working directoryを変更する)シェルスクリプト(中身はほとんどAppleScript)です。
ターミナルで 「fcd」とタイプするだけで、Finder で選択されている場所に簡単に移動できます。
fcdの逆、つまりターミナルで現在いる場所をFinderで表示する場合は、open .でいけます。~/.bashrcにalias here="open ."と書いておくと、得も言われぬ快感に浸れます。
pbcopy/pbpasteでUTF-8を使う
pbcopyは標準入力をクリップボードに貼り付けてくれる便利なコマンドなのですが、デフォルトだとShift_JISしか通してくれません。そこで~/.bash_profileに↓を書いておくと、UTF-8が使えるようになります。(pbcopy で UTF-8 テキストを扱う。より)
export __CF_USER_TEXT_ENCODING=${__CF_USER_TEXT_ENCODING/:*:/:0x08000100:} #export __CF_USER_TEXT_ENCODING=0x1F6:0x08000100:14
↓こんなaliasを~/.bashrcに書いておくのも良いかもしれません。だいたいどんな文字コードでもclipでクリップボードに貼り付けられます。
# 標準入力をUTF-8に変換してpbcopy alias clip="nkf -w | pbcopy"
screencaptureコマンド
Command + Shift + 3でスクリーンキャプチャが取れるのですが、3だったか4だったかすぐ忘れるし、ウィンドウ単位のスクリーンキャプチャを取りたかったりもします。Grab.appもいいですが、screencaptureコマンドが素敵です。Mac OS Xに標準で入ってます。↓こんな感じで使えます。
$ screencapture -w -i window.png
Multicast DNS & DNS-SD
いわゆるZeroconfとかBonjourと呼ばれる代物です。内向きDNSを立てなくても、「ホスト名.local」という名前でLAN内で名前解決ができます。これが便利で、メンテナンスはいらないし、「192.168....」などとIPアドレスを打ち込む必要もありません。
LinuxやFreeBSDではAvahiというフリーな実装があって、Multicast DNSに応答できます。それからnss-mdnsを入れると名前解決もできるようになります(/etc/nsswitch.confでMulticast DNS!)。
WindowsにはAppleからBonjour for Windowsが配布されています。
我が家のLANはVMも含めて全てのマシンがMulticastDNSに対応していて、とても快適です。
BonjourBrowserを使うとLAN内のMulticast DNS対応マシンを一覧できます。
Mac固有のコマンドを調べる
pbcopyやscreencaptureコマンドなど、Mac OS Xには固有のコマンドがいろいろありますが、/usr/share/man/man1を"Mac OS X"という文字列でgrepすると他にも見つかります。ただmanpageはgzipで圧縮されているので、grepの代わりにzgrepを使う必要があります。
$ zgrep -l "Mac OS X" /usr/share/man/man1/*
その他メモ
Tips他
- UNIX 狂が使う Mac OS X (Leopard編)
- さらにUNIXなLeopard
- Inside Leopard: X11.appと日本語環境の問題
- LeopardでのX11
- XQuartz
- X11.appのアップデート
- QLPlugins
- QuickLookプラグインまとめ
- QuickLook Plugins List
- QuickLookプラグインまとめ
アプリケーション
- Quicksilver
- Quicksilver。
- Growl
- Growl。
- KeyRemap4MacBook
- カーネルに潜り込んでキーマップをカスタマイズ
- PCKeyboardHack
- Windows 用の日本語キーボードにある「無変換」「変換」「ひらがな」キーを Mac で使えるようにする
- Witch
- アプリケーション単位ではなくウィンドウ単位でウィンドウを切り替えられるようにする
- 日めくり
- メニューバーに日めくりを表示してくれる
- CotEditor
- GUIエディタ
- Ensemble2
- MacなRSSリーダー
- Adium
- IMクライアント
- Colloquy
- IRCクライアント
- LimeChat for OSX
- IRCクライアント
- Cyberduck
- FTPクライアント
- CleanArchiver
- キレイに圧縮してくれるアーカイバ
- The Unarchiver
- いろいろ対応しているアーカイブ展開ソフトウェア
※2008/2/7: メモ追加, 文章を少し修正,「Mac固有のコマンドを調べる」を追加