お前らのWSLはそれじゃダメだ
OIT Advent Calendar 2017!!!
2023/10/12 追記 この記事は2017年現在のものなので、今は参考にしないほうがいいと思います
この記事は、 OIT Advent Calendar 2017の1日目の記事です
adventar.org
わーいあどべんとだー
OIT Advent Calendar が今年もやってきた!
募集を観測してから1秒で
アクセスし1秒
で1日目
に予約してやったぜ
因みに去年も1日目だったんですよ~
adventar.org
ていうかもう12月?はやくない?
本題
Bash on Windows
が2016年の4月に来たときめちゃくちゃ嬉しかったことを覚えています
それからしばらく経った2017年の10月末にWindows10のFall Creators Update
がきました。BoWの名称はWindows Subsystem for Linux(WSL)
へと変わり、正式版になったことでWindows上でシェル芸をするときの選択肢が増えましたね。非常に嬉しいです
自分はSurface3を持ち運び用にしてますが容量の都合とかでデュアルブートするのしんどいし、なによりWSLは破壊してもすぐなおせるところがいいですよね!最高!
でも
ターミナルエミュレータがイケてない
BoWだった時も思ってたんですけどぉ…Windows環境ってぇ…
ほんッとターミナルがイケてない!
イケてない
- イケてないお前らのWSL
僕は違いますよ!
- イケてるぼくのWSL
やった~~~~~かっこいい~~~~~WSLしゅき~~~~!
もうひとつ
Ubuntu MATE on WSL
同じやり方でmate-session
だって起動する
DEほどの機能がいらなければawesome
みたいなウインドウマネージャーを起動すればいいね
これで楽しいWSL生活!
環境構築
材料
- Fall Updateした後のWindows10
- めっちゃじかんかかった
- Windows向けX server
- WSL
- ストアから落とそう
- ggる力
- 目の前の箱はおもちゃか?
VcXsrvのインストール
sourceforge.net
特にインストールするときにggった覚えがないのでポチポチでインストールできるハズ・・・
WSLの用意
OpenSUSEとかもあるけど今回は普通にUbuntuを使う
Microsoft StoreでUbuntuと検索すればすぐ出てくるからインストールする
終わればスタートの最近追加されたものの項目にUbuntuが出てくるだろうからそれをクリック。みつからないならCortanaにUbuntuどこですかって聞こう
クリックしたらインストールの続きが始まるので少し待つ、それが終わるとユーザー名とパスワードを聞かれるので入力。好きなのでいいと思うよ
少し上のお前らのWSL
になったら
定番のアップデートをする
sudo apt update && sudo apt upgrade -y
思ったより時間はかからないと思うぜ!
この先は自分の好きなように選んでほしい、DEやWMはいらんから端末だけほしい!とかDEごとほしい!とか自分のニーズに合わせてインストールしよう。全部やると時間かかるよ
日本語化
WSLになってからデフォだとえいごだからJP語にする。したい人はしたらいいぼくはする
sudo apt install language-pack-ja
sudo update-locale LANG=ja_JP.UTF-8
端末だけ使う
インストール
好きな端末を選べばいいと思うけど、ここではgnome-teminalをインストールする
sudo apt install -y gnome-terminal uim-fep uim-anthy dbus-x11
(2017/12/07 誤字ってたので修正)
gnome-terminalと一緒にuimをインストールして日本語入力できるようにする
日本語入力する予定がないならuim
系はインストールしなくてもOK
dbus-x11は・・・知らん・・・ないと動かなかった
ここが結構時間かかるので気長に待ちましょう
終わったらuim
の設定を書く
cat << EOF > ~/.uim (define default-im-name 'anthy) (define-key generic-on-key? '("<Control> ")) (define-key generic-off-key? '("<Control> ")) EOF
これでgnome-terminalを使っているときに、Ctrl+Space
で日本語入力の切り替えができるようになった
もしここを変えたいとかなら<Control>
の部分を書き換えればOK!
一応情報置いときますね
github.com
もしかしたらXMODIFIRES
を設定しないとダメかもしれない
export XMODIFIRES=@im=uim
自分の場合はしなくもOKだった。これってxterm
とかだといるのかな?
起動テスト
とりあえず起動するか確かめる
- VcXsrvの起動
- Cortanaに
VcXsrv
どこですかって聞いて起動する - タスクトレイに下図赤丸のアイコンがあればOK!
- Cortanaに
- gnome-terminalの設定
- 下のようなコマンドを入力する
export DISPLAY=:0.0 gnome-terminal -e uim-fep #上がダメなら dbus-launch gnome-terminal -e uim-fep #それでもだめなら sudo service dbus start && dbus-launch gnome-terminal -e uim-fep
たいていの場合1つ目で起動する・・・dbus
を感覚で使っているので細かいことは解らないけどserviceの起動まではしなくていいはず
ちょっと待つと起動すると思う
起動したら
毎回起動時にexport
するのはだるいので少しVBとPSスクリプトを書くと楽になると思う
- wsl-terminal.vbs
Set ws = CreateObject("Wscript.Shell") ws.run "powershell -NoProfile -ExecutionPolicy Unrestricted .\launch.ps1",0,false
- launch.ps1
ubuntu.exe -c "gnome-terminal --display=:0.0 -e uim-fep"
ファイル名なんかは適当でいいけど 「同じ場所に置くこと」 と 「vbsの方に書いてあるps1ファイルの名前」 だけは気を付けること
二つ作るのはめんどい!って人はVBの方に纏めちゃってもいいんじゃないかなpowershell -c 'command'
みたいな感じに
作ったら vbsの ショートカットを作る
これをWindowsのC:\Users\USER\AppData\Roaming\Microsoft\Windows\スタートメニュー\プログラム
に置く!
これでスタートメニューに登録されるので、ピン止めするなりすれば起動が簡単になるよ
後はショートカットのアイコンをIconfinder
なんなりから探してきて
www.iconfinder.com
ショートカットのプロパティのアイコンの変更
から好きなアイコンを選べば素敵な環境の出来上がり!やったね
ここでショートカットにショートカットキーを割り当てておけばいつものようにCtrl+Alt+T
で起動できてワクワクドキドキ
あとは好みで配色を変えて楽しんでね
github.com
同じやり方で別の端末をインストールすれば、↑のコマンド群のgnome-terminal
の部分を置き換えると同じように起動すると思う
因みに自分はTilixが好き
gnunn1.github.io
DEを起動したい
DEってのはDesktop EnvironmentのことつまりUnityとかKDEみたいなデスクトップ環境。どうでもいいけどenvironmentってスペル難しい
先に行っておくとDEはちょっと不安定で、フルパワーで使えなかったりTab
やBackSpace
を押すとたまに爆発(後述)したりするから注意。とはいえVMじゃない?のにVM感?が味わえて楽しいのでオヌヌメ
当然DE内ならGTKとかのテーマも使えるから
「Windowsの見た目、嫌いじゃないけど飽きたよ」
という人にもオヌヌメ
それじゃあ自分の好きなDEを選んでやってみよう。今回はMATEデスクトップをインストールする
ubuntu-mate.org
インストール
sudo apt install mate-desktop-environment-extras ubuntu-mate-core ubuntu-mate-desktop -y
さすがにDEともなるとインストールに時間がかかる。それを見越して軽量なMATEにしたけどうむむという感じ
もしかすると単純にmase-session
を起動するだけならmate-desktop
をインストールするだけでいいの・・・・かなあ?
上のコマンドだけしか試したことがないので是非いろいろ試して教えてほしい
起動テスト
- VcXsrvの起動
- Cortanaに
XLaunch
どこですかって聞いて起動する。アイコンがVcXsrv
と同じなのでちょいとややこしい - 下図3枚のように設定して
- 完了を押す。ここでコンフィグを保存しておけばこの設定で
VcXsrv
を起動するショートカットみたいなのが作れるので毎回設定しなくてよくなる。- ぼくは保存してるけど毎回設定して起動してる・・・もうだめかもしれない
- タスクトレイに下図赤丸のアイコンがあればOK!
- Cortanaに
- mate-sessionの起動
export DISPLAY=:0.0 mate-session
めっちゃログが流れた後VcXsrvにMATEデスクトップが表示される。エラーも表示される
きみはほうこくしてもほうこくしなくてもいいぞ。ぼくはしない
起動したら
terminalだけのときと同じように起動スクリプトを作っておけば楽になる
ほぼおんなじで二度手間だけど
- mate-on-wsl.vbs
Set ws = CreateObject("Wscript.Shell") ws.run "powershell -NoProfile -ExecutionPolicy Unrestricted .\launch-mate.ps1",0,false
- launch-mate.ps1
ubuntu.exe -c "mate-session --display=:0.0"
後の手順はterminalのときと同じ、DEの方はテーマを変えたりするだけ、どこまでできるかわからないけど大抵のことはできると思う
備考
- 日本語入力
- 日本語環境に設定してても
Mozc
が最初からないので自力でMozc
を入れるかuim-fep
で代用するといいよ。僕は後者
- 日本語環境に設定してても
- ターミナル
Tab
やBackSpace
を押すと画面がちらつく- どんまいです。ぼくもよくわからないけど何度かVcXsrvごと再起動するとなおる
- タイミング的に音の鳴るときな気がするからターミナルのベルを切ると発生しないかもしれない。自分はこうしてからあんまり遭遇してない
ウィンドウマネージャーを起動する
WMだけを起動する場合もDEとほぼ同じ・・・というか同じ手順をすればいいよ
これは結構安定しているのかも
ここではawesomeをインストールする
awesome wm
github.com
いわゆるウインドウマネージャーってやつ。Archとか使ってる人がよくこういうのを色々試してる印象
awesome は設定範囲が広い、X の次世代型ウィンドウマネージャです。非常に高速に動作で、拡張性があり、GNU GPLv2 でライセンスされています。 Arch Wiki
らしい。次世代型かぁ・・・!惹かれますね
インストール
もちろんapt
でインストールできるんですが、このUbuntuは16.04なのでawesomeのバージョンがちょっとふるい(v3.5.9)
最新はv4.2なのでそっちをインストールしたいなあ・・・
github.com
というかこれが使いたい
ビルドしてもいいんですが面倒なのでapt
にまかせたいな~~とlaunchpad
探してたら
launchpad.nethttps://launchpad.net/~klaus-vormweg/+archive/ubuntu/awesome
ありました
手順は書いてあるので二度手間ですがコピペ用にどうぞ?
sudo add-apt-repository ppa:klaus-vormweg/awesome && sudo apt update && sudo apt install -y awesome
インストールが終わったらDEのときと同じ設定でVcXsrv
を起動してから
export DISPLAY=:0.0 awesome #もしくは awesome --display=:0.0
で起動します
GTK Themeを適用したい
これは主にターミナルだけのやつ
ここまで僕のやることを素直に受け入れてきた人はおそらくウインドウのタイトルバーがWindowsのままだったり、Defaultの色が白背景だったりでちょっとイケてない(白背景をDisってるわけじゃない)
じつはVcXsrvみたいなXserverを使った場合でも有志が作ったGTK Themeを適用出来たりできなかったりする
GTK2.0
なのかGTK3.0
なのか、タイトルバーを上書きしてるのかとかで適用範囲は変わる・・・と思う
この辺の難しいことは解らないので誰か教えてほしいかも
自分の場合は先述のようにTilix
を使ってるのでGTK+ 3
のテーマなら使える
Tilix
はタイトルバーを上書きしてるのでそこもThemeの適用範囲になる。やったね
というわけで目指すのはこれ
好きなテーマを探す
たぶんgnome-look
で探すのがいい。というかここしかしらない
www.gnome-look.org
ぼくはこれ
github.comhttps://github.com/LinxGem33/OSX-Arc-Darker
別にOSXが好きとかじゃないけど、黒系ならカッコいいし、人気だし、使いたくなるからこれを使ってる。後インストールが楽
テーマをインストールする
基本的にはダウンロードしてきたやつを/usr/share/themes/
に置けばOKのはずなんだけど上手くいったためしがないんだ・・・ごめんよ
OSX-Arcのように丁寧にパッケージが用意されてるならそれ展開すればいいでしょう
以下はその手順
mkdir ~/tmp && cd tmp wget https://github.com/LinxGem33/OSX-Arc-Darker/releases/download/v1.4.5/osx-arc-collection_1.4.5_amd64.deb sudo dpkg --install ./osx-arc-collection_1.4.5_amd64.deb && rm ./osx-arc-collection_1.4.5_amd64.deb
テーマを適用してアプリケーションを起動する
developer.gnome.org
ここみたらどうやらGTK+3だとGTK_THEME
に適用したいテーマ名を書くだけで良しなにしてくれるらしきことが書いてあった
なので
GTK_THEME=OSX-Arc-Shadow tilix
とすればテーマが適用されてTilixが起動する
テーマの名前は/usr/share/themes/
をls
すればわかるよ
GTK2だと~/.gtkrc-2.0
を書く必要がある
テーマだけをあてるなら
echo 'gtk-theme-name="BlackMATE"' > ~/.gtkrc-2.0 #BlackMATEのところに好きなテーマの名前を書く
としたあと
mate-terminal
すればOK、たぶんタイトルバーはWindowsのままだと思うけどドロップダウンメニューとかはテーマが適用されてるはず
こんな感じになってるんじゃないかな?
タイトルバーに関しては適用される方がいいのかは正直解らない、Tilix
はタイトルバーが上書きされて見た目はハッピーだけど最大化ボタンが死ぬので大きくするときが面倒になる
それと一応.gtkrc-2.0
でフォントの設定とかもできるけどその辺はここでは書かない・・・(ggって)
解像度とか
なんか少しぼやけるときは下記を参考にDPI設定をするといいかもしれない
qiita.com
surface3ではぼやけてたからDPI設定したら綺麗になった(というより見た目が小さくなった)
WindowsとLinuxを同時に使いたいなら
WindowsとLinuxを同じPCで共存させる方法ってのは、マシンスペックに余裕のある人はVM、HDDに余裕のある人ならデュアルブートとかだったけど、そのどちらもないSurface3だとこのWSLはすごくありがたい、ubuntu側からならwindows見えるし
他にもwubiuefiを使って簡単にデュアルブートしたりとか、X2GoつかったりDockerコンテナにSSHしてX11フォワーディングするとかいろいろあるので試したいなあって思ってます
github.com
www.youtube.com
qiita.com
まとめ
正直なところライトな使い方をするならcmd
とかpowershell
から使うだけでいい。けどtmux
とかマルチバイトでずれたりするしイケてないよねってことでこれをしばらく試していた(Fall Update以降はcmd
でもずれなくなった・・・?)
参考になる記事が沢山あったので色々試してたらDEまで起動してちょっとびっくりしたし、いかに自分がLinuxを雰囲気で使ってるのかっていうのも解った。雰囲気じゃなくて完璧に使えるようになるのはむり・・・あきらめたくないけどむり
自分はgnome-terminal
が起動した時点で「勝った!」と思ったのでこれ以上のことをあんまり調べていないんですが・・・
飛び跳ねながらいろいろ設定してたらだんだん重くなってきてsurfaceではpowerline-daemon
起動してても重いという状況なのでちょっと整理したいな~なんて
自分はこういう設定で運用してるよ!とかGoodな情報があればぜひ教えてもらいたいです
それではよいWSLライフを
参考
mjhd.hatenablog.com
www.hiroom2.comhttps://www.hiroom2.com/2017/07/27/ubuntu-1604-mate-ja/
Arch Linux JP Project
qiita.com