📝

設定メモ: Mac mini(2018) - 2

2021/06/20に公開

はじめに

今回は CLI 廻りの環境設定をしていきます。

Alacritty

macOS 標準のターミナルよりもこちらの方が好みなのでインストール。

作業はターミナルで実行。
(ターミナルを使うのはこれが最初で最後)

console
$ 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 をインストールするプロンプトが表示されるので指示に従ってインストール。

その後、再実行。

console
$ git clone https://github.com/alacritty/alacritty.git
$ cd alacritty

ビルドするには Rust のコンパイラが必要。
コンパイラをインストールするため、 rustup をインストール。

console
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

インストールで rustup コマンドへのパスが設定されている。
パスが有効になったシェルで作業をするようシェルを起動。

console
$ zsh

🤔 macOS の標準シェルって zsh になっていたのか・・・。

console
$ rustup override set stable
$ rustup update stable
$ make app
$ cp -a target/release/osx/Alacritty.app /Applications/

これで Alacritty が利用できる。

その他

Alacritty からファイルにアクセスしようとすると警告が表示されるため、以下を設定しておく。

  • システム環境設定
    • セキュリティとプライバシー
      • プライバシー
        • フルディスクアクセス
          Alacritty を追加

また、追加でインストールするものが幾つかある。
以降は Alacritty で作業。

Terminfo

console
$ 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

console
$ 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 に変更するため、この作業はログインシェルの変更後に実行。

console
$ 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

console
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

fish shell

console
$ brew install fish

ログインシェルを変更。

console
$ echo /usr/local/bin/fish |sudo tee -a /etc/shells
$ chsh -s /usr/local/bin/fish

tmux

console
$ brew install tmux

管理しやすいよう設定ファイルは ~/.config/tmux 配下に置く。

console
$ mkdir -p .config/tmux
$ vi .config/tmux/.tmux.conf
$ ln -sfv .config/tmux/.tmux.conf
.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

console
$ brew install nodejs

あとは公式の記事の通りです。

https://zenn.dev/zenn/articles/install-zenn-cli

Rust

Alacritty をインストールする時点で Rust をインストールしていたが、 fish ではパスを設定していなかったため素直に利用できない。
ということで、パスを設定する。

console
$ set -U fish_user_paths ~/.cargo/bin $fish_user_paths
$ set -S fish_user_paths

Zellij

この記事を見て知りました。

https://zenn.dev/gosarami/articles/4becaa18273216fec5ee

tmux の代わりに使ってみようかと。

Rust はインストールしてあるので cargo でインストール。

console
$ 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

とりあえず、初期設定の内容を設定ファイルへ吐き出して、この内容を元にカスタマイズ。

console
$ mkdir ~/.config/zellij
$ zellij setup --dump-config >foo
$ mv foo ~/.config/zellij/config.yaml

設定ファイルでキーバインディングを変更しても、ターミナル下部のナビゲーションには反映されない。
(キーバインディングは変更できている)

おわりに

これで以下のものが使えるようになりました。

  • Alacritty
  • fish shell
  • Homebrew
  • tmux
  • Zenn CLI
  • Rust
  • Zellij

Discussion