2023年12月18日月曜日

古いmacのterminalにテコ入れをする

article_231115

古いmacを新しい気持ちで使うために

手元でもう10年越しになりつつあるMacBook Airがある。Intel Macだった時代のもので、もうハードとして色々なことが古くなってしまっているが、いまだに現役で使用している。発表や就職活動などで活躍してくれたが、もう少しで現役は引退かもしれない。後継の機種が決まるまではしばらく今まで通りに使っていきたいと思っている。

だが、10年も使用してくると見た目に飽きてくるということがある。少し前から、デスクトップの画像は写真や絵ではなく暗めの灰色単一色にしてしまっているが、逆に無機質な感じがして飽きが来るのを防いでくれていると思う。appleは随分古い機種もOSアップデートの対象にしてくれるので、OSの見た目は定期的に新味を感じられて良かった。

ターミナルの見た目を変えたい

端末の見た目も、定期的に変更していた。たまに環境設定からプロファイルを変更して見た目を変えたりもしていたが、さすがに見飽きてきて、大幅に変更したいと前々から思うようになっていた。加えて、syntax highlightなどの強化もしたいと思い、方法を調査した。下の情報がわかりやすく、参考にさせていただいた。

gnu系のコマンドを使用できる環境にしたい

もう一つ思っていたのは、macで使用できるコマンドが普段多用しているgnu/linux系のものではないため、微妙にoptionなどが異なっていて不便だったので、それをなんとかしたいということだった。端末上で何かやりたい時のコマンドをgnu/linuxにした環境を作って、作業の時はそこに入れば良いのではと考えた。検索して情報を探していくと、homebrewでコマンド群をインストールしていく解説が複数あり、下記の情報がわかりやすかった。

テキスト処理のための標準的なコマンド群の macOS への導入手順

homebrewも使用しているが、今回はcondaによってgnu系環境を別途用意するという方法をとった。どちらかというとhomebrewで整備していく方法のほうが理にかなっているのかもしれないが、今回は元のmac (UNIX)の環境とも簡単に行ったり来たりできるようなものにしたいと思い、conda環境を使用した。デフォルトの環境は手をつけず、gnu系コマンド群を使用したいときにcondaの環境に入って使用するというイメージだ。homebrewでもそのような簡単な切り替えができるのかもしれないが、調べてはいない。

軽量なエディタのnanoのsyntax highlightに関する情報は、以下のサイトを参考にさせていただいた。

nanoもcondaにより導入したので、上の記述から若干変更して、.nanorcを作成した。

手順

1. conda environment

まずは、condaでgnu用の環境を作成した。ipythonなども導入して、データ解析、プロセシング等を実施する際に入るような環境を想定した。

conda create -n gnu
conda activate gnu

2. coreutils + other tools + python

conda環境に入ったあと、gnu/linux風にしたいコマンド群+pythonをインストールしていった。インストールするツール群については、前述の標準コマンド群を解説した記事を参考にさせてもらった。

# Coreutils
conda install -c conda-forge coreutils
# Other commands
conda install -c conda-forge diffutils
conda install -c conda-forge gzip
conda install -c conda-forge grep
conda install -c conda-forge gawk
conda install -c conda-forge nano
conda install -c conda-forge unzip
conda install -c conda-forge wget pandoc
# Python 3.12.0 install
conda install -c conda-forge python
conda install -c conda-forge ipython
conda install -c conda-forge pandas numpy

3. Solarized

先にあげた導入情報のリンクを参考にして、solarizedをインストールした。まずは、solarized.gitをgit cloneした。

git clone https://github.com/tomislav/osx-terminal.app-colors-solarized solarized.git
>> Cloning into 'solarized.git'...
>> remote: Enumerating objects: 80, done.
>> remote: Total 80 (delta 0), reused 0 (delta 0), pack-reused 80
>> Unpacking objects: 100% (80/80), done.

その後、ターミナルの環境設定からプロファイルを選択した。ダウンロードしたsolarized.gitフォルダ下にあるSolarized Dark.terminalを環境設定のプロファイルの読み込みから指定して読み込み、デフォルトに設定した。

4. .bash_profile編集

gnu/linuxのコマンド群を通常利用することを考え、環境をactivateして、またlsで色分けして表示できるようにするために、.bash_profileの内容を編集した。

# 以下の記述を加える
conda activate gnu
alias ls='ls --color=auto --group-directories-first'
eval `dircolors ~/.dircolors-solarized/dircolors.256dark`

5. nanoのsyntax highlight

基本的には、Syntax highlighting in nano on Mac OSに説明されている.nanorcの作成をするのだが、condaで導入しているため、記述が若干だが異なる。

cat ~/.nanorc
>> include "/path/to/home/miniconda3/envs/gnu/share/nano/*.nanorc"

minicondaのenvs/環境名/share/nano下には、.nanorcのファイルが格納されているので、それを読み込んでいることになる。

# miniconda3/envs/gnu/share/nano 下のファイル
extra             css.nanorc      html.nanorc        markdown.nanorc  perl.nanorc    sql.nanorc
asm.nanorc        default.nanorc  java.nanorc        nanohelp.nanorc  php.nanorc     tcl.nanorc
autoconf.nanorc   elisp.nanorc    javascript.nanorc  nanorc.nanorc    po.nanorc      tex.nanorc
awk.nanorc        email.nanorc    json.nanorc        nftables.nanorc  python.nanorc  texinfo.nanorc
c.nanorc          go.nanorc       lua.nanorc         objc.nanorc      ruby.nanorc    xml.nanorc
changelog.nanorc  groff.nanorc    makefile.nanorc    ocaml.nanorc     rust.nanorc    yaml.nanorc
cmake.nanorc      guile.nanorc    man.nanorc         patch.nanorc     sh.nanorc

これで、nanoを開いたときにもハイライト表示がされるようになった。