macOS 古い情報

macOS Sierraは野良アプリが動かないという説があるが,従来通り,右クリック>開くで実行できる(Gatekeeperの機能が強化されたmacOS 10.12 Sierraで未署名のアプリを起動する方法参照)。Homebrew を使うには,コマンドラインツールをインストール/アップデートし,/usr/local の持ち主を自分にする(新しいものは /usr/local が root の持ち物でも大丈夫)。

El Capitan/Sierraは /usr などシステム領域が管理者でも書き込めなくなる。これは SIP (System Integrity Protection) という機能(LinuxのSELinuxみたいなもの)で,これがオンなら csrutil status と打ち込めば System Integrity Protection status: enabled. という答えが返ってくる(How to fix permission issues on Homebrew in OS X El Capitan?)。したがってEl Capitanに更新する前に /usr/local を作っておくべきである。MavericksからYosemiteに更新するときは /usr/local を別の場所に移動しておくとインストールの時間が大幅に短くなったが,今回は /usr/local は残しておかねば後で面倒になる。

YosemiteやEl Capitanでは,最大化ボタンの動作がフルスクリーン表示になった。従来の動作にするには option キーを押しながら最大化ボタンをクリック。

参考になるサイト:

移行アシスタント

古いMacから新しいものにファイルや設定を移行するには アプリケーション > ユーティリティ > 移行アシスタント を使う。これは新品のMacを立ち上げる際に起動することができるし,後で実行することもできる。元のMacよりOSのバージョンが古ければアップデートもしてくれる。

元のMacでも移行アシスタントを起動する必要がある。どちら側でも,すべてのアプリケーションが終了してしまうので,注意を要する。移行の必要のない外部ディスクは外しておく。

元のMacに外部ディスクへのシンボリックリンクがあれば,容量チェックの際にはリンク先の容量が現れないが,実際にコピーを始めるとリンク先のファイルまで移行しようとするので,外部ディスクは外しておかねばならない(シンボリックリンクは後で張り直す)。

ウイルス対策ソフト

ウイルス対策ソフトを入れるリスクと入れないリスクとを比較して,入れるかどうか考える。コンピュータに十分詳しい人なら,入れないほうがリスクが低いであろう。

ときどき「システム環境設定」の「ユーザとグループ」の「ログイン項目」や,(/System)/Library/Launch* や ~/Library/Launch* の中を見て,変なものが自動起動になっていないか調べるとよいかもしれない。

システム環境設定

「アクセシビリティ」で「透明度を下げる」や「視差効果を減らす」のチェックを外しておくと,動作が多少軽くなるかもしれない。

「セキュリティとプライバシー」で適切な設定をする。具体的には,「一般」では「スリープ解除/スクリーンセーバ解除にパスワードを要求 開始後:すぐに」,「自動ログインを使用不可にする」が推奨。ダウンロードしたアプリケーションの実行許可は,絶対に「すべてのアプリケーションを許可」にしない。「FileVault」は移動して使うノートパソコンでは必須。「ファイアウォール」は入にする。

「ユーザとグループ」で「ゲストユーザ」は「切」にする。自分以外に「管理者」を作り,自分がふだん使うアカウントの権限は「通常」にする。これにより,システムに改変を要するときは管理者のIDとパスワードの入力が求められるので,うっかり危ないことをするおそれが減る。

UNIXユーザ向け:自分を「通常」のユーザにすることにより,自分が sudoer ではなくなるので,いったん管理者に su してから sudo することになる(root に su するのは避ける)。

ディスクユーティリティ

OSをアップデートした後は,Finder→ユーティリティ→ディスクユーティリティで,ディスクのアクセス権を修復するべきだという説がある。確かに,いろいろパーミッションの間違いを直してくれるが,それが必須かというと,よくわからない。

NTFSドライブ

USBにNTFSドライブを接続すると,マウントできないので,「セットしたディスクは、このコンピュータで読み取れないディスクでした。」というメッセージが出て,[初期化][無視][取り出す]と聞いてくる([取り出す]がデフォルト)。[無視]をクリックし,ディスクユーティリティでそのディスクを探せば disk4s1 のような名前が見つかる(昔のディスクユーティリティなら「情報」で「BSD装置ノード」を調べる。例えば disk4 だとすると,おそらく disk4s1 が望みのパーティションである)。書き込むのはサポート外なので,リードオンリーでマウントする。

mkdir ~/mnt
sudo mount -t ntfs -o rdonly /dev/disk3s1 ~/mnt

ユーザのパスワードを聞いてくるので答える。あるいは /etc/sudoers に次のように書いておくといちいちパスワードを要求されない:

okumura ALL=(ALL) NOPASSWD: /sbin/mount
okumura ALL=(ALL) NOPASSWD: /sbin/umount

いちいち面倒な場合は /etc/fstab に書いておくという方法も使えるかもしれない。うまくいけば書き込むこともできるかもしれない(How to Write to NTFS Drives on a MacHow to write to NTFS Drives in macOS High Sierra 等参照)。

Finder

Finderの「環境設定」の「詳細」で「すべてのファイル名拡張子を表示」をオンにする。El Capitan以降では「確実にゴミ箱を空にする」はなくなった。完全消去コマンド /usr/bin/srm もなくなった。そもそもSSDの時代に完全消去は無理。それよりFileVaultを使って少なくともSSDは暗号化する。暗号化されていれば捨てても大丈夫。あと,rm コマンドのオプション -P でファイル削除の際に3回上書き(FF 00 FF)される。

⌘ shift . (コマンド+シフト+ピリオド)で隠しファイルを含めたすべてのファイルが表示できる。

あとは好みで適宜設定。例えば「表示」で「パスバーを表示」にすると便利。

Safari

Safariの環境設定「一般」で「ダウンロード後、“安全な”ファイルを開く」のチェックを外す。「プライバシー」で「CookieとWebサイトのデータ」を「アクセス中のWebサイトのみ許可」(ただしSafariのバージョンによってはFacebookのログインに失敗する),「Webサイトによる位置情報サービスの使用」を「確認せずに拒否」とし,「Webサイトによるトラッキング」は「Webサイトにトラッキング停止を求める」にチェック。

SafariStandを入れると便利。特に便利なのはダウンロードフォルダを日付で分類できること。SafariStandを動かすにはEasySIMBLを使う。→EasySIMBLが使えなくなったのでオリジナルのSIMBLを使う。→El CapitanではSafariStandを断念。

Safariの「開発」メニューを出す:

defaults write com.apple.Safari IncludeDebugMenu -bool true

「開発」メニューには「WebGL を有効にする」オプションもある。

似たようなもので「Debug」メニューもある:

defaults write com.apple.Safari IncludeInternalDebugMenu -bool true

このメニューで「Disable Per-Tab Web Processes」にチェックを付けておくと,Safariが軽くなる。と思ったら,Yosemiteではここにあるような不具合のきっかけになるようだ。

SafariでPDFを開くときにどうするか。デフォルトでは標準のプラグインが使われるが,これでは日本工業標準調査会でJIS規格(セキュリティ保護されたPDF)が閲覧できない。Adobe (Acrobat) Reader (DC) のものに変える方法はここにある。具体的には,日本工業標準調査会サイトを開いた状態で,Safariの環境設定→セキュリティ→プラグインを許可→Webサイト設定で,左で「Adobe Reader」を選び,右に表示された www.jisc.go.jp を「常に許可」にする。「許可」「常に許可」ではAdobeのプラグインが,「確認」「開かない」ではAppleのプラグインが使われるようだ。

逆にAdobeのプラグインを外す方法は /Library/Internet Plug-Ins/AdobePDFViewer*.plugin を消すか移動する。

SafariでPDFを開きたくない:

defaults write com.apple.Safari WebKitOmitPDFSupport -bool true

上のコマンドで以前はPDFをダウンロードするようになったが,MavericksのSafariではPDFをテキストとして表示してしまう。

defaults write com.apple.Safari WebKitOmitPDFSupport -bool false

で元に戻すしかなさそう。

Twitterを使っているなら,履歴中で t.co リンクを展開する Detox も必需品。Mavericksでは不要。

プレビュー

Yosemiteのプレビューが重い。特にファイルサイズの大きなスキャンPDFを開いたときには,耐え難いほど重い。まだAdobe Readerのほうが軽い。代替策としてターミナルから qlmanage -p ファイル名 で開くと軽い。

プレビューでPDFファイルを開いたときなど,不用意にクリックしただけで「編集済み」になってしまうことがある。気づかないでいると,閉じたときに編集済みバージョンが上書き保存されてしまう。「システム環境設定」→「一般」で「書類を閉じるときに変更内容を保持するかどうかを確認」をオンにしておけば,不用意に更新した状態を保存してしまうことが避けられる。

間違えて編集してしまったなら,保存する前であれば「ファイル」→「バージョンを戻す」(あるいはcommand-Z)で戻す。保存してしまっても,バージョン管理機能で元に戻すことができる。

真正性を保証しなければならないファイルはリードオンリー(chmod 444)にしておくのが安全。

自動保存もバージョン管理もやめたいときは,例えばプレビューなら次のように打ち込んでおけばよい。

defaults write com.apple.Preview ApplePersistence -bool no

詳しくは What happened to Save As?: Apple Support Communities などあちこちに載っている。

ターミナル

Finderよりターミナルをよく使う人種であれば,ターミナルの適切な設定が欠かせない。フォントは好みによる。昔は「Osaka-等幅」を使っていたが,Microsoft Office同梱の「Consolas」や,最近ではフリーフォントの Inconsolata が気に入っている。「テキストをアンチエイリアス処理」は必須。

コマンドラインツールなど

巨大なXcodeをインストールしなくても,gcc(clang)などのコマンドラインツールで十分なことが多い。コマンドラインツールは,(Xcodeをすでにインストールした場合はApplicationsフォルダのXcodeをゴミ箱に捨てて)xcode-select --install と打ち込めばよい。

コマンドラインツールの更新は,システム環境設定の「ソフトウェアアップデート」に出てくることもあるが,出てこないことが多いようなので,ときどき More Downloads for Apple Developers から最新の Command Line Tools for Xcode(ファイル名 Command_Line_Tools_for_Xcode_*.dmg)をダウンロードして実行する。

科学計算には GFortran も必要かもしれない。

Homebrew

今まで GnuPG,wget,Ghostscript,ImageMagick,ffmpeg などの必須ツールは自分で入れていた。しかし,これからは Homebrew を使うほうが,手間がかからず,共同研究者と環境を揃えやすい。ただ,Xpdf の pdftotext など一部のツールは自分でカスタマイズしたいので手で入れている(pdftotextの代わりになる Tika というツールも紹介していただいたがJavaが必要らしいのでまだ使えていない)。

~/.curlrc を設定している場合は一時的にリネームしておくほうが安全かもしれない。一般ユーザではなく管理者権限が行使できるユーザ(sudoer)で,ターミナルに

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

をコピペするだけである。上記スクリプトの中で sudo が実行され,管理者権限で /usr/local/{bin,etc,include,lib,opt,sbin,share,var,Cellar,Frameworks,Homebrew} が作られる。所有者は root ではなく上のコマンドを実行した人になるので,必要に応じて一般ユーザの持ち物に変更する。

/usr/local/bin を PATH の最初に置く。ときどき brew doctor と入力して,問題点を解決する。

あとは好きなパッケージを入れる:

brew install gpg wget ghostscript imagemagick ffmpeg nkf exiftool

ときどき brew upgrade する。うまくいかない場合はmac でbrew がおかしくなった(brew updateができない)のを解決が役に立つ。

Emacs

OSX - Yosemite で Emacs-24.4 をビルドして動かすEl Capitanで Emacs-24.5 をビルドして動かすmacOS で Emacs 25.2 をビルド などを参考にした。ここでは千葉大の山本光晴さんによるパッチを当てたが,今はパッチなしでも問題ないようである。/usr/local/{bin,include,lib,libexec,share} に書き込み権限を与えておく。

Emacs 27が出たので改訂。Byte compile のバグ のパッチ 0001-Fix-cond-jump-table-compilation-bug-42919.patch を当てている。なお,twittering-mode.el の epa--decode-coding-string を decode-coding-string に直す必要があった。

Emacs 27.2が出たので改訂。

wget -N http://ftp.gnu.org/gnu/emacs/emacs-27.2.tar.xz
wget -N ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-27.2-mac-8.2.tar.gz
tar xvzf emacs-27.2.tar.xz
tar xvzf emacs-27.2-mac-8.2.tar.gz
cd emacs-27.2
patch -p1 < ../emacs-27.2-mac-8.2/patch-mac
cp -R ../emacs-27.2-mac-8.2/mac .
cp ../emacs-27.2-mac-8.2/src/* src/
cp ../emacs-27.2-mac-8.2/lisp/term/mac-win.el lisp/term/
cp nextstep/Cocoa/Emacs.base/Contents/Resources/*.icns mac/Emacs.app/Contents/Resources/
./configure --without-x
make 
make install

これで mac の下の Emacs.app を動かしてみて問題ないようなら /Applications にコピーする。

パッチを当てると window-system'ns から 'mac に変わる。system-type はどちらも darwin だ。

~/.emacs.d/init.el のフォントの設定はおおよそ以下の通り。

(when (or (eq window-system 'mac) (eq window-system 'ns))
  (set-face-attribute 'default nil
                      :family "Menlo"
                      :height 200) ;; 20pt
  (set-fontset-font nil 'japanese-jisx0208
		    (font-spec :family "Hiragino Kaku Gothic ProN"))
  (setq face-font-rescale-alist
        '((".*Hiragino Kaku Gothic ProN.*" . 1.2))))

パッチ入りのほうは (mac-auto-ascii-mode 1) するとよいかもしれない。

パッチなしのほうは mac-command-modifiermac-option-modifier'meta にするとメタキーが変えられる:

(when (eq window-system 'ns)
  (setq mac-command-modifier 'meta))

EmacsからGnuPGを使う必要がある場合,brew install gpg で入るものがgpg2になり,このパスワードの入力が標準的でないので,Emacsからパスワードが入れられなくなる。brew install pinentry-mac して,~/.gnupg/gpg-agent.confpinentry-program /usr/local/bin/pinentry-mac という行を書き込めばよい。間違えてパスワード入力をキャンセルしてしまったのがキャッシュされて開けなくなったときは gpgconf --kill gpg-agent と打ち込む。

Emacs 24なら (setq epg-gpg-program "gpg1") だけでうまくいくようだが,Emacs 25はこれではダメ。Gentoo Linux GPG encrypts properly a file passed through parameter but throws “Inappropriate ioctl for device” when reading from standard input にあるように,いったんEmacsを終了し,ターミナルに


export GPG_TTY=$(tty)
open -a Emacs.app

でEmacsを立ち上げる(export ... は .bashrc に書いておけばよい)。この場合,パスワードはEmacsのミニバッファではなくターミナルに入力する。ただ,この方法はSierraになってから不安定で,2回に1回くらいキーの取得に失敗しエコーバックされてしまう。

Emacsのパッケージは一つずつ手で入れてもいいが,melpa を使うと楽。次のように init.el に書き込んでおく:

(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)

これで M-x package-list-packages するとパッケージ一覧が表示されるので,必要なパッケージあるいは更新したいパッケージの上にカーソルを動かして i キーを打つ(I マークが付く)。次に x キーを打つと実際にインストールされる。

Emacsからの子プロセスは必ずしもシェルの環境変数を受け継がない。受け継がせるにはEmacsをシェルから open -a Emacs で起動するか,あるいは init.el に次のように書いておく:

(require 'exec-path-from-shell)
(when (memq window-system '(mac ns))
  (exec-path-from-shell-initialize))

TeX

美文書作成入門のDVDからインストールする。

最新のTeX Live 2016を入れたい場合は MacTeX をインストールするのが簡単だが,一般的なUnixのディレクトリ構成と違うので,慣れた人にはかえってややこしいかもしれない。

Unix派は TeX Live の install-tl-unx.tar.gz をダウンロードして展開し ./install-tl でネットインストールする。通常は /usr/local/texlive 以下にインストールする。詳しくはTeX Wikiの TeX Live/Mac 参照。デフォルトではIPAexフォントになるが,ヒラギノを使いたい場合は次のようにする。GhostscriptはHomebrewなどであらかじめインストールしておく。

cjk-gs-integrate --link-texmf --force
mktexlsr
kanji-config-updmap-sys --jis2004 hiragino-elcapitan-pron

Ruby/Python

MojaveのRubyは2.3.7である。Homebrewを使っているなら brew install ruby で最新のもの(今なら 2.6.0)が /usr/local/opt/ruby/bin に入る(デフォルトでは /usr/local/bin にリンクされない)。Homebrewなら sudo しないで gem が使える。

Pythonは2.7系だ。pipはない(easy_install を使う)。

Python 3.xを入れる方法はいろいろある。Homebrew + pyenv および Miniconda を紹介する。いろいろな環境を切り替える必要がないなら pyenv を経由しない Miniconda でいいように思う。

Homebrew + pyenv

brew install pyenv

する。また,.bash_profile に次を登録する:

PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

まずはインストール可能なバージョンを確認:

pyenv install --list

3.7.1をインストールしたいなら:

pyenv install 3.7.1

pyenv versions でバージョンを確認。おそらく system3.7.1 があり,デフォルトでは前者になっているので,新しいほうに替える:

pyenv global 3.7.1
pyenv rehash

python --version でバージョン確認。

いらなくなったものは pyenv uninstall 3.7.1 のようにして消せる。

あとは pip で追加インストールする。例:

pip install ipython numpy scipy matplotlib pandas

pip 自身を更新するには次のようにする:

pip install --upgrade pip

ディスクに余裕があれば,Python全部入りのAnacondaをpyenv経由でインストールできる:

pyenv install anaconda3-5.3.0
pyenv global anaconda3-5.3.0

最初からMojaveの状態で買ったマシンで pyenv install 3.7.1 がうまくいかなかった。こちらを参考にして次のように打ち込んだらうまくいった:

CFLAGS="-I$(brew --prefix readline)/include -I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix readline)/lib -L$(brew --prefix openssl)/lib" \
PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs2 \
pyenv install 3.7.1

こちらの方法でもコンパイルはうまくいったがreadlineがリンクされなかった。

Python

Python 3 インストールを参照されたい。

X11

今はMacにX11はほぼ必要ないが,どうしても必要な場合は XQuartz をインストールする。

Java

Sierra で Java 6 が使えなくなった。古いソフトは要注意。特にAdobeのソフトは問題だが,macOS Sierra (10.12) で Photoshop CS6 / Illustrator CS6 を使う によれば,実はJavaっぽいディレクトリを作っておくだけで大丈夫だ。私のところでもIllustrator CS3が動いた。

メール

今のMail.appはiPhoneのメールみたいな表示になったが,環境設定→表示で「クラシックレイアウトを使用」にすると古い表示に戻る。ついでに,ここの「スマートアドレスを使用」を切っておけばメールアドレスが名前だけになるのが避けられるはずだが,うまくいかないときは,いったんこれをオンにしてから,またオフにしてみる。

Apple Mailを快適に使う設定が参考になる。具体的にはLetterFixというプラグインを使う。Yosemite対応も即日行われた。

LetterFixを使わない場合,Mavericksでメールを新規作成すると文字コードはASCIIかutf-8(base64)になる。ただしISO-2022-JPメールへの返信はISO-2022-JPになる。返信に「μm」と書くとiso-2022-jp-2になって,非対応メーラで化ける。「⌘」と書くと必ずutf-8になる。ややこしいので署名に「⌘」を含ませるのが一つの手段。特にiPhoneの場合はこれしか手がない。

Mail.appでファイルを添付するとattachmentではなくinlineになり,新しいバージョンのThunderbirdでは見えなくなるようである。いったんMail.appを終了して,ターミナルに

defaults write com.apple.mail DisableInlineAttachmentViewing -bool yes

と打ち込むとinlineでなくなるようだ。これではダメみたい。

辞書

Lion→Mountain Lionで辞書が微妙に違う。Lionの辞書をMountain Lionの ~/Library/Dictionaries にコピーすれば,大辞林と大辞泉,WisdomとProgressiveを両方使えるようになる。

スクリーンショット(画面キャプチャ)

command + shift (+ control) + (3 または (4 [ space (option +) click ]))

+ control なしだとデスクトップにファイルを作る。ありだとクリップボードにコピーするのでプレビューがアクティブになっているところで ctrl + N すればプレビューに貼り付く。3 だと全画面,4 だとマウスで範囲指定した部分だけ。ただし 4 の後にスペースを押すとマウスカーソルがカメラになって,窓を指定してクリックするとその窓が対象になる。クリック時に option を押していれば影が含まれない。

コマンドでも同じことができる。詳しくは man screencapture。例えば,一つの窓だけ(-w),影を付けない(-o),プレビューで開く(-P)というオプションで hoge.png にキャプチャするには:

screencapture -w -o -P hoge.png

ファイル名・圧縮・展開

Macのファイル名はUTF-8で,アーカイブ(圧縮)ファイルを日本語環境のWindowsとやりとりするときにトラブルが生じやすい。

ターミナルで使う zip/unzip 以外に,圧縮ファイルをダブルクリックしたときやFinderで圧縮するときに使われる /System/Library/CoreServices/Archive Utility.app がある。後者はWindowsのCP932(拡張シフトJIS)ファイル名をMacのUTF-8に自動変換してくれる。

日本語環境Windows互換なZIPファイルを作るにはMac App Storeにある無料の「WinArchiver Lite」を使うとよいらしい。ほかにもunarやパッチをあてたunzipなどの方法があるようだ(ここ参照)。

ファイル名のエンコーディングを変換するには convmv を使う。次のようにしてもよいだろう:

find -d . | while read f; do mv "$f" "`echo $f | nkf -w`"; done

ここで nkf -w はUTF-8に自動変換する(元がCP932なら iconv -c -f CP932 -t UTF-8 と同じ)。

ちなみにMacのUTF-8は例えば「げ」を「け」と濁点に分離して保存する。表示時は合成済みの「げ」を使うので見た目では区別がつかないが,次のような実験で確かめられる:

echo 'ほげ' | hexdump -C  # e3 81 bb  e3 81 92
touch 'ほげ'         # 「ほげ」というファイルを作る
ls ??                # 見つからない
ls ???               # 「ほげ」が見つかる
ls ??? | hexdump -C  # e3 81 bb  e3 81 91  e3 82 99
ls ??? | iconv -c -f UTF-8 -t CP932 | iconv -c -f CP932 -t UTF-8  # 「ほけ」になる

Unicodeの正規化については小形克宏の「文字の海、ビットの舟」参照。

cron・at

at コマンドを有効にするには sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist と打ち込む。

ただし at も cron も deprecated である。Daemons and Services Programming Guide: Scheduling Timed Jobs を見て launchd を使うのがよい。crontab to wake osx from sleep も参考になる。

フォトストリーム

iPhoneなどで撮った写真は ~/Library/Application Support/iLifeAssetManagement/assets/sub/* フォルダに入るようだ。

ssh

他マシンにsshでログインしたりrsyncしたりgitしたりするとき,次のようにするとパスワードなしで認証できる。まず自マシンで鍵ペアを生成する:

mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa -C "自分のメアド"

公開鍵 id_rsa.pub と秘密鍵 id_rsa が生成される。秘密鍵はパーミッション400にしておく。公開鍵の内容をログイン先の ~/.ssh/authorized_keys に書き込んでおく(パーミッションは600とか)。

Sierra 10.12.2 から仕様が変わったみたいで,上の設定だけではパスフレーズを毎回聞いてくる。~/.ssh/config というファイルを作って,そこに次のように書いておくと,起動後一回だけで済むようになる:

Host *
        IdentityFile ~/.ssh/id_rsa
        AddKeysToAgent yes

その他

メタデータ

MacのHFS+ファイルシステムではメタデータを保存できる。これがSpotlight検索に使われる。ls -lでパーミッションに @ が付いているのがこれである。ls -l@ すればメタデータの名前(キー部)がわかる。例えばSafariでファイルをダウンロードするとダウンロード日時が com.apple.metadata:kMDItemDownloadedDate に,URLが com.apple.metadata:kMDItemWhereFroms に入る。

メタデータを見たり書き換えたりするには xattr コマンドを使う。xattr -l ファイル名 で表示する。mdls ファイル名 とすればファイル中にあるものも含めてたくさんのメタデータが表示されるが,HFS+ のメタデータは com.apple.metadata:何々 という名前のものに限られるようだ。

自分で導入した wget でダウンロードした場合はメタデータが付かない。wget の代わりにMac付属の curl を使えばよい。curl -ORL --xattr ファイル名 で付くURLは user.xdg.origin.url という名前であり,mdls では見えないが xattr -l ファイル名 で表示できる。

HFS+に保存されたメタ情報は,rsync-E オプションを付ければ他のMacにも送れる。よく使うのは rsync -auvzE という形。

音声合成用データは /System/Library/Speech/Voices にある。何々Compact.SpeechVoice とあるのは簡略版。システム環境設定→アクセシビリティ→スピーチ→システムの声でカスタマイズするとCompactでないものがダウンロードできる。ただし一つあたり数百MBのデータを含むので注意。

say というコマンドで発音できる。例えば say -v Samantha 'Hello World' のように。say -v Samantha だけなら標準入力から読み込む。声の種類は例えば say -v '?' | grep en_US のようにして一覧できる。女声日本語なら Kyoko,女声米語なら Samantha でよさそう。

おまけ

壁紙用写真の /System/Library/Frameworks/ScreenSaver.Framework/Versions/A/Resources/Default Collections/ にある最後のものは日本人写真家のもの: