はじめに
2023年2月3日、Apple が新型の MacBook Pro / Mac mini を発売しました。
おもわず財布の紐が緩んでポチってしまった方も多いと思います。
そこで、Mac を買ったらやっておきたい初期設定を記事にまとめました😀
Chrome のインストール
まず最初に Chrome をインストールし、アカウントにログインします。
初期設定の過程でいろいろと調べものをしたり、Google ドライブに保存しておいた設定ファイルなどを取り出したりしたいからです。
システム設定関連
1. 入力周りをカスタマイズする
これから設定を進める上で、入力でモタつくとイライラするので、まずは入力周りをカスタマイズします。
トラックパッドを最適化
システム設定 > トラックパッド > 軌跡の速さ
を最速にします。
同時にタップでクリック
をオンにします。
また、システム設定 > アクセシビリティ > ポインタコントロール > トラックパッドオプション
を選択し、スクロールの速さを調節します。
修飾キーを変更
システム設定 > キーボード > キーボードショートカット
を選択し、修飾キー
から以下を設定します。
「⌘ Command」と「^ Control」を入れ替える下記の設定は、私固有のトリッキーな設定です。普通の人は「Caps Lock」と「Control」を入れ替えるだけで十分と思います。
入力ソース切替のショートカットキーを変更
システム設定 > キーボード > キーボードショートカット
を選択し、入力ソース
から以下を設定します。
「⌘スペース」で日本語入力のオン/オフを切り替える下記の設定は、私固有のトリッキーな設定です。
仮想デスクトップ切替のショートカットキーを設定
システム設定 > キーボード > キーボードショートカット
を選択し、Mission Control
から以下を設定します。
「⌘H」「⌘N」で仮想デスクトップを左右に切り替える下記の設定は、私固有のトリッキーな設定です。普通の人が設定する場合は「⌘J」「⌘L」としておけば幸せになれるかもしれません。
ちなみに、なんでキーボード周りがこんなトリッキーな設定になるかというと、私が「KINESIS+Dvorak」という極めて変態的なセットアップを使っているからです😂
タブ切替のショートカットキーを設定
システム設定 > キーボード > キーボードショートカット
を選択し、アプリケーション
から以下を設定します。
キーリピートの高速化
ターミナルから次のコマンドを入力し、「キーのリピート」と「リピート入力認識までの時間」を高速にします。
defaults write NSGlobalDomain KeyRepeat -int 2
defaults write NSGlobalDomain InitialKeyRepeat -int 20
参考:Mac OS X High Sierra のキー入力速度を速くする
2. 見た目をカッコよくする
見た目によって操作効率が上がる(気がする)ので、次に外観を設定します。
アイコンを変更
自分のお気に入りのアイコンを設定します。
システム設定 > ユーザとグループ
を選択し、自分のアイコンをクリックします。
次に写真
を選択し、iCloud にある画像のなかからアイコン画像を選びます。
ローカルに保存してある画像をアイコンとして選ぶことはできません。
そのため、アイコン画像は事前に iCloud にアップロードしておく必要があります。
はじめちゃんかわいい!!
中身はただのおっさんです😭
壁紙を設定
お気に入りの壁紙は、あらかじめ Google ドライブに保存しておきます。
システム設定 > 壁紙
と選択し、フォルダを追加
から壁紙を入れたフォルダを選択します。
Dock とメニューバーを設定
システム設定 > デスクトップとDock
を選択し、Dock のサイズと「自動的に表示 / 非表示」を設定します。
また、「最近使ったアプリケーションを Dock に表示」をオフにします。
さらに、「メニューバーを自動的に表示 / 非表示」を「常に」に設定します。
なお、表示 / 非表示を切り替える速度がデフォルトでは相当遅いので、ターミナルから下記のコマンドを打つことで高速化します。
# Dockが出てくるまでの時間
defaults write com.apple.dock autohide-delay -float 0 && killall Dock
# Dockが表示アニメーションの時間
defaults write com.apple.dock autohide-time-modifier -float 0.7 && killall Dock
コンピュータの名前を変更
デフォルト設定のままだと、ターミナルや Bluetooth 上でのコンピュータの名前が「○○のMacmini」などとなっていてカッコ悪いので、こだわりのコンピュータ名に変更します。
システム設定 > 一般 > 情報 > コンピュータ名
をクリックし、コンピュータの名前を変更します。
ちなみに、私はコンピュータに南の島の名前をつけることに決めています。
3. メニューバーをカスタマイズする
システム設定 > コントロールセンター
からメニューバーに表示するアイコンを最適化します。
特に、サウンド・Bluetooth は表示させておいた方が便利でしょう。
また、システム設定 > コントロールセンター > 時計のオプション
と進めば、メニューバー右上に表示される時計の表示をカスタマイズできます。
私は「秒を表示」するようにしています。
4. セキュリティを設定する
私のメインマシンは自宅外に持ち出さない据え置き Mac mini なので、一般の推奨設定を緩和します。
各項目に注意書きを入れていますが、自宅外に持ち出す MacBook の場合は、きっちりセキュリティ対策をしておきましょう。
ファイアウォールの有効化
ネットワーク > ファイアウォール
を選択し、ファイアウォール
をオンにします。
スリープ復帰時のパスワード省略
スリープ解除でいちいちパスワード入力を求められるのは面倒なので、設定を変更します。
システム設定 > ロック画面
を選択し、「スクリーンセーバの開始後またはディスプレイがオフになったあとにパスワードを要求」で「しない」を選択します。
自宅外に持ち出す MacBook の場合は、この設定はやらない方がよいと思います。
自動ログインの設定
システム設定 > ユーザとグループ
を選択し、「自動ログイン」を設定します。
同様に、MacBook の場合は設定しない方がよいと思います。
なお、ディスクの暗号化(FireVault)は設定しません。
参考:FileVaultを利用するメリットとデメリットと、設定と解除方法について
5. Finder を使いやすくする
Finder について、下記の5つを設定します。
- サイドバーの表示項目の設定
- すべての拡張子を表示
- パスバーを表示
- 隠しファイルを表示
- .DS_Store ファイルの生成を抑制
サイドバーの表示項目の設定
Finder > 設定 > サイドバー
と選択し、サイドバーに表示する項目をカスタマイズします。
すべての拡張子を表示
Finder > 設定 > 詳細
の「すべてのファイル名拡張子を表示」にチェックを入れます。
(「ファイル名拡張子」って変な日本語だな…😒 誤訳じゃないのこれ)
パスバーを表示
Finder > 表示
の「パスバーを表示」を有効にします。
有効にすると Finder の下部に絶対パスが表示されます。
隠しファイルを表示
Finderを開いて、Command(⌘) + shift(⇧) + ドット(.)
を入力します。
このコマンドを入力するたびに、隠しファイルの表示 / 非表示を切り替えられます。
.DS_Store ファイルの生成を抑制
.DS_Store ファイルが生成されてうっとうしいので、生成されないようにします。
# ネットワークドライブ上への .DS_Store ファイルの生成を抑制
defaults write com.apple.desktopservices DSDontWriteNetworkStores true
# USB上への .DS_Store ファイルの生成を抑制
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
6. その他の設定
サウンドのフィードバックを再生
音量を変更したときに、その変更によってどれくらいの音量で音が鳴るかを知りたいことがあります。
システム設定 > サウンド
の音量を変更するときにフィードバックを再生
をオンにします。
スタックを設定
「スタック」とは、デスクトップ上のファイルを自動的にグループ分けしてくれる機能です。
デスクトップの上で右クリックし、「スタックを使用」をオンにします。
デスクトップと Dock を最適化
下記を設定します。
- 操作スペースを自動的に並べ替える → オフ
- ディスプレイごとに個別の操作スペース → オン
スクリーンショットの影を消す
(この記事を書いていた段階では、この設定を忘れていたのですが...)
デフォルトのままウィンドウのスクリーンショットを撮ると、縁取りのように影がついているのですが、下記のコマンドを打つことで、この影がつかないようにすることができます。
defaults write com.apple.screencapture disable-shadow -boolean true killall SystemUIServer
アプリケーションのインストールと設定
1. Microsoft 365 のインストール
Mac でも Word, Excel, PowerPoint あたりは使いたいのでインストールします。同時にインストールできる PC の数は5台なので、ライセンスの管理が重要です。
上記リンクからインストーラをダウンロードしましょう。インストーラを実行すれば、すぐにセットアップが完了します。
2. 開発用アプリのインストール
仕事熱心なエンジニアは、もちろん商売道具から準備していきます。
そうだよね!😏
Homebrew
まずはパッケージマネージャ Homebrew をインストールします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrew をインストールし、.Brewfile
さえ設定してしまえば、だいたいのアプリケーションは $ brew bundle
で一発インストールできるのですが、私はいつも手作業でインストールしています。
参考:brew bundleでMacのアプリをまとめてインストール・管理
また、brew install
したバイナリは /opt/homebrew/bin
以下にインストールされるので、/etc/paths
の先頭に /opt/homebrew/bin
を追加します。
$ sudo vim /etc/paths
/opt/homebrew/bin ← 追加
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
git
これがないと仕事になりません。brew でインストールできます。
brew install git
Emacs
私は Emacs 使いです。VSCode は使いません。
Mac に最適化された Emacs(Mac Port 版)を brew でインストールします。
brew tap "railwaycat/emacsmacport"
brew install --cask emacs-mac
私の init.el(抜粋)はこちら
;; コマンドキーを Ctrl キーにする
(setq mac-command-modifier 'control)
;; オプションキーを Meta キーにする
(setq mac-option-modifier 'meta)
;; パスを通す
(defun add-to-load-path (&rest paths)
(let (path)
(dolist (path paths paths)
(let ((default-directory (expand-file-name (concat user-emacs-directory path))))
(add-to-list 'load-path default-directory)
(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
(normal-top-level-add-subdirs-to-load-path))))))
(add-to-load-path "elisp" "conf" "public_repos")
;; 言語の設定
(set-language-environment 'Japanese)
(prefer-coding-system 'utf-8)
;; パッケージ管理
(require 'package)
(setq package-archives
'(("gnu" . "http://elpa.gnu.org/packages/")
("marmalade" . "https://marmalade-repo.org/packages/")
("melpa" . "http://melpa.org/packages/")
("org" . "http://orgmode.org/elpa/")))
(package-initialize)
;; キーバインディングの設定
(define-key global-map (kbd "C-q") 'Control-X-prefix)
(define-key global-map (kbd "C-j") 'mode-specific-command-prefix)
(define-key global-map (kbd "C-q C-o") 'save-buffer)
(define-key global-map (kbd "C-q C-j") 'save-buffers-kill-emacs)
(define-key global-map (kbd "C-q C-a") 'write-file)
(define-key global-map (kbd "C-l") 'set-mark-command)
(define-key global-map (kbd "C-t") 'kill-line)
(define-key global-map (kbd "C-z") 'kill-region)
(define-key global-map (kbd "C-u") 'forward-char)
(define-key global-map (kbd "C-x") 'backward-char)
(define-key global-map (kbd "C-q x") 'switch-to-buffer)
(define-key global-map (kbd "C-q C-u") 'find-file)
(define-key global-map (kbd "C-r") 'isearch-backward)
(define-key global-map (kbd "C-p") 'other-window)
(define-key global-map (kbd "C-o") 'split-window-horizontally)
(define-key global-map (kbd "M-u") 'forward-word)
(define-key global-map (kbd "M-x") 'backward-word)
(define-key global-map (kbd "M-q") 'execute-extended-command)
(define-key global-map (kbd "C-j C-l") 'comment-region)
(define-key global-map (kbd "C-j C-r") 'uncomment-region)
(define-key global-map (kbd "M-p") 'previous-buffer)
(define-key global-map (kbd "M-k") 'next-buffer)
(define-key global-map (kbd "C-q g") 'magit-status)
(define-key global-map (kbd "C-j t j") 'quickrun)
;; ¥の代わりにバックスラッシュを入力する
(define-key global-map [?¥] [?\\])
;; ウィンドウの色の設定
(load-theme 'doom-dark+ t)
(if window-system (progn
(set-frame-parameter nil 'alpha 93) ;透明度
))
;; フレームの設定
(setq default-frame-alist
(append (list
;; サイズ・位置
'(width . 170) ; 横幅(文字数)
'(height . 59) ; 高さ(行数)
'(top . 120) ; フレーム左上角 y 座標
'(left . 2500) ; フレーム左上角 x 座標
)
default-frame-alist))
;; スクロールは1行ごとに
(setq mouse-wheel-scroll-amount '(1 ((shift) . 5)))
;; スクロールの加速をやめる
(setq mouse-wheel-progressive-speed nil)
;; 行番号の表示
(progn
(global-display-line-numbers-mode)
(set-face-attribute 'line-number nil
:foreground "#808080"
:background "#0f0f0f")
(set-face-attribute 'line-number-current-line nil
:foreground "gold"))
;; 対応する括弧をハイライトする
(show-paren-mode t)
(setq show-paren-style 'mixed)
;; メニューバーとツールバーを表示しない
(menu-bar-mode 0)
(tool-bar-mode 0)
;; scratch の初期メッセージを表示しない
(setq initial-scratch-message "")
;; 起動時のメッセージを表示しない
(setq inhibit-startup-message t)
;; Tabキーを無効化する
(setq-default indent-tabs-mode nil)
;; 自動再読み込み
(global-auto-revert-mode t)
;; 画像ファイルを表示する
(auto-image-file-mode t)
;; バックアップとオートセーブファイルを~/.emacs.d/backups/へ集める
(add-to-list 'backup-directory-alist
(cons "." "~/.emacs.d/backups/"))
(setq auto-save-file-name-transforms
`((".*" ,(expand-file-name "~/.emacs.d/backups/") t)))
;; オートセーブファイル作成までの秒間隔
(setq auto-save-timeout 15)
;; オートセーブファイル作成までのタイプ間隔
(setq auto-save-interval 60)
;; 終了時にオートセーブファイルを削除する
(setq delete-auto-save-files t)
;; yes-or-no を y-or-n で応えるようにする
(fset 'yes-or-no-p 'y-or-n-p)
;; 行の先頭で C-k を一回押すだけで行全体を消去する
(setq kill-whole-line t)
;; 最後に改行を入れる。
(setq require-final-newline t)
;; タイトルバーにファイル名をフルパスで表示する
(setq frame-title-format (format "emacs@%s : %%f" (system-name)))
;; 時刻表示
(display-time)
;; 以前編集したファイルのカーソル位置を覚える設定
(require 'saveplace)
(save-place-mode 1)
;; C-hv とか ファイル名補完時のウィンドウを自動的にリサイズする。
(temp-buffer-resize-mode t)
;; default scroll bar消去
(scroll-bar-mode 0)
;; フォント設定
(set-frame-font "PlemolJP light 19")
;;; フォントサイズ変更の設定
(global-set-key [(control +)] (lambda () (interactive) (text-scale-increase 1)))
(global-set-key [(control -)] (lambda () (interactive) (text-scale-decrease 1)))
(global-set-key [(control ?0)] (lambda () (interactive) (text-scale-increase 0)))
;; 自動補完
(leaf company
:doc "Modular text completion framework"
:req "emacs-24.3"
:tag "matching" "convenience" "abbrev" "emacs>=24.3"
:url "http://company-mode.github.io/"
:emacs>= 24.3
:ensure t
:leaf-defer nil
:bind ((company-active-map
("M-n" . nil)
("M-p" . nil)
("C-s" . company-filter-candidates)
("C-n" . company-select-next)
("C-p" . company-select-previous)
("<tab>" . company-complete-selection))
(company-search-map
("C-n" . company-select-next)
("C-p" . company-select-previous)))
:custom ((company-idle-delay . 0)
(company-minimum-prefix-length . 1)
(company-transformers . '(company-sort-by-occurrence)))
:global-minor-mode global-company-mode)
(leaf company-c-headers
:doc "Company mode backend for C/C++ header files"
:req "emacs-24.1" "company-0.8"
:tag "company" "development" "emacs>=24.1"
:added "2020-03-25"
:emacs>= 24.1
:ensure t
:after company
:defvar company-backends
:config
(add-to-list 'company-backends 'company-c-headers))
;; Undohist
(require 'undohist)
(undohist-initialize)
;; Smartparens
(leaf smartparens
:ensure t
:hook (after-init-hook . smartparens-global-strict-mode) ; strictモードを有効化
:require smartparens-config
:custom ((electric-pair-mode . nil))) ; electric-pair-modeを無効化
;; flycheck
(leaf flycheck
:doc "On-the-fly syntax checking"
:req "dash-2.12.1" "pkg-info-0.4" "let-alist-1.0.4" "seq-1.11" "emacs-24.3"
:tag "minor-mode" "tools" "languages" "convenience" "emacs>=24.3"
:url "http://www.flycheck.org"
:emacs>= 24.3
:ensure t
:global-minor-mode global-flycheck-mode)
;; elpy
(elpy-enable)
(setq elpy-rpc-virtualenv-path 'current)
(setq python-shell-completion-native-disabled-interpreters '("python3"))
;; autopep8
(require 'py-autopep8)
(add-hook 'elpy-mode-hook 'py-autopep8-mode)
;; isort
(require 'py-isort)
(add-hook 'python-mode-hook
'(lambda()
(add-hook 'before-save-hook 'py-isort-before-save)))
参考:Dvorak 配列でも快適に使えるように Emacs のキーバインドを魔改造する
iTerm2
Mac 標準のターミナルはクソダサいので、iTerm2 をインストールします。
brew install --cask iterm2
Dracula テーマを適用し、ウィンドウを半透明にするなど外観をゴリゴリとカスタマイズすると、最終的にこんな感じになります。カッコいい。
参考:エンジニアだったらターミナルの見た目にはこだわった方がいいんじゃない?
Ricty Diminished
プログラミング用フォントとして名高い「Ricty Diminished」一択だと思います。
このフォントは、大きな不具合を残したまま今後メンテナンスされないことが確定しました。メンテナンスが継続している他のフォントを使う方が無難とのことです。
参考:RictyフォントとRicty Diminishedフォントが正式にサポート終了となった話
→ @sounisi5011さん、情報提供ありがとうございました!
私は PlemolJP に逃げました。
brew tap "homebrew/cask-fonts"
brew install --cask font-plemol-jp
Docker Desktop
Docker Hub から Docker Desktop for Mac(with Apple Silicon)をダウンロードして、インストールします。
TablePlus
シンプルな GUI で直感的に使いやすい SQL クライアントです。
brew install --cask tableplus
Slack & Zoom
どちらも必須のコミュニケーションツールですね。
画面共有できるようにアクセシビリティを許可しておくことを忘れないようにしましょう。
brew install --cask slack zoom
zsh の設定
zsh の機能を強化するパッケージを導入し、.zshrc
を設定します。
brew install zsh-completions zsh-autosuggestions zsh-syntax-highlighting
私の .zshrc(抜粋)はこちら
typeset -U path PATH
path=(
/opt/homebrew/bin(N-/)
/opt/homebrew/sbin(N-/)
/usr/bin
/usr/sbin
/bin
/sbin
/usr/local/bin(N-/)
/usr/local/sbin(N-/)
/Library/Apple/usr/bin
)
if type brew &>/dev/null; then
FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
autoload -Uz compinit && compinit
fi
PROMPT='[%n@%F{green}%\%m:%F{white}%\%1~]$ '
alias h='ls -lLhG'
alias ha='ls -lhaHLG'
alias df='df -h'
alias cd='pushd'
alias p='popd'
alias cp='cp -r'
alias python='python3'
alias vi='vim'
setopt share_history
setopt hist_ignore_all_dups
setopt hist_ignore_space
setopt hist_reduce_blanks
setopt extended_glob
setopt correct
Parallels Desktop
Windows を使いたいときもあるので、Parallels をインストールします。
3. 便利系アプリのインストール
アプリはいろいろとインストールしていますが、私にとって必須となるのは次の5つです。
- BetterTouchTool
- AltTab
- PopClip
- Desktop Calender Plus
- LINE
BetterTouchTool
もはやこれがないと Mac を使えないと感じるほど、手になじんだアプリ。
brew install --cask bettertouchtool
ちなみに、ウィンドウスナップと移動
のパートで下記のように設定すると、Command キーを押しているとき、カーソルの移動に吸いつくようにウィンドウを移動させることができて便利になります。
AltTab
Windows から Mac に乗り換えた人には必須になるであろうアプリ。
ウィンドウを「Alt(Option)+Tab」で切り替えることができるようになります。
brew install --cask alt-tab
参考:AltTab - Windows風のAlt+TabをmacOSで実現
PopClip
AppStore からインストールします。
2023年2月時点で 2800 円もするアプリだけど、もはやこれなしでは Mac を操作できない。
参考:選択したテキストやURLをさまざまなものに保存、加工できるPopclipの便利な厳選拡張機能
Desktop Calender Plus
AppStore からインストールします。
2023年2月時点で 1100 円のアプリ。デスクトップ上にカレンダーや時計が表示できます。
LINE
AppStore からインストールします。
おわりに
新しい PC をイチから自分好みにセットアップするって楽しいですよね。個人的なこだわりで商売道具を俺色に染めていく過程がなんともウズウズします。
もしおすすめの設定があれば、コメント欄で教えていただけると嬉しいです!
それでは皆さん、よい Mac ライフを。
長い記事を最後まで読んでくださって、ありがとうございました!