概要
ついに時代が来たっぞ〜〜〜〜〜!!!!!
WSL2でxmonadが動く!xmonadがwindowsアプリになりました!!!
こんなの
使用感
dockerもwsl2をバックエンドに指定できるのでこれでバリバリ開発ができます。
以前以下の記事を投稿したことがあります。
https://qiita.com/aki-f/items/b7b45a6e6ed33ce81eb9
windowsでlinuxをカジュアルに使うという趣旨だったのですが、時代はカジュアルを超えて「本格的」に使えるようになってきました。
対象
タイル型ウインドウマネジャーのxmonadを使っている人
windowsでlinux使いたい人
今までの仮想環境が嫌だった人
メリット
バックエンドをWSL2にすることによってメモリとCPUのリソースを動的に割り振られています。(一部メモリは静的に割り振られます)
WSLを使うことの最大の利点はリソースの賢い使い方にあります。
各種テレワークアプリをwindowsで動かせる
デメリット
相変わらずsystemdが使えない
環境構築ちょっとだるい
インストール
WSL2のインストール
割愛
wsl1でも行けるかもしれませんが試してません。
VcXsrvのインストール
割愛
xmonad install
各自好みの方法があると思うが、私はプロジェクトをビルドしてます。
haskell
curl -sSL https://get.haskellstack.org/ | sh
stack setup
stack ghc -- --version
xmonad
https://github.com/akihirof0005/dotfiles/tree/main/.xmonad
以上のドットファイルを~/.xmonadに作る
cd ~/.xmonad
stack install
chmod a+x build
xmonad --recompile
私の環境を参考に自分のxmonadをビルドしたい方はソースのxmonad.hs
を置き換えてください。
環境変数の設定
export LANG=ja_JP.utf8
if [ -n "$DESKTOP_SESSION" ];then
eval $(gnome-keyring-daemon --start)
export SSH_AUTH_SOCK
fi
source "$HOME/.cargo/env"
export PATH="$HOME/.local/bin:$PATH"
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
export LIBGL_ALWAYS_INDIRECT=1
依存環境の解決
各種依存しているパッケージをインストールしてください。
日本語環境とかmozcとか普段linuxノートパソコンで使っているものです。
起動
VcXsrvをフルスクリーンで起動します。
wslは一度再起動するか、.zshrcや.zshenvなど再読込して環境変数を読み込んでください
#!/bin/sh
# start some nice programs
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
[ -x "$f" ] && . "$f"
done
unset f
fi
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
export SSH_AUTH_SOCK
xsetroot -cursor_name left_ptr &
exec xmonad
以上のファイルを作成し、zsh .xinitrc
で起動します。
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
はsshのキーリングを解決してくれるやつですね。
## 起動スクリプト
WSLから
cd ~
zsh /home/skit/.xinitrc
WINDOWSから
.\config.xlaunch
wsl startx
これをダブルクリックしてもいいし、スタートアップに登録しても良い
幸せになった?
意外と手順が多かったけど、これが新しい”linuxとWindowsがシームレスに融合してる感じ”です!
追記
私はxmonadのmodキーを"alt"にしています。VcXsrvにフォーカスしながらwinキー+lで画面はロックされます。alt+F4を押すとVcXsrvを閉じようとします。どちらが優先されるかはよくわかりませんが、手元の環境ではキーバインド困っていません。