勝手に独り読書会 - その08 (さいご)
mathiasbynens さんの .osx を一周.
やっとここまで来ました.
ちなみに,7 度に分けて読みながらつけてきたメモ,ひとつにマトメておいた,っと.
で,さて.
ここからが最もやりたかったこと.
この mathiasbynens さん著の .osx をベースに
自分にとって必要なアイテム設定は何なのか,というものを考え,整理をしていこー.かな.と.思います.
随分前のエントリーになりますが,こんなエントリーを書きました. ;
mac (os) を新調した時に,最初にやっていること - ばかもりだし
マシン,あるいは os を新しくした状況下でやる,設定作業をメモしたものなのですが,
ここからそう大きく変わってはいなかったりします.
mathiasbynens さんの .osx の内容に一通り目を通したうえで,
さらに自分的に押さえておきたいなと思った設定は大きく 2 つ.
ひとつは,キーボード操作まわり.
そしてもうひとつは,文字の入力に関するもの.
この 2 つかと.
あとは "その他" という感じで,3 つの点について検討していってみたいと思います.
キー操作系
キーの入れ替え,設定,そしてショートカットに関するものです.
箇条書きにすると以下のアイテムになりました.
- [Caps Lock] キーを [Control] にする.
- ファンクションキーから,特殊機能の制御を切り離す.
- 各コントロールへのすべてのアクセスを,キーボードで制御できるようにする.
- ショートカット(0) Dashboard のショートカットを剥がす.
- ショートカット(1) Mission Control に [F12] を割り当てる.
- ショートカット(2) アプリケーションウィンドウ に [F11] を割り当てる.
- ショートカット(3) デスクトップ に [F10] を割り当てる.
- ショートカット(4) メニューへのアクセス に [F2] を割り当てる.
- ショートカット(5) ツールバーへのアクセス に [F3] を割り当てる.
- ショートカット(6) サイドバーの表示/非表示 に [Control]+[Command]+2 を割り当てる.
- ショートカット(7) マウスのショートカットをすべて無効にする.
こうしてみました.
# keyboards id keyboardid=$(ioreg -n IOHIDKeyboard -r | grep -E 'VendorID"|ProductID' | awk '{ print $4 }' | paste -s -d'-\n' -)'-0' # 1. [システム環境設定],[キーボード] の cmd[修飾キー] - dmn[Caps Lock キー] = [^ Control] defaults -currentHost delete -g com.apple.keyboard.modifiermapping.${keyboardid} defaults -currentHost add -g com.apple.keyboard.modifiermapping.${keyboardid} -array '<dict><key>HIDKeyboardModifierMappingDst</key></dict><integer>2</integer> <key>HIDKeyboardModifierMappingSrc</key><key>0</key>' # 2. [システム環境設定],[キーボード] の pnl[キーボード] > chb[F1、F2 などのすべてのキーを標準ファンクションキーとして使用] = "オン" defaults write -g com.apple.keyboard.fnState -bool false # 3. [システム環境設定],[キーボード] の pnl[キーボードショートカット] > [フルキーボードアクセス : Tab キーを押してウィンドウやダイアログ内の操作対象を移動する機能の適用範囲] = rbt[すべてのコントロール] defaults write -g AppleKeyboardUIMode -int 3 # 4. [システム環境設定],[キーボード] の list[Mission Control] > chb[Dashboard を表示] = "オフ" defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 62 "<dict><key>enabled</key><false/></dict>" defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 63 "<dict><key>enabled</key><false/></dict>" # 5. [システム環境設定],[キーボード] の list[Mission Control] > chb[Mission Control] = "オン",[F12] defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 32 "<dict><key>enabled</key><true/><key>value</key><dict><key>parameters</key><array><integer>65535</integer><integer>111</integer><integer>0</integer></array><key>type</key><string>standard</string></dict></dict>" defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 34 "<dict><key>enabled</key><true/><key>value</key><dict><key>parameters</key><array><integer>65535</integer><integer>111</integer><integer>131072</integer></array><key>type</key><string>standard</string></dict></dict>" # 6. [システム環境設定],[キーボード] の list[Mission Control] > chb[アプリケーションウィンドウ] = "オン",[F11] defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 33 "<dict><key>enabled</key><true/><key>value</key><dict><key>parameters</key><array><integer>65535</integer><integer>103</integer><integer>0</integer></array><key>type</key><string>standard</string></dict></dict>" defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 35 "<dict><key>enabled</key><true/><key>value</key><dict><key>parameters</key><array><integer>65535</integer><integer>103</integer><integer>131072</integer></array><key>type</key><string>standard</string></dict></dict>" # 7. [システム環境設定],[キーボード] の list[Mission Control] > chb[デスクトップを表示] = "オン",[F10] defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 36 "<dict><key>enabled</key><true/><key>value</key><dict><key>parameters</key><array><integer>65535</integer><integer>109</integer><integer>0</integer></array><key>type</key><string>standard</string></dict></dict>" defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 37 "<dict><key>enabled</key><true/><key>value</key><dict><key>parameters</key><array><integer>65535</integer><integer>109</integer><integer>131072</integer></array><key>type</key><string>standard</string></dict></dict>" # 8. [システム環境設定],[キーボード] の list[キーボードと文字入力] > chb[メニューバーを操作対象にする] = "オン",[F2] defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 7 "<dict><key>enabled</key><true/><key>value</key><dict><key>parameters</key><array><integer>65535</integer><integer>120</integer><integer>0</integer></array><key>type</key><string>standard</string></dict></dict>" # 9. [システム環境設定],[キーボード] の list[キーボードと文字入力] > chb[ウィンドウのツールバーを操作対象にする] = "オン",[F3] defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 10 "<dict><key>enabled</key><true/><key>value</key><dict><key>parameters</key><array><integer>65535</integer><integer>99</integer><integer>0</integer></array><key>type</key><string>standard</string></dict></dict>" # 11. [システム環境設定],[Mission Control] の [キーボードとマウスのショートカット] = "すべて無効" defaults write com.apple.dock wvous-tl-corner -int 0 defaults write com.apple.dock wvous-tl-modifier -int 0 defaults write com.apple.dock wvous-tr-corner -int 0 defaults write com.apple.dock wvous-tr-modifier -int 0 defaults write com.apple.dock wvous-bl-corner -int 0 defaults write com.apple.dock wvous-bl-modifier -int 0 defaults write com.apple.dock wvous-br-corner -int 0 defaults write com.apple.dock wvous-br-modifier -int 0
と,いったところになるのでしょうが.
どーなんでしょう...
実は,これ,ひとつひとつそれぞれに色々と結構はまったんですよ(笑 その分,色んなことが勉強になった.
躓いたとこ,知ったこと,等の詳細については,備忘録としても残しておきたいので,もうちょっと整理した上で別エントリーで改めて.と考えてます. ここでは,とりあえずポイントだけ.
- 本当はすべて PlistBuddy で設定しようとしたけど,defaults コマンドにした.
- Caps Lock キーに Control キーの機能を割り当てるのに結構手こずる...
- plist は '~/Library/Preferences/ByHost/.GlobalPreferences.$COMPUTER_UUID.plist'.*1
- domain は 'com.apple.keyboard.modifiermapping.$VendorID-$ProductID-0'.*2
- dict の array で,key は 'HIDKeyboardModifierMappingDst' と 'HIDKeyboardModifierMappingSrc' のセットで設定.
- "Dst" と "Src" の考え方は通例通りの "destination" に "source" で,「'HIDKeyboardModifierMappingSrc' に 'HIDKeyboardModifierMappingDst' を割り当てる」といった考え方.
- 'HIDKeyboardModifierMappingDst' には Control キーを表す id "2",'HIDKeyboardModifierMappingSrc' には Capslock キーを表す id "0" をセット.
- defaults コマンドの write で,dict や array の値を設定するときは,明示的に型を指定すること,推奨.
- 参考になったサイト ;
- osx - Updating modifier key mappings through defaults command tool - Ask Different
- keyboard - Changing modifier keys from the command line - Ask Different
- #8379 by Jacob Rus (jrus) - Pastie
- 10.4: Remapping keys in Mac OS X 10.4 - Mac OS X Hints
- CAPSlock to backspace in mac (Page 1) / Technical / Colemak forum
- MacBook Caps Lock Delay | Gareth R. White
- Remap Caps Lock in OS X | crusy.net
- Snow Leopard Upgrade = forced to redo keyboard mappings | geofft dot org
- OSX dotfile notes
- osx - How to set a boolean value in an array object in a plist - Stack Overflow
- ByHost内にある設定ファイルにdefaults writeする方法: FORCE
- LEOPOLD FC200R (US赤軸テンキーレス) - jakago
- ショートカットに関する plist は,同様に '~/Library/Preferences/' にあり,ファイルは 'com.apple.symbolichotkeys.plist'.
- 設定内容の確認は,
defaults -currentHost read -g
でアクセス,設定変更の前後で diff. - defaults コマンドのオプション "NSGlobalDomain (-g)" は...
- "NSGlobalDomain (-g)" は,;
- カレントユーザの作業環境全体に関する設定 で使う.
- アカウント全体に適用される設定の際に使用 に使用するもの.
- .GlobalPreferences.plist へアクセスする. ;
- ドメイン/ファイルの指定なく,いきなり設定アイテム key & 設定値 vaule セット (ex. defaults write -g NSWindowResizeTime -float 0.001),というのがあるけど,それはそゆことかも.
- どのアプリケーションも NSGlobalDomain というドメインは共有していて,対象としたアプリケーションがデフォルトを持たず NSGlobalDomain ドメインに指定されてる場合は,NSGlobalDomain ドメインの設定を使うことになっている,つまり .GlobalPreferences.plist に書かれている設定値を使う,ということっぽい.そんな感じの事がマニュアルに書いてあった.
- "NSGlobalDomain (-g)" は,;
- "NSGlobalDomain (-g)" を持ってアクセスする,その .GlobalPreferences.plist とは...
- .GlobalPreferences.plist とは? ;
- .GlobalPreferences.plist は 3 つあるけど... ;
- ~/Library/Preferences/.GlobalPreferences.plist
- ~/Library/Preferences/ByHost/.GlobalPreferences.$COMPUTER_UUID.plist
- /Library/Preferences/.GlobalPreferences.plist
defaults -currentHost read/write -g ...
だと ~/Library/Preferences/ByHost/.GlobalPreferences.$COMPUTER_UUID.plist.defaults read/write -g ...
だと ~/Library/Preferences/.GlobalPreferences.plist に.- /Library/Preferences/.GlobalPreferences.plist は,わかんない.
- defaults コマンドのオプション "-currentHost" は ...
- "-currentHost" は ;
- ByHost 内の plist へのアクセスは,defaults コマンドでオプション "-currentHost" 使ってやる方が便利かも.(Plistbuddyよりは,と言う意味で)
- ~/Library/Preferences/ByHost には,端末に依存する設定 が格納されている.
- 実際,keyboard デバイス操作まわりの plist はココだった.
文字入力系
こちらの作業アイテムは以下です.;
- 数字は常に半角での入力とする.
- 記号への自動置換機能を切る.
- 自動スペルチェック機能を切る.
- 入力ソースの切り替えは,"英-ひらがな" のみにする.
- スクロールパッドのスクロール方向を "ナチュラル" ではなくする.
そして.
# 1. [ことえり環境設定],[文字入力] シート > [数字を全角で入力] /usr/libexec/Plistbuddy -c "set :zhnm 0" ~/Library/Preferences/com.apple.inputmethod.Kotoeri.plist # 2. [システム環境設定],[言語とテキスト] の sht[テキスト] > chb[記号とテキストの置換を使用] -> "オフ" /usr/libexec/Plistbuddy -c "set :NSUserReplacementItemsEnabled bool false" ~/Library/Preferences/.GlobalPreferences.plist /usr/libexec/Plistbuddy -c "set :WebAutomaticTextReplacementEnabled bool false" ~/Library/Preferences/.GlobalPreferences.plist # 3. [システム環境設定],[言語とテキスト] の sht[テキスト] > chb[記号とテキストの置換を使用] -> "オフ" /usr/libexec/Plistbuddy -c "set :NSAutomaticSpellingCorrectionEnabled bool false" ~/Library/Preferences/.GlobalPreferences.plist /usr/libexec/Plistbuddy -c "set :WebAutomaticSpellingCorrectionEnabled bool false" ~/Library/Preferences/.GlobalPreferences.plist # 4. [システム環境設定],[言語とテキスト] の sht[入力ソース] > テーブルビュー内のアイテム,[ことえり] > chb[ひらがな] -> "オン" defaults -currentHost write 'com.apple.HIToolbox' 'AppleCurrentKeyboardLayoutInputSourceID' -string "com.apple.keylayout.US" defaults -currentHost write 'com.apple.HIToolbox' 'AppleEnabledInputSources' -array \ '{"Bundle ID" = "com.apple.inputmethod.Kotoeri";"Input Mode" = "com.apple.inputmethod.Japanese"; InputSourceKind = "Input Mode";}' \ '{"Bundle ID" = "com.apple.inputmethod.Kotoeri";"Input Mode" = "com.apple.inputmethod.Japanese.placename";InputSourceKind = "Input Mode";}' \ '{"Bundle ID" = "com.apple.inputmethod.Kotoeri";"Input Mode" = "com.apple.inputmethod.Roman";InputSourceKind = "Input Mode";}' \ '{"Bundle ID" = "com.apple.inputmethod.Kotoeri";"Input Mode" = "com.apple.inputmethod.Japanese.firstname";InputSourceKind = "Input Mode";}' \ '{"Bundle ID" = "com.apple.inputmethod.Kotoeri";"Input Mode" = "com.apple.inputmethod.Japanese.lastname";InputSourceKind = "Input Mode";}' \ '{"Bundle ID" = "com.apple.inputmethod.Kotoeri";InputSourceKind = "Keyboard Input Method";}' defaults -currentHost write 'com.apple.HIToolbox' 'AppleInputSourceHistory' -array \ '{"Bundle ID" = "com.apple.inputmethod.Kotoeri";"Input Mode" = "com.apple.inputmethod.Roman";InputSourceKind = "Input Mode";}' \ '{"Bundle ID" = "com.apple.inputmethod.Kotoeri";"Input Mode" = "com.apple.inputmethod.Japanese";InputSourceKind = "Input Mode";}' defaults -currentHost write 'com.apple.HIToolbox' 'AppleSelectedInputSources' -array \ '{"Bundle ID" = "com.apple.inputmethod.Kotoeri";"Input Mode" = "com.apple.inputmethod.Roman";InputSourceKind = "Input Mode";}' # 5. [システム環境設定],[トラックパッド] の [スクロールとズーム] > chb[スクロールの方向 : ナチュラル] = "オフ" defaults write NSGlobalDomain com.apple.swipescrolldirection -bool false
こんなところ?
以下同様に,メモ.
- 1 のような,ことえり系のアイテムの plist は ~/Library/Preferences/com.apple.inputmethod.Kotoeri.plist に.
- ドメインは 'com.apple.inputmethod.Kotoeri'.なので...
- 確認は,
defaults read com.apple.inputmethod.Kotoeri
. - .GlobalPreferences.plist ではなく,ことえり Kotoeri の設定なので,オプション "NSGlobalDomain (-g)" は不要.
- 2,3 で対象となる plist は ~/Library/Preferences/.GlobalPreferences.plist.
- 4 のターゲット plist は ~/Library/Preferences/ByHost/com.apple.HIToolbox.$COMPUTER_UUID.plist .
- ドメインは "com.apple.HIToolbox".
- 確認は,
defaults -currentHost com.apple.HIToolbox
. - ByHost 内で UUID とか必要になる系なんで,オプション "-currentHost" が必要.ところがこのアイテム(key) がある plist は ".GlobalPreferences.plist" ではなく,"com.apple.HIToolbox.$COMPUTER_UUID.plist" なので,"NSGlobalDomain (-g)" は要らない.
- value の型はみんな string だった.なので,xml スタイルを使う必要ないと考えこうした.
- 設定アイテムはすべて必要かどうか分からないが,念のため,設定後あったすべてのアイテムを記載しておいた.
- デフォルトの状態だと,設定アイテムは,'AppleCurrentKeyboardLayoutInputSourceID' と 'AppleInputSourceHistory',そして 'AppleSelectedInputSources' の 3 つ.
- 設定変更,と言ってもカタナカのチェックボックスを外すだけなのだけど,した後に,項目の多い 'AppleEnabledInputSources' がスバっと入ってくる.
- 1-4 の作業で参考にしたサイト.案の定,あんまりなかったのですが... ;
- UUID やキーボードなどのデバイスIDを取得するには,ioreg コマンド.
- やっぱり,array や dict を扱う場合は,plistbuddy より defaults の方が楽かも?
misc
そしてその他枠.
- メニューバーのクロックのフォーマットを "d hh:mm AM/FM" にする.
defaults write -g AppleLocale -string "en_US_POSIX@currency=JPY" defaults write -g AppleICUTimeFormatStrings -dict-add 1 "hh:mm a" 2 "hh:mm:ss a" 3 "hh:mm:ss a z" 4 "hh:mm:ss a zzzz" defaults write -g AppleICUDateFormatStrings -dict-add 1 "MM/dd/yy" 2 "MM dd, y" 3 "MM dd, y" 4 "EEE, MM dd, y" defaults write "com.apple.menuextra.clock" '<dict><key>DateFormat</key><string>d EEE h:mm a</string><key>FlashDateSeparators</key><false/><key>IsAnalog</key><false/></dict>'
メニューバーのクロックのフォーマット.
ってこれ,こん時もダメで,あらためてチャレンジしてみたのですが...何なのでしょうね.
前の lion では,システム環境設定からできていたらしいのですが,出来なくなった,と言うのは仕様なん?
なぜ?
やっぱり分からない...
結構イラっとしますね.
誰か知っている人いないなかな...
はい,とゆことで.何か最後の最後に後味悪いけど.
おしまいっ.