10
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

xmonadをwindowsにインストールして、幸せになる

Last updated at Posted at 2021-05-08

概要

ついに時代が来たっぞ〜〜〜〜〜!!!!!

WSL2でxmonadが動く!xmonadがwindowsアプリになりました!!!

こんなの

Inkedxmonadonwsl_LI.jpg

使用感

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など再読込して環境変数を読み込んでください

.xinitrc
#!/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から

/usr/local/bin/startx
cd ~
zsh /home/skit/.xinitrc

WINDOWSから

xmonad.ps1
.\config.xlaunch
wsl startx

これをダブルクリックしてもいいし、スタートアップに登録しても良い

幸せになった?

意外と手順が多かったけど、これが新しい”linuxとWindowsがシームレスに融合してる感じ”です!

追記

私はxmonadのmodキーを"alt"にしています。VcXsrvにフォーカスしながらwinキー+lで画面はロックされます。alt+F4を押すとVcXsrvを閉じようとします。どちらが優先されるかはよくわかりませんが、手元の環境ではキーバインド困っていません。

10
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?