前提#
- macOS Montrey
- Homebrew 導入済み
使うもの#
Alacritty(ターミナルエミュレータ)#
公式サイトはこちら。
Rust 製の軽量・シンプルなターミナルエミュレータです。
日本語入力がおかしいという問題があったりするものの(
参考)、早くて使いやすいです。
多機能なやつも試してみましたが、結局はここに落ち着きました。
Homebrew 経由でインストール可能です:
1$ brew install --cask alacritty
設定ファイルは .config/alacritty/alacritty.yml
に置きます。
こちらを参考に以下のように設定しています(次に紹介する tmux と関連した設定も入っています):
1window:
2 # デカめがいいので
3 dimensions:
4 columns: 220
5 lines: 75
6
7 # macは角丸ウインドウなので余白をとったほうが良い
8 padding:
9 x: 8
10 y: 4
11
12 # 少し透過
13 opacity: 0.85
14
15scrolling:
16 # consoleのlogを10000行まで保持
17 history: 10000
18
19 # スクロール量は3行
20 multiplier: 3
21
22# フォント設定(白源フォントを利用)
23font:
24 normal:
25 family: 'HackGen Console NFJ'
26 style: Regular
27
28 bold:
29 family: 'HackGen Console NFJ'
30 style: Bold
31
32 size: 14.0
33
34 offset:
35 y: 1
36
37# 基本はデフォルトのzshだが、tmuxを起動するように設定する
38# また起動済みのtmuxがあればattachにする
39shell:
40 program: /usr/local/bin/zsh
41 args:
42 - -l
43 - -c
44 - "/usr/local/bin/tmux a -t 0 || /usr/local/bin/tmux -u"
45
46# キーバインド
47key_bindings:
48 # wikiのrecommnedをそのままコピーしただけ
49 - { key: Comma, mods: Command, command:
50 {program: "sh", args: ["-c","open ~/.config/alacritty/alacritty.yml"]} }
51 - { key: N, mods: Command, action: SpawnNewInstance }
52 - { key: Space, mods: Alt, chars: " " }
53 - { key: Back, mods: Super, chars: "\x15" } # delete word/line
54 - { key: Left, mods: Alt, chars: "\x1bb" } # one word left
55 - { key: Right, mods: Alt, chars: "\x1bf" } # one word right
56 - { key: Left, mods: Command, chars: "\x1bOH", mode: AppCursor } # Home
57 - { key: Right, mods: Command, chars: "\x1bOF", mode: AppCursor } # End
58 # tmuxのprefixをCtrl-Qにしているので、その設定
59 # これがないとtmuxのprefixが効かずに、Alacrittyのキーバインドに持っていかれるっぽい?
60 - { key: Q, mods: Control, chars: "\x11" } # tmux prefix
61
62# Colors (Solarized Dark)
63colors:
64 # Default colors
65 primary:
66 background: '#002b36' # base03
67 foreground: '#839496' # base0
68
69 # Cursor colors
70 cursor:
71 text: '#002b36' # base03
72 cursor: '#839496' # base0
73
74 # Normal colors
75 normal:
76 black: '#073642' # base02
77 red: '#dc322f' # red
78 green: '#859900' # green
79 yellow: '#b58900' # yellow
80 blue: '#268bd2' # blue
81 magenta: '#d33682' # magenta
82 cyan: '#2aa198' # cyan
83 white: '#eee8d5' # base2
84
85 # Bright colors
86 bright:
87 black: '#002b36' # base03
88 red: '#cb4b16' # orange
89 green: '#586e75' # base01
90 yellow: '#657b83' # base00
91 blue: '#839496' # base0
92 magenta: '#6c71c4' # violet
93 cyan: '#93a1a1' # base1
94 white: '#fdf6e3' # base3
tmux(端末多重化ソフトウェア)#
Alacritty は iTerm2 のようにタブ機能がついてないので、1つのターミナルを画面分割などをすることで複数のターミナルとして操作できるようにするために導入します。
こちらも、Homebrew 経由でインストールできます:
1$ brew install tmux
設定ファイルは ~/.config/tmux.conf
に置きます。
1# tmux起動時のシェルをzshにする
2set-option -g default-shell /bin/zsh
3
4# tmuxを256色表示できるようにする
5set-option -g default-terminal screen-256color
6set -g terminal-overrides 'xterm:colors=256'
7
8# prefixキーをC-qに変更
9set -g prefix C-q
10
11# C-bのキーバインドを解除
12unbind C-b
13
14# ステータスバーをトップに配置する
15set-option -g status-position top
16
17# 左右のステータスバーの長さを決定する
18set-option -g status-left-length 90
19set-option -g status-right-length 90
20
21# #P => ペイン番号
22# 最左に表示
23set-option -g status-left '#H:[#P]'
24
25# Wi-Fi、バッテリー残量、現在時刻
26# 最右に表示
27set-option -g status-right '#(wifi) #(battery --tmux) [%Y-%m-%d(%a) %H:%M]'
28
29# ステータスバーを1秒毎に描画し直す
30set-option -g status-interval 1
31
32# センタライズ(主にウィンドウ番号など)
33set-option -g status-justify centre
34
35# ステータスバーの色を設定する
36set-option -g status-bg "colour238"
37
38# status line の文字色を指定する。
39set-option -g status-fg "colour255"
40
41# vimのキーバインドでペインを移動する
42bind h select-pane -L
43bind j select-pane -D
44bind k select-pane -U
45bind l select-pane -R
46
47# vimのキーバインドでペインをリサイズする
48bind -r H resize-pane -L 5
49bind -r J resize-pane -D 5
50bind -r K resize-pane -U 5
51bind -r L resize-pane -R 5
52
53# | でペインを縦分割する
54bind | split-window -h
55
56# - でペインを縦分割する
57bind - split-window -v
58
59# 番号基準値を変更
60set-option -g base-index 1
61
62# マウス操作を有効にする
63set-option -g mouse on
64bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
65
66# コピーモードを設定する
67# コピーモードでvimキーバインドを使う
68setw -g mode-keys vi
69
70# 'v' で選択を始める
71bind -T copy-mode-vi v send -X begin-selection
72
73# 'V' で行選択
74bind -T copy-mode-vi V send -X select-line
75
76# 'C-v' で矩形選択
77bind -T copy-mode-vi C-v send -X rectangle-toggle
78
79# 'y' でヤンク
80bind -T copy-mode-vi y send -X copy-selection
81
82# 'Y' で行ヤンク
83bind -T copy-mode-vi Y send -X copy-line
84
85# 'C-p'でペースト
86bind-key C-p paste-buffer
Zsh(シェル)#
fish shell とか Nushell のような新しいシェルも試してみましたが、結局 zsh に戻ってきました。
mac に標準で最初から入っているものを使っています。
Nushell は Rust 製なので気にはなってます。もうちょっと使いやすくなったら乗り換えるかも。
Starship(プロンプト)#
公式サイトはこちら。
今まで Zsh の設定をゴリゴリ書いたり、
oh-my-zsh を利用したりして、プロンプトのカスタマイズをしてたりしましたが、これで一発で解決しました。Rust 製です。
これもまた、Homebrew 経由でインストールできます:
1$ brew install starship
設定ファイルは ~/.config/starship.toml
で可能です。
こちらを参考に設定していきます:
(もっと高度な設定は
公式ドキュメントを参考にすればできそうですが、追々で…)
1add_newline = true
2
3[character]
4success_symbol = "[>](bold green)"
5error_symbol = "[✗](bold red)"
6
7[username]
8style_user = "white bold"
9style_root = "black bold"
10format = "user: [$user]($style) "
11disabled = false
12show_always = true
13
14[directory]
15truncation_length = 100
16truncate_to_repo = false
17
18[memory_usage]
19disabled = false
20threshold = -1
21style = "bold dimmed green"
22format = "via [${ram_pct} / ${swap_pct}]($style) "
23
24[package]
25disabled = true
26
27[time]
28disabled = false
29format = '[\[ $time \]]($style) '
白源フォント#
公式サイトはこちら。
Ricty が好きでずっと使ってきたんけど、最近はこちらのフォントがお気に入りです。
Starship には Nerd Font が必要になりますが、白源フォントにも Nerd Font を追加した版があります。ダウンロードは Homebrew 経由でもできますが、
GitHub リポジトリのリリースページから直接 ttf ファイルをダウンロードしてインストールできます。
zplug#
zsh のプラグインマネージャーです。Homebrew経由で導入可能です:
1$ brew install zplug
以下の通り、~/.zshrc
の設定を書き、有用なプラグインをいくつか入れておきます:
1export ZPLUG_HOME=$(brew --prefix)/opt/zplug
2source $ZPLUG_HOME/init.zsh
3
4# 構文のハイライト(https://github.com/zsh-users/zsh-syntax-highlighting)
5zplug "zsh-users/zsh-syntax-highlighting", defer:2
6# 過去に入力したコマンドの履歴が灰色のサジェストで出る
7zplug "zsh-users/zsh-history-substring-search"
8zplug "zsh-users/zsh-autosuggestions", defer:2
9# 補完強化
10zplug "zsh-users/zsh-completions"
11# コマンド入力途中で上下キー押したときの過去履歴がいい感じに出るようになる
12zplug "zsh-users/zsh-history-substring-search"
13# 256色表示にする
14zplug "chrissicool/zsh-256color"
15
16# インストールしていないプラグインがあればインストールする
17if ! zplug check --verbose; then
18 printf "Install? [y/N]: "
19 if read -q; then
20 echo; zplug install
21 fi
22fi
exa(ls
コマンドの拡張 )#
公式サイトはこちら。
Rust 製の ls
コマンドの拡張コマンドです。
Homebrew で導入可能です:
1$ brew install exa
~/.zshrc
に以下のようにエイリアスを定義しておき、 ls
を打った時など、 exa を呼び出すようにします:
1if [[ $(command -v exa) ]]; then
2 alias e='exa --icons --git'
3 alias l=e
4 alias ls=e
5 alias ea='exa -a --icons --git'
6 alias la=ea
7 alias ee='exa -aahl --icons --git'
8 alias ll=ee
9 alias et='exa -T -L 3 -a -I "node_modules|.git|.cache" --icons'
10 alias lt=et
11 alias eta='exa -T -a -I "node_modules|.git|.cache" --color=always --icons | less -r'
12 alias lta=eta
13 alias l='clear && ls'
14fi
設定まとめ#
こちらに今回の設定+αをまとめています。
所感#
やっぱ、Rust製のツールは応援したくなるよね。