« 2010年5月 | トップページ | 2010年9月 »

2010年8月31日 (火)

ネットワーク上にWindows 7マシンが表示されない

Windows XP や Mac OS X Snow Leopard の「ネットワーク」フォルダに Windows 7 マシンが表示されない。もちろんワークグループ名を合わせる、LmCompatibilityLevel を 2 にするといった基本的な設定は行っている。その原因についてウェブ上で検索して調べてみたが、逆のケース、すなわち「Windows 7 に XP マシンが表示されない」というケースはいくつも見つかったのに件のケースは見当たらなかった。そのため、もう諦めモードに入りかけていた。

ところがさきほど、ふと思い立って Windows 7 マシン上に共有フォルダを一つ作ってみた(右クリック→プロパティ→共有ダブ)ところ、Windows XP マシンや Snow Leopard の「ネットワーク」に表示されるようになった。どうやら、そういう仕様になったらしい。Windows XP だと、共有フォルダを一つも設定していないマシンでも「ネットワーク」内に表示されるのだが、Windows 7 はそうではないようだ。

(9月1日追記)
Windows 7 マシンに共有フォルダを設定していなくても、「共有の詳細設定」で「パスワード保護共有」を「無効」に設定しただけでも表示されるようだ。

2010年8月19日 (木)

Spacesの設定ファイル

Spaces の設定を保存しておこうと思って ~/Libraries/Preferrences フォルダ内に「com.apple.spaces.plist」とかいうファイルがないか探してみたが見つからなかった。

試行錯誤したところ、Spaces の設定は com.apple.dock.plist というファイルに保存されていることがわかった。Spaces のオン/オフは workspaces、各ワークスペースにどのアプリケーションを割り当てたのかは workspaces-app-bindings というエントリーに記述されている。

2010年8月14日 (土)

テキストエディットでShift JIS以外のテキストをダブルクリックで開けるようにする

Leopardのテキストエディット.appの仕様メモで述べたように、Leopard と Snow Leopard 上でダブルクリックによってテキストエディット.app で開くことができるテキストファイルは、「Shift JISのもの」、もしくは「BOM付きUTF-8」、もしくは「Leopard か Snow Leopard 上のGUI アプリで編集した、ファイルタイプがついていない」もの(Shift JIS、UTF-8、EUC、JISいずれも可)のみである。

後者の場合、GUI アプリで保存する際に「com.apple.TextEncoding」というメタデータがつけられるので、テキストエディット.app がそれを参照することで開くことができるものと思われる。

そこで、もし Tiger や Windows や Linux上で作成したテキストファイル、もしくは (Snow) Leopard 上のコマンドラインプログラム(Vi、Emacs など)で作成したテキストファイルを (Snow) Leopard 上でダブルクリックによってテキストエディット.app で開けるようにしたい場合、上記のメタデータを付け加えればよいということになる。

以下に、hogehoge.txt という UTF-8 テキストファイルに UTF-8 のエンコーディングのメタデータを付ける例を掲げる。

xattr -w com.apple.TextEncoding "utf-8;134217984" hogehoge.txt

クォーテーションマークは必須(セミコロンがシェルスクリプトの切れ目として認識されてしまうため)。

EUC-JP の場合、クォーテーションマークの間の部分は euc-jp;2336 になる。
JIS (ISO 2022-JP) の場合、クォーテーションマークの間の部分は iso-2022-jp;2080 になる。

Linux 上で作成した大量の EUC-JP のテキストをダブルクリックによってテキストエディット.app で開けるようにしたい場合、一つのフォルダに保存しておいて

xattr -w com.apple.TextEncoding "euc-jp;2336" *.txt

とすれば一括でメタデータをつけられるだろう。

xattrコマンドでクリエータタイプとファイルタイプを変更する

xattr コマンドで -w によって com.apple.FinderInfo の内容を変更すればクリエータタイプとファイルタイプを変更できそうだと考えたが、いかんせん xattr コマンドには詳細なマニュアル(man)が用意されておらず(Max OS X のコマンド群は意外なほどマニュアルが整備されているのだが xattr は例外のようだ)、-h で参照したヘルプ程度ではどのようにして書き込めばよいかわからなかった。

試行錯誤したところ、com.apple.FinderInfo に書き込むには、「書き込む内容は16進法でなければならない(つまり「-x」が必要)」ことと「必ず32バイト単位でなければならない」ことがわかった。

以下に「hogehoge.txt」というファイルのファイルタイプを『TEXT』、クリエータタイプを『cEd1(CotEditorのクリエータ)』に変更する例を掲げておく。

『5445...』で始まる文字列のうち、最初の『54455854』が『TEXT』、次の『63456431』が『cEd1』の16進法表記である。残りは0が48文字並んでいる(計64文字=32バイト)。

注意:上に掲げた例では拡張子表示の有無やラベルなどの他の Finder 情報がすべて消えてしまう。それらを残したい場合どのようにすればよいのかはまだ詳しくはわからないが、拡張子非表示のファイルやラベルを付けたファイルをxattr -l コマンドで表示してみたところ、10バイト目で指定しているようだ。

なお、16進法は「アスキーコード表」を参考にさせていただいた。

(2011年8月21日更新)

« 2010年5月 | トップページ | 2010年9月 »