設定メモ: Mac mini(2018) - 2
はじめに
今回は CLI 廻りの環境設定をしていきます。
Alacritty
macOS 標準のターミナルよりもこちらの方が好みなのでインストール。
作業はターミナルで実行。
(ターミナルを使うのはこれが最初で最後)
$ mkdir tmp
$ cd tmp
$ git clone https://github.com/alacritty/alacritty.git
xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.
git コマンドを実行しようとすると、 Xcode の Command Line Tools をインストールするプロンプトが表示されるので指示に従ってインストール。
その後、再実行。
$ git clone https://github.com/alacritty/alacritty.git
$ cd alacritty
ビルドするには Rust のコンパイラが必要。
コンパイラをインストールするため、 rustup をインストール。
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
インストールで rustup コマンドへのパスが設定されている。
パスが有効になったシェルで作業をするようシェルを起動。
$ zsh
🤔 macOS の標準シェルって zsh になっていたのか・・・。
$ rustup override set stable
$ rustup update stable
$ make app
$ cp -a target/release/osx/Alacritty.app /Applications/
これで Alacritty が利用できる。
その他
Alacritty からファイルにアクセスしようとすると警告が表示されるため、以下を設定しておく。
- システム環境設定
- セキュリティとプライバシー
- プライバシー
- フルディスクアクセス
Alacritty を追加
- フルディスクアクセス
- プライバシー
- セキュリティとプライバシー
また、追加でインストールするものが幾つかある。
以降は Alacritty で作業。
Terminfo
$ cd tmp/alacritty
$ infocmp alacritty
infocmp: couldn't open terminfo file (null).
$ sudo tic -xe alacritty,alacritty-direct extra/alacritty.info
$ infocmp alacritty
(snip)
Manual Pages
$ sudo mkdir -p /usr/local/share/man/man1
$ gzip -c extra/alacritty.man |sudo tee /usr/local/share/man/man1/alacritty.1.gz >/dev/null
Shell completions
シェル毎に実行するコマンドが異なっている。
後でログインシェルを fish に変更するため、この作業はログインシェルの変更後に実行。
$ cd tmp/alacritty
$ mkdir -p $fish_complete_path[1]
$ cp extra/completions/alacritty.fish $fish_complete_path[1]/alacritty.fish
設定ファイル
設定ファイルは以下に置く。
~/.config/alacritty/alacritty.yml
Homebrew
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fish shell
$ brew install fish
ログインシェルを変更。
$ echo /usr/local/bin/fish |sudo tee -a /etc/shells
$ chsh -s /usr/local/bin/fish
tmux
$ brew install tmux
管理しやすいよう設定ファイルは ~/.config/tmux
配下に置く。
$ mkdir -p .config/tmux
$ vi .config/tmux/.tmux.conf
$ ln -sfv .config/tmux/.tmux.conf
set -g status-right "%H:%M"
set -g window-status-current-style "underscore"
set -g default-terminal 'xterm-256color'
set -g bell-action none
unbind C-b
set -g prefix C-x
bind C-x send-prefix
bind | split-window -h
bind - split-window -v
bind -n C-t last-pane
set -g mouse on
set -g set-clipboard off
bind -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel 'pbcopy'
Zenn CLI
$ brew install nodejs
あとは公式の記事の通りです。
Rust
Alacritty をインストールする時点で Rust をインストールしていたが、 fish ではパスを設定していなかったため素直に利用できない。
ということで、パスを設定する。
$ set -U fish_user_paths ~/.cargo/bin $fish_user_paths
$ set -S fish_user_paths
Zellij
この記事を見て知りました。
tmux の代わりに使ってみようかと。
Rust はインストールしてあるので cargo でインストール。
$ cargo install zellij
Nerd Fonts もインストールしておいた方が良さそうなので FiraCode Nerd Font をダウンロード。
フォントファイルがたくさんあって良く分からないが、とりあえず以下のものだけをインストール。
Fura Code Bold Nerd Font Complete Mono Windows Compatible.ttf
Fura Code Light Nerd Font Complete Mono Windows Compatible.ttf
Fura Code Medium Nerd Font Complete Mono Windows Compatible.ttf
Fura Code Regular Nerd Font Complete Mono Windows Compatible.ttf
Fura Code Retina Nerd Font Complete Mono Windows Compatible.ttf
とりあえず、初期設定の内容を設定ファイルへ吐き出して、この内容を元にカスタマイズ。
$ mkdir ~/.config/zellij
$ zellij setup --dump-config >foo
$ mv foo ~/.config/zellij/config.yaml
設定ファイルでキーバインディングを変更しても、ターミナル下部のナビゲーションには反映されない。
(キーバインディングは変更できている)
おわりに
これで以下のものが使えるようになりました。
- Alacritty
- fish shell
- Homebrew
- tmux
- Zenn CLI
- Rust
- Zellij
Discussion