本日Dockerを使用していて、 ユーザーディレクトリをマウントしたまま夢の
$ rm -rf /
を試しに行いましたところ。
ユーザーディレクトリ以下がすべて消えたkimotonです。
これまでWSL + wsl-terminal + bashを使っていたのですが、そろそろモダンな環境への憧れが止まらなくなってしまいました。 ユーザーディレクトリ消したついでにここは環境を丸っと変えてしまおうと思ったわけです。
前提条件
- WSLの有効化
- Ubuntuのインストール
は済んでいるものとします。
Hyperのダウンロード
ここからexeファイルがダウンロードできます。
インストールが済むと、C:\Users\{ユーザーディレクトリ}
以下に.hyper.js
が作成されます。これがHyperの設定ファイルです。
Hyperの素晴らしいところは設定ファイルがこの1つで済むところです。
pluginの使用
Hyperの素晴らしいところ2つめは、かなり自由にカスタマイズが効くことです。
お好みで公開されているプラグインを適用させましょう。自分は以下のものをいれました。
- イケてるデザインを適用(hyperterm-material)
- タブにアイコンを追加(hyper-tab-icons-plus)
- ステータスバーを追加(hyper-statusline)
- 背景透過(hyper-opacity)
- ハイパーリンクを適用(hyperlinks
- 常時画面を前に(hyperterm-overlay)
HyperでWSL起動をデフォルトにする
Hyperを起動すると通常コマンドプロンプトが立ち上がってしまいますが、shell
を指定することで開始シェルを指定することができます。
WSLを開始シェルにするには、以下のようにwsl.exe
までのパスを指定します。
また、shellArgs
を指定することで、開始ディレクトリを指定することができます。
module.exports = { config: { shell: 'C:\\Windows\\System32\\wsl.exe', shellArgs: ['~'], } }
powerlineフォントの導入
この後fishで利用するagnosterテーマはpowerlineというフォントを使用しているため、fontFamily
に 'Cica'を指定します。
module.exports = { config: { fontFamily: 'Cica', } }
これをWindowsで使用できるようにします。
上記からファイルをダウンロード後、右クリックからインストールします。
これらの変更を適用した最終的なファイルは以下に挙げてあります。
dotfiles/.hyper.js at master · nkimoto/dotfiles · GitHub
fishをデフォルトシェルにする
※ 2019/11/18 更新
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family.
fishはスマートでユーザーフレンドリーなコマンドラインシェルらしいです。
そりゃいい。
インストールには公式のppaを使用します。
$ sudo apt-add-repository ppa:fish-shell/release-3 $ sudo apt-get update $ sudo apt-get install fish
デフォルトシェルの設定はchsh
コマンドで行います。
$ chsh -s /usr/local/bin/fish
fishでは、bashの.bashrc
に該当する設定ファイルとして
.config/fish/config.fish
を編集して、fishの設定を行います。
oh-my-fishの導入
fishに関するパッケージマネージャー的なモノです。
1行入力するだけで導入できます。
$ curl -L https://get.oh-my.fish | fish
oh-my-fish の使用方法に関しては下記がわかりやすいです。 oh-my-fishではじめるfish - Qiita
pecoの導入
fishでコマンド履歴を検索できるようにするためのプラグインです。
まずはUbuntu側にインストールします。
$ sudo apt install peco
これをfish内で使用できるようにするため、 上記で導入したomf コマンドを使用してインストールします。
$ omf install peco
次にpecoを呼び出すためのキーバインドをCtrl
+ r
に指定します。
.config/fish/config.fish
に下記を追記します。
# set peco find history set fish_plugins theme peco function fish_user_key_bindings bind \cr peco_select_history end
使ってみるとこんな感じです。 コマンド履歴が一目瞭然。
zの導入
zはディレクトリ移動履歴を検索できるようにするためのプラグインです。 pecoと同様に、上記で導入したomf コマンドを使用してインストールします。
$ omf install z
使ってみるとこんな感じです。 ディレクトリ移動履歴が一目瞭然。
agnosterテーマの導入
またまた同様に、上記で導入したomf コマンドを使用してインストールします。
$ omf install agnoster
.config/fish/config.fish
で以下のように指定します。
# Use agoster theme set fish_theme agnoster
pyenvの導入
pyenvは、複数バージョンのpythonを切り替えて利用できるようにするためのマネージャーです。
インストールはgithubから行います。
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
インストール後、fishでpyenvを使用する際は.config/fish/config.fish
に下記を記載します。
set -gx PYENV_ROOT "$HOME/.pyenv" set -x PATH $PATH "$PYENV_ROOT/bin" status --is-interactive; and . (pyenv init - | psub)
python 3.7.1の環境を作成する場合は以下のように実行します。 ここではLDFLAGS、CFLAGS環境変数によりopensslライブラリの場所を教える必要があります。
$ env LDFLAGS="-L/usr/lib" CFLAGS="-I/usr/include/openssl" \ pyenv install -v 3.7.1
作成した環境をglobal に設定します。
pyenv global 3.7.1
pipenv の導入
Pipenvは、Python公式が正式に推薦するPythonパッケージングツールです。 Pipfileというファイルを使用して、pipとvenvを連動させたパッケージ管理を行うことができます。
$ pip install pipenv
先ほど作成したpyenv環境を使用したプロジェクトの作成は以下のように行います。
pipenv --python 3.7.1
dockerの導入
fishの記法でaptリポジトリを追加しなければいけない。
/etc/apt/sources.list
に追加されるので、今後bash
使用時には注意する。
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu "(lsb_release -cs)" edge"
Windows側のDOCKERホストを指定するため、
.config/fish/config.fish
に下記を追記します。
# set docker host set -gx DOCKER_HOST tcp://0.0.0.0:2375
確認
$ docker -v Docker version 18.09.0, build 4d60db4
終わり。
つかれた。設定だけで疲れた。 ケドこれでだいぶ快適になりました。
最終的な.config/fish/config.fish
、.config/fish/alias.fish
は以下に挙げてあります。
dotfiles/.config/fish at master · nkimoto/dotfiles · GitHub