Mac新調したのでアプリや設定の個人的な棚卸し 

- [「移行ツール」を使って旧Macから新Macにまるまる引っ越した場合にやること](https://qiita.com/kawaz/items/0f942dc6a49779033e9d)は←こちらを確認。


# いろいろ入れるメモまとめ
とりあえず新しい環境でターミナル開いて↓これを上から順番に実行していけば大体整うんじゃないかな。


```bash
# Homebrew 本体
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew doctor

# CLI系
brew install go # Go
brew install node # Node
brew install deno # 最近はNodeより使うかも
brew install php composer # PHP
brew install python # Python
brew install luajit # lua
brew install shellcheck # bashのlint的なやつ
brew install bash binutils coreutils findutils bash-completion # 基本コマンドGNU
brew install tmux reattach-to-user-namespace # ターミナル内のウィンドウ分割とか
brew install starship # shellのプロンプトをパワフルにする。
brew install vim # Vimエディタ
#brew install homebrew/dupes/rsync # HFS+のNFD糞仕様対応の文字コード変換付きrsync。 macOS10.13以降のAPFSだとNFDじゃなくWin/Linuxと同様にNFCになったのでもう要らない
brew install pstree ipcalc # 昔からの懐かしツール
brew install peco jq # JSONのクエリツール
brew install itchyny/tap/gojq # goで再実装されたjqの別実装
brew install htmlq # HTMLをCSSセレクタでクエリするツール
brew install git git-extras git-lfs ghq hub # git関係
brew install mercurial subversion # 時々使うCVS系
brew install imagemagick ffmpeg # 画像とか動画とか
brew install rar p7zip # アーカイブ系
brew install memcached redis # KVS系
brew install ansible # 構成ツール
brew install awscli # AWS
brew install asciinema # ターミナルキャプチャ共有サービス
brew install ctags dict cmigemo # 主にvim連携系で使うコマンドたち
brew install daemontools djbdns # djb系ツール
brew install poppler # pdfからテキストを抽出するコマンドpdftotextが入ってる
brew install pdfcpu # pdfに印影を埋め込んだりするのに使える
brew install direnv # .envrc てファイルを作っておくとディレクトリ毎に環境変数の自動設定が出来るようにするツール
brew install iproute2mac # Linuxのipコマンド風ラッパー、ipコマンドに慣れてるので入れておくと楽
brew install cuelang/tap/cue # 新しいデータ検証言語、データの型定義もできるし値を記述することも出来る
brew install act #GithubActionsをローカルで実行するコマンド
brew install node-sass # sassコンパイラ、VSCodeでsass書くときとかにランタイムとして要求される事があるので
brew install bat # ターミナルでシンタックスハイライト出来る cat みたいなやつ
brew install sk # pecoとかfzfみたいなやつ。ファジー検索で候補を絞り込むツール。
brew install parallel # パイプや引数で渡した値の組み合わせを使ったコマンドを並列実行するやつ
brew install orbstack # Docker Desktop はクソ遅いので OrbStack を使う。コマンド類は docker とか普通に使える。


# Java関係
## jdkのパッケージは選択肢がいくつかあるが、特に思想信条が無ければ adoptopenjdk を入れとけば良い
## 色々入れたJDKのどれかをJAVA_HOMEとかに指定したい場合は `find /Library/Java/JavaVirtualMachines/*/Contents/Home -maxdepth 0` の出力から選択すれば良い
brew install --cask adoptopenjdk # OpenJDKのコミュニティ製バイナリ、パッケージ名に数字がついてないやつは最新が入る(20201014時点では15
brew install --cask adoptopenjdk8 # java8が要求されるケースがあるので追加で入れとく…(Elastic系がOpenJDK14とか入っててもJava１.8.0系を要求してくる@20200606)
#brew install --cask java # OpenJDKのソースからビルドするやつ、自分でビルドする意味は殆どないのでadoptopenjdkを使うのが無難
#brew install --cask oracle-jdk # Oracle JDK
#brew install --cask corretto # AWS Java
brew install elasticsearch kibana logstash # Elastic系

# GUI系アプリ
### これを先に設定しとくと面倒の一部が回避できる。cask系入れる前にセットしつつ普段のupgrade運用の時のことも考えるとbashrcとかに設定してくのが良い
export HOMEBREW_CASK_OPTS=--no-quarantine # 入れたアプリが「このファイルはXXからダウンロードされました」みたいな確認ダイアログが出て開けなかったりする奴(Gatekeeperというセキュリティ機能）を抑制する環境変数

brew install --cask 1password # パスワードマネージャ
brew install --cask 1password-cli # opコマンド
brew install --cask atok # 日本語IMEの老舗、2021年頃Google日本語入力がうまく動かなくなった際に乗り換えた。install後に一度再起動しないと使えない点に注意。
brew install --cask appcleaner # アプリ掃除アプリ（アプリケーションフォルダからアプリを削除すると関連ファイルも消すかどうか聞いてくれるようになる）
# brew install --cask alacritty # 高速ターミナル（高速がウリだけどそれ以外の機能が物寂しいのでtmuxと併用することになるがtmuxが遅いせいで高速性にも難が…。あと日本語入力に問題がある。）
brew tap wez/wezterm; brew install --cask wezterm-nightly --no-quarantine # 高速ターミナル、タブや画面分割(multiplex)など機能も豊富。バグフィックスとかがreleaseに反映されるのが遅いと嫌なのでnightly202105頃からAlacrittyからこっちに乗り換えた
brew install --cask kitty # 高速ターミナル、タブや画面分割(multiplex)など機能も豊富。202107頃から利用中
brew install --cask alfred # opt+spaceで簡単起動アプリ
brew install --cask bettertouchtool # ジェスチャアプリ、超重要
brew install alt-tab # アプリ単位じゃなくウィンドウ単位での切り替えが出来るようにする、デフォルトは opt+TABだがcmd+TABに上書きして使ってる。ドックにしまったウィンドウも選択できてかつ勝手にドックから出てきてくれるのが便利。
#brew install --cask cooviewer # 漫画ビューア、macOS 10.15 Catarina 以降使えなくなってしまったので削除… 20200202で64bit版として復活！でもbrewではまだ入れられないので手動DLすべし https://github.com/coo-ona/cooViewer/releases 
# brew install --cask yacreader # 漫画ビューア、cooViewrの使い勝手に及ばないがとりあえず使ってる…。cooViewer復活したしもうイラネw
brew install --cask docker # 最近はいろいろ使う。※cask無しにも同名のdockerがあるがバージョン古いので注意、caskの方を入れる
# brew install --cask kitematic # DockerのGUI？昔のDockerについてたけど今はいらないぽい
brew install --cask dropbox # 便利ストレージサービス
brew install --cask visual-studio-code # VSCode、CLIからだとcodeで起動できる、最近流行りのエディタ／開発環境
brew install --cask eclipse-java # 開発用、最近VSCodeに乗り換えて不便しなくなって来たのそろそろ不要かも。JavaのRemoteDebugはeclipseの方がキビキビ動くからまだ時々使ってる。
#brew install --cask google-japanese-ime # Google日本語入力、管理者パスワードが求められる
brew install --cask google-chrome # Chromeブラウザ（これとは別にbetaやdevを本家から落として Google Chrome Dev.app 等にリネームしてアプリケーションフォルダに入れておくと使い分けれて便利）
brew install --cask firefox # 確認用に使う
brew install --cask vlc # 動画再生
brew install --cask skype # たまに仕事で使う
brew install --cask microsoft-office # Excel,Word,PowerPoint
brew install --cask parallels # Windows10を動かすのに使ってる
brew install --cask discord # チャットアプリ一部コミュで使ってる
brew install --cask ngrok # ローカルポートを外部に公開できるサービス（CLIツールだが何故かCaskで提供されてるが気にしない
#brew install --cask nox-app-player # Androidエミュレータ
#brew install --cask bluestacks # Androidエミュレータ
brew install --cask charles # Proxyツール、通信内用の盗聴や改ざん等何でもござれの神ツール。SSLもMITMできる。
brew install --cask steam # ゲームプラットフォーム
#brew install --cask hammerspoon # Macの自動操作やキーバインディングのカスタマイズなど、設定記述言語はLua。入れたもののいじる時間が取れず結局使ってないのでコメントアウト
brew install --cask commander-one # FTP/SFTP/S3/GoogleDrive/OneDrive/WebDAV/Dropbox/Boxクライアント
brew install --cask thunderbird # MUA=メーラー、メール環境の試験用に使う
#brew install --cask google-drive-file-stream # GSuiteアカウントのDriveをPCにマウントするやつ（depreated: google-drive にリネームされた）
brew install --cask google-drive # GSuiteアカウントのDriveをPCにマウントするやつ
brew install --cask messenger # Facebook Messenger

brew install --cask xquartz # X11サーバ
brew install --cask karabiner-elements # キーボードカスタマイズ
brew install --cask raspberry-pi-imager # ラズパイのOSイメージインストーラ（昔はNOOBSてツールが定番だったが2020移行はこっち推奨らしい。ラズパイ使わない人は不要）
brew install --cask makemkv # DVD/Blu-rayから mkv ファイルを作成するリッピングツール。ライセンス購入はメニューのHelp>Purchase/Registerから行う
brew install --cask zoom # リモートミーティング用
brew install --cask google-cloud-sdk #gcloudコマンドなど
brew install background-music # Macの内部音声を画面収録の入力にしたり、特定アプリで音が鳴らないようにしたり出来る
brew install appcleaner # アプリのアンインストール時に関連するそのアプリ関連のファイルや設定を広範囲から探して綺麗にしてくれる奴

# Finderのクイックルックプラグイン（Space押すと出るやつ）
brew install --cask qlstephen # 拡張子がないファイルもプレビュー
brew install --cask qlmarkdown # Markdownビューア
brew install --cask quicklook-json # JSONビューア
brew install --cask quicklook-csv # CSVをテーブル表示でプレビュー
brew install --cask provisionql # ipaファイルをプレビュー
#brew install --cask betterzipql # zipアーカイブ（無くなった
brew install --cask qlcolorcode # htmlとかいろんなソースのハイライト

# AppStore系
brew install mas # AppStore系アプリのCLI管理ツール、リストは mas list で取れる
mas install 497799835 # XCode
mas install 425424353 # The Unarchiver
mas install 803453959 # Slack
mas install 539883307 # LINE
mas install 405399194 # Kindle
mas install 409201541 # Pages
mas install 409183694 # Keynote
mas install 409203825 # Numbers

# フォント （主にコンソール用で、見易さ重視＆Powerline対応なやつ）
brew install font-hackgen # 白源フォント、Rictyインスペクトな後発フォント。Poweline対応でバイナリ配布もあり導入が楽で良い。v1.3.0以降有志によってFormulaが登録されたのでbrewでインストールも可能に→最近はリリースが自動化されたのでbrewだけで最新が使える認識で良さそう
brew install font-hackgen-nerd # HackGen フォントに Nerd を足したやつ

# sudoでTouchIDが使えるようにする ( https://qiita.com/kawaz/items/0593163c1c5538a34f6f )
curl -sL https://gist.github.com/kawaz/d95fb3b547351e01f0f3f99783180b9f/raw/install-pam_tid-and-pam_reattach.sh | bash

# ログインシェルを変更する
new_shell=/usr/local/bin/bash
if type "$new_shell"; then
  grep -q "^$new_shell" /etc/shells || sudo tee -a /etc/shells <<< "$new_shell"
  chsh -s "$new_shell"
fi

# 自分用環境設定
git clone git@github.com:kawaz/dotfiles.git ~/.dotfiles
# Macの初期状態だと ~/.bashrc とか ~/.bash_profile が無いのでなければ作る
grep -Eq '[^#]*/\.bashrc' ~/.bash_profile 2>/dev/null || echo ". ~/.bashrc" >> ~/.bash_profile
grep -q dotfiles ~/.bashrc 2>/dev/null || echo ". ~/.dotfiles/config/bash/bashrc" >> ~/.bashrc
# ~/.config や ~/.local を $XDG_CONFIG_HOME とかに置き換える
ln -s ~/.dotfiles/config/ ~/.config
ln -s ~/.dotfiles/local/ ~/.local
# カーソル移動を加速する（Preference＞キーボードで設定できる限界の突破）
defaults write -g InitialKeyRepeat -int 12 # normal minimum is 15 (225 ms)
defaults write -g KeyRepeat -int 1 # normal minimum is 2 (30 ms)

# テキスト系コンポーネントでのキーカスタマイズ（Home/End/PageUp/PageDownなどの挙動問題）
curl -sL https://gist.githubusercontent.com/kawaz/5203e1561af0e6f0f72a18439dc2d905/raw/install-DefaultKeyBinding.sh | bash

# Finder が .DS_Store を作成しないようにする(設定反映には Finder の再起動が必要、kill すれば起動は勝手に行われる)
defaults write com.apple.desktopservices DSDontWriteNetworkStores True
killall Finder

# sshd （共有>リモートアクセス）のパスワード認証の無効化
if ! grep -q "^PasswordAuthentication no$" /etc/ssh/sshd_config; then sudo perl -i -pe's/^\s*PasswordAuthentication\s.*/#$&/' /etc/ssh/sshd_config; echo 'PasswordAuthentication no' | sudo tee -a /etc/ssh/sshd_config; fi
if ! grep -q "^ChallengeResponseAuthentication no$" /etc/ssh/sshd_config; then sudo perl -i -pe's/^\s*ChallengeResponseAuthentication\s.*/#$&/' /etc/ssh/sshd_config; echo 'ChallengeResponseAuthentication no' | sudo tee -a /etc/ssh/sshd_config; fi

# スクリーンショットの保存場所の変更（デフォルトは多分デスクトップ）
defaults write com.apple.screencapture location '~/Documents/'

# Finderタイトルにフルパスを表示する
defaults write com.apple.finder _FXShowPosixPathInTitle -boolean true
killall Finder # Finderを再起動で反映する（Finderはkillしっぱなしでも勝手に復活される)

```


# アプリ
入れた順でメモメモ


## [Google Chrome](https://www.google.co.jp/chrome/browser/)
メインブラウザ。拡張やブックマークは同期から全部引っ張ってきてくれるので非常に楽。
あと以下の設定をしている。

- [Chromeの検索バーを強化する設定](http://qiita.com/kawaz/items/39d29dd5d19207ff5dac)


## [Google日本語入力](http://www.google.co.jp/ime/)
IME。
ステータスバーのアイコンからキーボード環境設定を開いて、ことえりは削除する。ついでにカタカナとか全角英数とかの入力ソースも使わないので削除する。

- Google 日本語入力 環境設定＞一般タブ＞￥キーで入力する文字＞`バックスラッシュ(\)`を選択 **超重要**

## [Firefox](https://www.mozilla.org/ja/firefox/)
2つめのブラウザ。テスト用とかで使う。

## [Alfred](http://www.alfredapp.com/)
ランチャとして優秀。`Alt+Space`から何でも検索＆起動。
ドキュメントの検索や計算機としてもよく使う。

- Preferences＞Advanced＞Fource Keybord→Alphanumeric　…Alfredを起動した時にIMEを強制OFFにする設定
- Preferences＞Features＞Dictionary＞Define a word→d　…`dスペース` で辞書検索出来るようにする
  - DeepL 使う事が増えた。
- 追加Workflow
    - [Kill Process](https://github.com/ngreenstein/alfred-process-killer) 最近Dockがよく固まるので`kill Dock`で簡単再起動が出来るようにした。

## DeepL Pro
- https://www.deepl.com/translator から dmg を落としてインストールする。
- Pro アカウントじゃ無いと使えない。
- ⌘C x2回で DeepL が起動してくれる。ショートカットが覚えやすくて良い。

## [AppCleaner](http://freemacsoft.net/appcleaner/)
アプリを関連ファイル含めて削除するツール。

## [The Unarchiver](https://itunes.apple.com/jp/app/the-unarchiver/id425424353?mt=12&uo=4&at=1l3v3Y6)
AppStoreから
アーカイブファイルの解凍ソフト。

## [1Password](https://1password.com/downloads/mac/)
ずっとサーバ上においたテキストファイルでパスワードメモしてたんだけど、昔からよく紹介されてた1Passwordを入れてみた。iPhone版もあって両方買ってる。そして最近はクラウド保存をファミリータイプで課金して使ってる。これがあるとサイト毎にパスワードを６４文字のランダム文字列で設定するとかいう運用も超簡単で悩みが一つ減る。
AppStore にもあるが Chrome 拡張連携がうまく動かなかったのでサイトからDLしたパッケージで入れる。

- 設定＞一般＞キーボードショートカット＞現在のウェブページにログインを入力する→空にする
    - デフォルト割り当ての `⌘]` は、Chromeの進むと被っててChrome側でよく使うのでとりあえず外してる。別のショートカットにするかは今後考える。

## [LimeChat](https://itunes.apple.com/jp/app/limechat/id414030210?mt=12&uo=4&at=1l3v3Y6)
IRCクライアント。特別使いやすいとも思わないけどWindows時代からずっと使ってるので。

## [CheatSheet](http://www.cheatsheetapp.com/CheatSheet/)
Cmdキー押しっぱでそのアプリのキーボードショートカットの一覧が表示できるという便利ソフト。

- 設定：起動後適当なアプリで`⌘`押しっぱでCheatSheetを表示する→`⌘`押したまま右下の`⚙（ギアアイコン）`をクリック→`Launch at login`をチェック

## [XCode](https://itunes.apple.com/jp/app/xcode/id497799835?mt=12&uo=4&at=1l3v3Y6)
AppStore or β版はAppleDevelopperCenterから。
アプリ開発に使う。

## [Eclipse](https://www.eclipse.org/)
Java書くのに使う。


## [Dash](https://itunes.apple.com/jp/app/dash-docs-snippets/id458034879?mt=12&uo=4&at=1l3v3Y6)
各種ドキュメント検索に超便利なやつ。

## [BetterTouchTool](http://blog.boastr.net/)
キーボードショートカットやジェスチャーを設定できるやつ。
設定変更と登録してるジェスチャは↓こんな感じ。タブ操作が主。

- Settings>Launch BettetTouchTool on startup→チェックON
- Action Settings>Window Snapping>Window Snapping Enabled→OFF
    - この辺りのカスタマイズはBetterSnapToolを使うのでBTT側の関連機能は無効にしておく
- 高度な設定＞一般＞Install Process Priority Helper Tool
    - BTTのプライオリティが低いとフック処理に遅延や操作漏れが起きることがあるので有効にしておくと良いらしい。

- Gestures
    - Global (Trackpads)
        - ![スクリーンショット 2014-10-21 13.26.19.png](https://qiita-image-store.s3.amazonaws.com/0/18726/335fc82e-adaa-22ec-6c85-382b232d8090.png)
            - ブラウザとか同一アプリの複数ウィンドウが開くタイプのアプリで、ウィンドウ切り替えを行うジェスチャを追加してる。
    - Finder (Trackpads / Keybord)
        - ![スクリーンショット 2014-10-21 12.59.28.png](https://qiita-image-store.s3.amazonaws.com/0/18726/afbaf5f2-dd18-f111-b60a-69897a78ed96.png)
            - タブ移動系はよく使うので重要。Finder/Chrome/etcで共通操作になるようBTTで吸収している。
        - ![スクリーンショット 2014-10-21 12.59.17.png](https://qiita-image-store.s3.amazonaws.com/0/18726/5c61fd27-3892-4018-fcef-102c427f57f0.png)
            - `⌘P`の即時印刷機能とか事故にしかならないので無効化する。
            - 新規フォルダのショートカットはよく使うけどキーの組み合わせを忘れるので適当に押しても行けるようにしてる。
    - Chrome (Trackpads / Keybord)
        - ![スクリーンショット 2014-10-21 13.08.02.png](https://qiita-image-store.s3.amazonaws.com/0/18726/b6cc5b2f-adcd-ddae-e13c-a08110bfb577.png)
            - タブ移動系はよく使うので重要。Finder/Chrome/etcで共通操作になるようBTTで吸収している。
            - 閉じたタブの復活や、ブックマークバーの出し入れとか、よく使う操作もジェスチャ化する。
        - ![スクリーンショット 2014-10-21 13.08.26.png](https://qiita-image-store.s3.amazonaws.com/0/18726/a41da736-47e5-ab06-b7f4-c4c3f8058f32.png)
            - シークレットウィンドウやJavascriptコンソールはよく使うけどキーの組み合わせを忘れるので適当に押しても行けるようにしてる。
    - iTerm (Trackpads)
        - ![スクリーンショット 2014-10-21 13.15.15.png](https://qiita-image-store.s3.amazonaws.com/0/18726/87a9fe5e-8c34-6473-2d4c-a8f325aff57b.png)
            - タブ移動系は共通操作になるようBTTで吸収しているが、iTermの場合閉じる操作は不要なのでタブ移動だけに留める。
    - VLC (Keybord)
        - ![スクリーンショット 2014-10-21 13.18.25.png](https://qiita-image-store.s3.amazonaws.com/0/18726/d313892b-fa38-6dfe-bb4b-0705cbe234a6.png)
            - 片手で、戻る/進む、ボリュームUP/DOWN、が出来るようにする。
- Advanced Settings
    - Window Moving & Resizing Settings
        - ![スクリーンショット 2016-02-04 17.34.27.png](https://qiita-image-store.s3.amazonaws.com/0/18726/7db749a0-e0f6-5497-a4d4-5064dbc660e3.png)
        - Move windows に `⇧`(shift) と `^`(ctrl) を割り当てる(ウィンドウの左上を引っ張るイメージなので縦配置の組み合わせ)
        - Resize windows に `⇧`(shift) と `^`(ctrl) と `⌘`(cmd) を割り当てる（右下を引っ張るイメージでMoveの組み合わせに右下を足す）


## [BetterSnapTool](http://blog.boastr.net/)
ウィンドウを画面端にフィットさせたり、キーボードでウィンドウ移動したりとかするやつ。
BetterTouchToolに同種の機能があるけどこっちのほうが細かいカスタマイズが効くのでBTT側のスナップ機能は無効にしてこっち使ってる。

- General Settings>Start BetterSnapTool everytime your Mac starts up→チェックON
- Customizations>Appeareance of the preview overlay>Animated→チェックOFF
- Customizations>Appeareance of the preview overlay>Use rounded corners→チェックOFF
- Keyboard Shortcuts ↓デフォルトは全部空だがこんな感じに設定してる
    - ![スクリーンショット 2014-10-21 13.48.34.png](https://qiita-image-store.s3.amazonaws.com/0/18726/7f284d33-6995-fadd-c41d-6c0b08bd07d1.png)

## [Dropbox](https://www.dropbox.com/)
言わずと知れたクラウドストレージ

## [Skype](http://www.skype.com/)
ビデオチャット。仕事で使う。

## [Docker](https://www.docker.com/)
開発で使う。

## [cooViewer](http://www.geocities.jp/coo_ona/viewer.html)
漫画ビューア

## [IntelliJ IDEA](https://www.jetbrains.com/idea/)
Android開発に使う。

## [iTerm2](http://iterm2.com/)
ターミナルアプリ。
以下の設定変更を行う。特にbell設定がうるさいので速攻消す。あと閉じるときの確認が邪魔なので出ないようにする。

- General>Quit when all windows are closed→チェックON
- General>Confirm closing multiple sessions→チェックOFF
- General>Confirm "Quit iTerm2 (⌘Q)" command→チェックOFF
- General>Characters considered part of word for selection→`@`と`:`を足す
- Profile>Open Profile>Default>Colors>Cursor guide→チェックON＆色クリックしてAを20くらいまで下げる
- Profile>Open Profile>Default>Colors>Text>Use built-in Powerline glyphs→チェックON(フォント設定に問題出る度に対応するのが面倒なので)
- Profile>Open Profile>Default>Terminal>Scrollback Lines→10000に増やす
- Profile>Open Profile>Default>Terminal>Report Terminal Type→xterm-256colorに変更
- Profile>Open Profile>Default>Terminal>Silence bell→チェックON
- Profile>Open Profile>Default>Session>Show timestamps>Alwaysに変更


## [Parallels Desktop](https://www.parallels.com/jp/products/desktop/)
Mac上でWindowsアプリを使うのに使う。
Windowsデスクトップ非表示でアプリウィンドウだけを表示するCoherenceモードが便利。

## [VLC](http://www.videolan.org/vlc/)
動画再生。

## スティッキーズ
デスクトップ付箋アプリ。
デフォアプリなんだけど何故かLaunchpadには表示されないのアプリケーションフォルダから探して起動する。一度起動後はDockから「ログイン時に開く」をチェックしておく。

## sudoでTouchIDが使えるようにする

`/etc/pam.d/sudo` の最初に以下を１行追加する。

```
auth       sufficient     pam_tid.so
```

## ログインシェルを変更する
例えば `/usr/local/bin/bash` にする場合、`/etc/shells` に載ってないので chsh で変えようとすると怒られる。のでまず追加してから chsh する。

```
grep -q ^/usr/local/bin/bash /etc/shells || sudo tee -a /etc/shells <<< /usr/local/bin/bash
chsh -s /usr/local/bin/bash
```

## Homebrew
主にCUIコマンド類を色々探して入れるツールと認識してる。

- brew本体を入れる

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

- ls, rm, find, xargs とかの基本的なコマンドをGNU版にする。

```bash:
brew install xz binutils coreutils findutils
( echo '# coreutils'
  echo 'export PATH="$(brew --prefix coreutils)/libexec/gnubin:$PATH"'
  echo '# findutils'
  echo 'alias find=gfind'
  echo 'alias xargs=gxargs'
) >> ~/.bashrc
```

- bash-completionを入れる

```bash:
brew install bash-completion
# bash-completion
( echo '# bash-completion'
  echo 'if [ -f $(brew --prefix)/share/bash-completion/bash_completion ]; then'
  echo '  . $(brew --prefix)/share/bash-completion/bash_completion'
  echo 'fi'
) >> ~/.bashrc
```

- tmuxを入れる

```
brew install tmux reattach-to-user-namespace
```

- Ricty フォント（Powerlineパッチ版）を入れる

```bash:
(
set -e
brew install sanemat/font/ricty --with-powerline
/bin/cp /usr/local/opt/ricty/share/fonts/Ricty*Powerline.ttf ~/Library/Fonts
fc-cache -vf
brew uninstall ricty # フォントさえ手に入れば不要
)
```

- 白源フォント（Rictyの後発フォント。ファミリ名は`HackGen Console for Powerline`。バイナリ配布で導入簡単でPowerlineも対応してる）

```bash:
curl -sL https://gist.github.com/kawaz/655a491963366bf452e8dfdf62d448f2/raw/install-fonts-HackGen.sh | bash
```

## smcFanControl
本体温度とファンの回転数をステータスバーに表示するアプリ。強制的にファンの速度を上げて冷却を頑張らせることも可能。夏になると入れて秋ごろ削除する。

# 設定関連
デフォルトから変更しているところを列挙

## システム環境設定＞一般 
- 書類を閉じるときに変更内容を保持するかどうかを確認→チェックON

## システム環境設定＞Dock
- Dockを自動的に隠す／表示→チェックON

## システム環境設定＞Mission Control
- Dashboardを操作スペースとして表示→チェックOFF
    - ダッシュボード使わないから要らない！
- キーボードとマウスのショートカット→全部無効にする
    - ジェスチャー使うのでキーボードショートカットは要らない！

## システム環境設定＞Spotlight
- 検索結果＞Spotlightメニューのキーボードショートカット→チェックOFF
- 検索結果＞Spotlightウィンドウのキーボードショートカット→チェックOFF
    - `^スペース`とか超有用なキーボードをSpotlightなんかに盗られると迷惑なので！
- 検索結果＞カテゴリリストのチェックボックス→全てOFF
    - 更にターミナルで `sudo mdutil -a -i off` を実行。
    - 要は Spotlight 検索とか使わないのに普段からリソース食って邪魔だから止める！

## システム環境設定＞ディスプレイ
- 解像度を最大に変更。綺麗さより広さ！

## システム環境設定＞省エネルギー
- 電源アダプタ＞ディスプレイが切のときはコンピュータを自動でスリープさせない→チェックON
    - 放置タスクが動いてることも多いし電源ささってるときは勝手にスリープされたら困るので！

## システム環境設定＞キーボード
- キーボード＞キーのリピート→最速から2番目にする
- キーボード＞リピート入力認識までの時間→最短にする
- キーボード＞F1、F2などの全てのキーを標準のファンクションキーとしてしよう→チェックON
    - 使用頻度からして輝度や音量変更の方が使わないので
- キーボード＞修飾キー…＞CapsLock→`^ Control`に変更
    - CapsLockは邪魔でしかないので！
- ショートカット＞アクセシビリティ＞VoiceOverの入／切→チェックOFF
    - ⌘F5とかIDEで使ったりするのでデフォのショートカットは邪魔なので切る
- ショートカット＞フルキーボードアクセス→全てのコントロール
    - システムダイアログのボタンフォーカスをTabで移動できるようにするなど
- 入力ソース＞書類ごとに入力ソースを自動的に切り替える→チェックON
    - Chromeで日本語入力した後とかにiTermに戻ってきたときに勝手に日本語入力になってる問題から開放される

## システム環境設定＞トラックパッド
- ポイントとクリック＞タップでクリック→チェックON
- その他のジェスチャ＞ページ間をスワイプ→チェックOFF
    - この設定の動作は戻る進むの感覚が逆なので…、ただ戻る進むはあると便利なのでBettorTouchToolで好みの設定を作る
- その他のジェスチャ＞アプリケーションExpose(3本指で下にスワイプ)→チェックOFF
- その他のジェスチャ＞Laynchpad(親指と3本指でピンチ)→チェックOFF
    - Alfred導入したら不要になったので

## システム環境設定＞サウンド
- サウンドエフェクト＞ユーザインターフェースのサウンドエフェクトを再生→チェックOFF
    - Finderでファイル操作したりする度に音がなるのがうざすぎるので

## システム環境設定＞ユーザとグループ
- 顔写真を設定する

## システム環境設定＞日付と時刻
- 時計＞秒を表示→チェックON
- 時計＞曜日を表示→チェックON
- 時計＞日付を表示→チェックON

## Finder

- 環境設定＞一般＞新規Finderウィンドウで次を表示→`ダウンロード`に変更
    - デフォのマイファイルは邪魔なので…
- 環境設定＞詳細＞すべてのファイル名拡張子を表示→チェックON
- メニュー＞表示＞パスバーを表示→チェックON
    - 上位パスがわからないと不便なので
- ターミナルで以下を実行（タブバーにフルパスが表示されるようにする）
    - `defaults write com.apple.finder _FXShowPosixPathInTitle -boolean    true; killall Finder`
    - パスバーもいいけど上にもフルパス表示したいので


# テキスト系コンポーネントでのキーカスタマイズ

Macだと PageUp/Down や Home/End の挙動が、表示エリアだけスクロールしてカーソルがついてこないので元の場所に戻ってしまってムキーってなることが多い。何の嫌がらせかと思うがその挙動を以下ファイルで変更することが出来るのでWindows風にしておくことにする。あとバックスラッシュを入力したいのに `¥` になってしまう問題とかもIMEの種類によらず解決できたりする。
デフォルトだとファイルもディレクトリも無いのでどっちも新規に作る。このファイルを更新してから各アプリを再起動するとキーボ動作が変わっている筈だ。

```dict:~/Library/KeyBindings/DefaultKeyBinding.dict
// https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/TextDefaultsBindings/TextDefaultsBindings.html
// ^ for Control
// $ for Shift
// ~ for Option
// @ for Command
// # for numeric keypad

{
  // backslash
  "¥" = ("insertText:", "\\");

  // home/end
  "\UF729" = "moveToBeginningOfLine:";
  "\UF72B" = "moveToEndOfLine:";
  "$\UF729" = "moveToBeginningOfLineAndModifySelection:";
  "$\UF72B" = "moveToEndOfLineAndModifySelection:";
  "^\UF729" = "moveToBeginningOfDocument:";
  "^\UF72B" = "moveToEndOfDocument:";
  "$^\UF72B" = "moveToEndOfDocumentAndModifySelection:";
  "$^\UF729" = "moveToBeginningOfDocumentAndModifySelection:";

  // page up/down
  "\UF72C" = "pageUp:";
  "\UF72D" = "pageDown:";
}
```


# シェル環境構築

## 自分設定
自分設定をgithubに纏めてるからそれ取ってきてポン。

```bash:
git clone https://github.com/kawaz/dotfiles.git ~/.dotfiles
~/.dotfiles/bin/setup.sh
#上に書いたHomebrew系のも自分用なら以下でOK
bash -x ~/.dotfiles/bin/build-tmux.sh
bash -x ~/.dotfiles/bin/build-mac-coreutils.sh
bash -x ~/.dotfiles/bin/build-bash-completion.sh
```

# 削除したもの
デフォアプリや昔気まぐれで買ってしまったアプリで、使わないどころか間違って起動すると終了するのが面倒くさかったりで邪魔にしかなったことないもの一覧。
アプリを消すときは `Applications/` 以外に `Library/` とか `Application Support/` とか色んなとこに設定やデータファイルがあるときがあるので、手動削除する前に TrashMe でチェックして消した上でTrashMeで消せなかったものを主導削除すると良い。

## iPhoto
iPhoneをiTunesに繋げたいのに何故かこいつに処理を奪われて指すたびに起動してきたりと何かと邪魔なので削除。
1.5GBくらい空く。

## iMovie
一度も使ったこと無いうえに結構容量も食ってるので要らない。
2.9GBくらい空く、…と思ったらOSXに必要とされているため削除できないって言われたンゴ。

## Numbers
エクセルで開きたいのに間違って起動しちゃった上にiCloud保存とかのダイアログが⌘Qですぐに殺せなくて邪魔にしかなったこと無いので削除。
350MBくらい空く。

## Pages
使ったこと無いので消す。
470MBくらい空く。

## Photo Booth
使ったこと無いし、なんだか目障りなので消す。
20MB空く、…と思ったらOSXに必要とされているため消せない…。

## GarageBand
使わないので消す。
本体と関連ファイルで2.3GBくらい空く。

## チェス
要らないので消す。
9MB、…と思ったらOSXに必要とされているため消せない…。

## [Growl](https://itunes.apple.com/jp/app/growl/id467939042?mt=12&uo=4&at=1l3v3Y6)
デスクトップ通知ソフト。何かとこれに対応してるアプリやスクリプトがあるので入れておいたんだけど、1年位入れてたけど活用したことがなかったので削除。
あとアップデートの通知がウザい、AppStore経由で入れたのに非AppStore版のアップデート通知出してくるとか意味分からん。AppStoreのアプリアップデートしろよって話なのにな。

## [AirServer](http://www.airserver.com/)
AirPlayサーバになるアプリ。iPhoneの画面をMac上に表示したりとか。
iOS8.1+Yosemite(OSX10.10)から、iPhoneをMacに有線で繋げばQuicktimePlayerの新規ムービー収録から、iPhone画面をMac上に出したりそのまま録画したり出来るようになったので、AirServer要らなくなった。

## [LightPaper](http://www.ashokgelal.com/lightpaper-for-mac/)
Markdownエディタ。
最近は MacDown 使ってる。

## [TrashMe](https://itunes.apple.com/jp/app/trashme/id443126292?mt=12&uo=4&at=1l3v3Y6)
AppCleanerの方が使いやすいので乗り換えた。

## [Karabiner (旧KeyRemap4MacBook)](https://pqrs.org/osx/karabiner/)
キーボードのカスタマイズするやつ。macOS Sierraで動かなくなったので使わなくなったんだがなくてもそんなに困らないのでいいかな…。

- 今使ってる設定は以下のとおり。
    - ![スクリーンショット 2015-01-15 19.31.28.png](https://qiita-image-store.s3.amazonaws.com/0/18726/e1f8c3f7-7ea8-ebb9-1624-f9f462106c3d.png)
    - Vimmerにとって`Escape→EISUU+Escape`のマッピングは最重要。


## [XtraFinder](http://www.trankynam.com/xtrafinder/)
Finderを強化する。　OSXが上がるたびに不具合出るので面倒になった。
あと `⌘x, ⌘v` でカット・アンド・ペーストが出来るのが良かったんだが、最近は `⌘c, ⌘⌥v` の操作に慣れたので要らんくなった。


## [MacDown](http://macdown.uranusjr.com/)
Markdownエディタ→vimでいいや

## [WebStorm](https://www.jetbrains.com/webstorm/)
HTMLやJavascript書くのに使う→最近使ってない

## [Bartender](http://www.macbartender.com/)
ステータスバーの増えすぎたメニューアイコンをスッキリ整理してくれるアプリ。
→ macOS Shierra から `⌘` を押しながらドラッグすることでアイコンの位置入れ替えが出来るようになったのでそれで結構満足したので要らなくなった。

![スクリーンショット 2015-03-30 18.28.12.png](https://qiita-image-store.s3.amazonaws.com/0/18726/a3aaa657-e7a1-eb46-c085-fac1105e2298.png)
↑これが、↓こうなる。
![スクリーンショット 2015-03-30 18.29.05.png](https://qiita-image-store.s3.amazonaws.com/0/18726/2625b718-4365-9db3-ebc4-8ae4df817b3a.png)

- General＞Launch Bartender at Login→チェックON
- General＞Autohides→チェックON
- Menu Items＞不要なアプリを片っ端から設定変更
    - Menu Bar Item→`Show in Bartender Bar, not in Menu Bar`に変更。
    - Item Updates→チェックON