@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

WSLgでEmacsを使う

tl;dr

# install packages for build
sudo apt install -y build-essential libgtk-3-dev libgnutls28-dev libtiff5-dev libgif-dev libjpeg-dev libpng-dev libxpm-dev libncurses-dev texinfo autoconf adwaita-icon-theme-full
cd /tmp
# clone source only emacs 29
git clone --single-branch --branch emacs-29 git://git.sv.gnu.org/emacs.git
cd emacs
./autogen.sh
./configure --with-pgtk
make -j8
sudo make install
# install jp font (Takao)
sudo apt install -y fonts-takao
sudo fc-cache -fv
# fc-list | grep -i takao
# IPA font
sudo apt install -y fonts-ipafont
sudo fc-cache -fv
# fc-list | grep -i ipa

Emacs上でWSLg上のEmacsかどうか区別するならこんな感じ(Takaoフォントの設定例)

(when (and (eq system-type 'gnu/linux)
           (eq window-system 'pgtk)
           (getenv "WSLENV"))
  ;; Takaoフォントの利用
  (set-fontset-font t 'japanese-jisx0208 "TakaoGothic")
  (add-to-list 'face-font-rescale-alist '(".*Takao .*" . 0.85))
  ;; M-wでwindowsのクリップボードにコピーする
(defun copy-selected-text (start end)
  (interactive "r")
    (if (use-region-p)
        (let ((text (buffer-substring-no-properties start end)))
            (shell-command (concat "echo '" text "' | clip.exe")))))
  (global-set-key (kbd "M-w") 'copy-selected-text)
  ;; Teach Emacs how to open links in your default Windows browser
  (let ((cmd-exe "/mnt/c/Windows/System32/cmd.exe")
        (cmd-args '("/c" "start")))
    (when (file-exists-p cmd-exe)
      (setq browse-url-generic-program  cmd-exe
            browse-url-generic-args     cmd-args
            browse-url-browser-function 'browse-url-generic
            search-web-default-browser 'browse-url-generic)))
)

notes

Win11や Win10の新しめのバージョンから WSL 2が使える (アプリストアの Windows Subsystem for Linux (ペンギンアイコン)を入れる)

Powershellwsl --version を実行して、カーネルのバージョンなど表示されていれば利用できている。

WSL 2はX window systemのサーバクライアントを使わずに直接LinuxGUIWindowsから利用できるとのことで、Emacsが動くのを楽しみにしていた。

tl;drに書いたようにローカルでブランチ指定でビルドすれば動くことは確認した。

adwaita-icon-theme-fullは起動時の警告を消すため(GTK使ってるのにテーマ未インストール状態みたい)

ただ、WSLの制約からか、Windows側のファイルへのアクセスがかなり遅いように見え、初回起動時の設定読み込みがかなり遅い。WSL内に一通り移動してみてもいいかもしれない。

refs

emacsredux.com

emacsredux.com

ubuntu.perlzemi.com

appendix (xwidget)

sudo apt install -y libwebkit2gtk-4.0-dev
./autogen.sh && ./configure --with-pgtk --with-xwidgets && make -j8 && sudo make install