さんだすメモ

さんだすメモ

どんなにしょうもないこともいつかは役に立つはず

wsltty をビルドする

はじめに

自分用のメモより。基本的には README.md を見てインストールする。

install Cygwin64

  • パッケージは gitmakegcc-coregcc-g++unzipzoopatchlcab を選択する。

install Alpine WSL

  • Microsoft store より
  • 一度立ち上げてインストールしておく

download source

mkdir -p $HOME/src
cd $HOME/src
git config --global user.email "<email>"
git config --global user.name "<username>"
git clone https://github.com/mintty/wsltty.git

mintty のカスタマイズ

  • cd <wsltty>
  • make mintty-get
  • <wsltty>/makefile にて build: 内の mintty-get を削除
    • mintty が上書きされるのを防ぐため

デフォーカス時に透明度を更新しないようにする

<wsltty>/<mintty>/src/winmain.c にて、when WM_ACTIVATE: 内の win_update_transparency(cfg.opaque_when_focused);コメントアウトする。

mintty-build

cd <wsltty>
make mintty-build

mintty-build で失敗するとき

make mintty-build
# gcc -c -MMD -MP -std=gnu99 -include std.h -Wall -Wextra -Wundef -Werror -Wtrampolines -fomit-frame-pointer -O2  -DTARGET=x86_64-pc-cygwin -DVERSION_SUFFIX="– wsltty 3.5.0.2" -DWSLTTY_VERSION="3.5.0.2" -DNDEBUG -fstack-check winmain.c -o ../bin/cygwin64/winmain.o
# windres -c 65001 --preprocessor 'gcc -E -xc -DRC_INVOKED -MMD -MP -DTARGET=x86_64-pc-cygwin -DVERSION_SUFFIX="– wsltty 3.5.0.2" -DWSLTTY_VERSION="3.5.0.2" -DNDEBUG' res.rc ../bin/cygwin64/res.o
# /bin/sh: gcc -E -xc -DRC_INVOKED -MMD -MP -DTARGET=x86_64-pc-cygwin -DVERSION_SUFFIX=–: command not found
# windres: preprocessing failed.

windres の仕様か何かで詰まった。適当に修正する。

vim <wsltty>/<mintty>/src/Makefile
# --preprocessor=$(CC)
# --preprocessor-arg=-E
# ...
# --preprocessor-arg=$(addprefix --preprocessor-arg=,$(DEPOPT))
# ...
make mintty-build

build and install

cd <wsltty>
make build
make install