Kanazawa.rb meetup #108 https://kzrb.doorkeeper.jp/events/125406 の LT 大会で発表したスライドです。
続・開発環境を晒す~MacOS編~2021-08-21(Sat)Kanazawa.rb meetup #108祝9周年 LT大会 - オンラインmuryoimpl
View Slide
おしながき● 環境の概要● ターミナル周りの設定・環境(環境ごとの分岐)● 追加した機器
● 石川県金沢市内の某所でひきこもってフルリモートワーク(変わらず)● お仕事では M1 Mac を使うことになりました。● デスクトップでは、yabai というTiling window manager を使います。○ https://github.com/koekeishiya/yabai○ キーバインディングは、できるだけ Linux 側の Window manager に寄せてみている● その他の環境は前回の発表を参照のこと○ https://muryoimpl.com/blog/2021-07-18/participated-in-kzrb-meetup-107/環境の概要
ターミナル周りの設定・環境● 設定はdotfiles は https://github.com/muryoimpl/dotfiles に保存して、ホームディレクトリにシンボリックリンクを作成して利用しています。(変わらず)● Mac は Homebrew でパッケージ管理をします。brew bundle dump --global --force で Brewfile に導入したパッケージのリストを同期している。● zsh、tmux、vimrc、symlink 用の Ruby ファイルには、環境特有の設定をする必要があるため、いくつか分岐を追加しました。
Homebrew● Intel 版と Apple Silicon 版があり、ログインシェル とターミナルアプリがどちら向けにビルドされたものかでコンパイラがどちら向きのものか決まるっぽいので気をつけろ!○ Alacritty が Intel 向けでハマったので、自分で Apple Silicon 向けにビルドしました。● どちら向けのビルドか、ユニバーサルなのかによって環境構築の分岐のバリエーションが増えているので、少し間違えると環境構築に時間かかりがち。○ mitamae とか使って自動化したい。時間と実行環境を手配中。
zsh、tmux、vimrc、symlink.rb の分岐● 各ファイル、OS ごとに使い分けたい値があるため、それぞれをそれぞれの方法で分岐していく○ OS ごとに複数のファイルを持ちたくないよねー● それでも分岐にはそれぞれの流儀があるので、手間ですねぇ○ 本当は OS の使い分けはしたくないのだけれども …そのちまちました作業が楽しかったり面倒だったりするのだ
シンボリックリンク作成用スクリプトirb で内容確認すると面白いかも
.zshrc は uname と if で分岐する
.tmux.conf は if-shell, uname と grep で分岐する
.virmc は uname で分岐するこの分岐意味あるのかわかってないが、少なくともLinux向けの設定ではMacでは動かなかった
追加した機器● macOSユーザガイド 「Macで複数のディスプレイを使う」によると、外部ディスプレイの接続対応数は 1 。Apple さんは大画面ディスプレイを 1 つだけ接続するというスタイル推し。● 私は複数枚使いたかったので、DisplayLink 対応のドックを購入した。WAVLINK: WL-UG69DK1-Ahttps://www.amazon.co.jp/gp/product/B0832ZR493/DisplayLink Manager.app を入れると複数枚のディスプレイに対応できる。● ただし、DisplayLinkはディスプレイの縦置き表示には対応していない様子。○ 対応が待たれる。ディスプレイが 1 枚生きながらに死んでるのよ …
OSごとに設定分岐できるの便利!!以上