Open3

新規でMacbookを使い始めた時のメモ

HansyHansy

新たなマシンとして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
HansyHansy

必須ツールのインストール ①

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
yabairc
#!/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.."
skhdrc
# 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
脚注
  1. このへん ↩︎

HansyHansy

必要なツールのインストールその2

最低限の必須ツールを入れたので、追加設定が必要になるケースをこちらに記載

Tmux

tpmをcloneしてくる

Alacritty

OptionキーがMetaキーとして認識されないという問題があるので、ここの設定を追記する。
Alacritty 0.12.0 のリリースにより、Mac専用オプションであるoption_as_altが追加されたため、対応不要になりました。

terminfoの設定

例えばtmuxに入ってからだとinfocmpの結果がおかしくなり、きちんと動作しなくなることがある。
この記事をみてtmuxterminfoを入れると良い。[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から呼び出すようにしています。
少し使ってみましたが、外部コマンドが動かないなど問題がったため、今は使っていません。

脚注
  1. 記事がなくなると困るので、gistのリンクも残す ↩︎