新規でMacbookを使い始めた時のメモ
新たなマシンとしてMacbook proを入手したので、初期設定等の覚書を残しておきます。
インストールするツールのリスト(brew)
- koekeishiya/formulae/yabai
- koekeishiya/formulae/skhd
- hammerspoon
- jq
- neovim
- tmux
- fzf
- alacritty
- セキュリティから実行可能にできるように設定を変更する必要がある
- homebrew/cask-fonts/fira-code
- slack
- visual-studio-code
- docker
- zoom
- pyenv
- poetry
ストアからインストール
- Safe in Cloud
- runcat
必須ツールのインストール ①
Chromeをインストール
SafariでChromeを調べてインストールするだけ
キーボードショートカットを整理
デフォルトのショートカットには不要なものが多いので、一通り確認して消す
yabai + skhd + stackline の導入
人類は、自前でフローティングウィンドウを管理しきれるほど知能性が高くない。
ので、フローティングウィンドウをいい感じに管理してくれるスタック型のウィンドウマネージャーは早急に用意する必要がある。
お金があれば有料アプリを使っても良いのだが、使い始めて間もないマシンに有料ソフトを入れるのは躊躇われるので、無料ソフトでどうにかする。
実は以前少しだけMacbookを使った経験があり、その時に導入した yabai + skhd + stackline が神ツールだということを知っていたので、これを導入する。
導入記事は探せばいくらでも出てくる[1]ので、最低限簡単にアクセスできるようにリンクと簡単な補足だけ置いておく。
yabai : https://github.com/koekeishiya/yabai
skhd : https://github.com/koekeishiya/skhd
stackline : https://github.com/AdamWagner/stackline
yabaircの準備
yabaiを動かすためには、yabaircを準備しておく必要がある。
基本的には、公式のexampleをコピペすればいいと思う。
カスタマイズの内容については、個人的に気になった部分だけ解説
- window_gap : ウィンドウ間の幅
- *_padding : 画面端からのパディング。window_gapと値をそろえると綺麗?
- mouse_follows_focus : コマンドでウィンドウフォーカスを選択した際に、マウスも一緒にフォーカスしたウィンドウに動かす設定
- focus_follows_mouse : マウスクリックせずにフォーカスウィンドウを切り替える(
autofocus
)等を設定できる
skhdrcの準備
yabai単体では、キーボードショートカットを利用したウィンドウフォーカスの変更を実現できない。
そのため、skhdを利用してショートカットキーを作っておく。
取り急ぎ、skhdrcとyabaircをメモ程度に残しておく。
yabairc + skhdrc
#!/usr/bin/env sh
#
# for this to work you must configure sudo such that
# it will be able to run the command without password
#
# see this wiki page for information:
# - https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(latest-release)#configure-scripting-addition
#
# yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
# sudo yabai --load-sa
#
# global settings
yabai -m config \
mouse_follows_focus on \
focus_follows_mouse autofocus \
window_origin_display default \
window_placement second_child \
window_zoom_persist on \
window_topmost off \
window_shadow off \
window_animation_duration 0.0 \
window_animation_frame_rate 120 \
window_opacity_duration 0.0 \
active_window_opacity 1.0 \
normal_window_opacity 0.90 \
window_opacity off \
insert_feedback_color 0xffd75f5f \
active_window_border_color 0xff775759 \
normal_window_border_color 0xff555555 \
window_border_width 02 \
window_border_radius 10 \
window_border_blur off \
window_border_hidpi on \
window_border on \
split_ratio 0.50 \
split_type auto \
auto_balance off \
top_padding 04 \
bottom_padding 04 \
left_padding 04 \
right_padding 04 \
window_gap 00 \
layout bsp \
mouse_modifier fn \
mouse_action1 move \
mouse_action2 resize \
mouse_drop_action swap
echo "yabai configuration loaded.."
# focus window
## 左右のウィンドウへフォーカス(画面内で循環)
cmd - h : yabai -m window --focus west || yabai -m display --focus west || (yabai -m display --focus last && yabai -m window --focus last)
cmd - l : yabai -m window --focus east || yabai -m display --focus east || (yabai -m display --focus first && yabai -m window --focus first)
# focus display
## Need Config
# move window
## 左右
shift + cmd - h : yabai -m window --warp west
shift + cmd - l : yabai -m window --warp east
shift + cmd - k : yabai -m window --warp north || yabai -m window --display north
shift + cmd - j : yabai -m window --warp south || yabai -m window --display south
# stack window
alt - s : yabai -m window --stack recent || (yabai -m window --toggle float && yabai -m window --toggle float)
## スタッキング状態ならTrue, スタッキンでないならFalse
# [ $(yabai -m query --windows --window 544 | jq '."stack-index"') -ne 0 ]
## 上下のスタックウィンドウに変更
cmd - k : [ $(yabai -m query --windows --window | jq '."stack-index"') -ne 0 ] && yabai -m window --focus stack.prev || yabai -m window --focus north
cmd - j : [ $(yabai -m query --windows --window | jq '."stack-index"') -ne 0 ] && yabai -m window --focus stack.next || yabai -m window --focus south
# float window
shift + cmd - space : yabai -m window --toggle float
# ターミナルの起動
ctrl - return : alacritty
必要なツールのインストールその2
最低限の必須ツールを入れたので、追加設定が必要になるケースをこちらに記載
Tmux
tpmをcloneしてくる
Alacritty
OptionキーがMetaキーとして認識されないという問題があるので、ここの設定を追記する。
Alacritty 0.12.0 のリリースにより、Mac専用オプションであるoption_as_alt
が追加されたため、対応不要になりました。
terminfoの設定
例えばtmux
に入ってからだとinfocmp
の結果がおかしくなり、きちんと動作しなくなることがある。
この記事をみてtmux
のterminfo
を入れると良い。[1]
neovim
現状は、vim-plugをcloneし、プラグインを落としておく以外は特にやることがない。
Pipr
ツールの詳細は(gihyoさんの記事)[https://gihyo.jp/admin/serial/01/ubuntu-recipe/0723]になげます。
残念ながら、依存パッケージの関係で単純にMac上で動かせないのですが、このgistにMacで使用するための設定が書かれています。
ファイルは~/.local/share
に配置し、pipr_macos.zsh
を.zshrcから呼び出すようにしています。
少し使ってみましたが、外部コマンドが動かないなど問題がったため、今は使っていません。