Help us understand the problem. What is going on with this article?

WSLでお手軽にオシャレfish環境構築

始めに

Windows10には、WSL(Windows Subsystem for Linux)と呼ばれる、Linux環境を動作することが出来る機能が備わっています。
Windows上で簡単にオシャレなfish環境を構築する手順を記載していきます。

WSL導入

下記URLを参照して、Windows10上にWSLを導入します。本記事は、Ubuntu 18.04 を対象にしています。

https://qiita.com/Aruneko/items/c79810b0b015bebf30bb

Repositoryの参照先を日本に変更

sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.list

パッケージのアップデート

sudo apt update
sudo apt upgrade -y

fishの導入

sudo apt-add-repository ppa:fish-shell/release-2
sudo apt-get update
sudo apt-get install -y fish

fishをdefault shellへ設定

$ chsh
Password:
Changing the login shell for sugi
Enter the new value, or press ENTER for the default
        Login Shell [/bin/bash]: /usr/bin/fish

一度ターミナルを終了し、再度起動します

fisherの導入

curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

テーマのインストール

bobthefishをインストール
agnosterは、サブコマンドの補完時に表示がずれたため、bobthefishを使用している

fisher add oh-my-fish/theme-bobthefish

bobthefishの設定

promptをnew lineで実行するように変更

set -g theme_newline_cursor yes

gitのmasterブランチを表示

set -g theme_display_git_master_branch yes

カラースキーマを dracula と指定

set -g theme_color_scheme dracula

fontの関連で表示がおかしくなったため、powerline用のfontは使用しないように指定

set -g theme_powerline_fonts no

時刻を表示するとFontの都合でおかしくなったため、時刻を表示しないように設定

set -g theme_display_date no

コマンド実行時間の非表示

set -g theme_display_cmd_duration no

上記の環境変数を、shell起動時に有効になるように指定

string trim '
set -g theme_newline_cursor yes
set -g theme_display_git_master_branch yes
set -g theme_color_scheme dracula
set -g theme_powerline_fonts no
set -g theme_display_date no
set -g theme_display_cmd_duration no
' >> ~/.config/fish/config.fish

Fontの導入

以下のURLを参照し、[Myrica P]Font をWindows10へ導入します。

https://myrica.estable.jp/myricahistry/

Hyperターミナルの導入

hyper install

以下のURLにアクセスして、hyperをinstall
https://hyper.is/

以下のpathに、hyperの設定ファイルが生成されており、これを編集します

  • Hyperのバージョンが2.x.x 台:C:\Users\<username>\.hyper.js
  • Hyperのバージョンが3.x.x 台:C:\Users\<username>\AppData\Roaming\Hyper\.hyper.js

hyper settings

shell のvalueをwsl.exeに変更

shellArgsに '~' を指定することにより、WSL起動時のDirectoryをhomedirに指定しています

shell: 'C:\\Windows\\System32\\wsl.exe',

...snip...

shellArgs: ['~'],

フォントサイズ。16,18あたりがちょうどよさそう

  fontSize: 18,

フォントファミリーの指定

  fontFamily: '"Myrica P"',

カーソルの点滅

  cursorBlink: true,

選択したらコピーする動作

  copyOnSelect: true,

pluginの指定

  plugins: [
    'hyper-iceberg',
    'hyper-opacity'
  ],

wsl上での設定

wsl.confを作成

uid,gidが1000のユーザー(defaultで作成されるユーザ)に対して、Windows側のファイルに対するアクセス権の設定を行う。
umask22を指定することで、書き込み権限を除外する

bashで実行する場合

cat <<'EOF' > /etc/wsl.conf
[automount]
enable = true
root = /mnt/
options = "metadata,uid=1000,gid=1000,umask=22"
EOF

fishで実行する場合 (ヒアドキュメントが存在しないので、代わりにstringコマンドで)

string trim '
[automount]
enable = true
root = /mnt/
options = "metadata,uid=1000,gid=1000,umask=22"
' >> /etc/wsl.conf

fish pluginの導入

fzf

Ctrl + Rでコマンド履歴を検索できるようになります。

# pluginのインストール
$ fisher add jethrokuan/fzf

# fzf本体のインストール
$ git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
$ ~/.fzf/install

参考URL

https://qiita.com/ysks/items/6c9d751d9a3b3b1b8020

https://laboradian.com/installation-and-setting-of-wsl/

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away