w3m（w3m-img）をfbterm対応にして，インライン画像表示．ついでにrangerのサムネイルも

w3m（w3m-img）をfbterm対応にして，インライン画像表示．ついでにrangerのサムネイルも
====================================
- ubuntu16.04LTS
- w3m-0.5.3
- fbterm1.7-2

w3mとは
-----------------

- CUIで動くブラウザ．
- なのにインライン画像表示ができる．
- 軽い．
- なんかかっこいい．

しかし，w3mはfbtermに対応していない．

仮想コンソール(tty)の日本語の文字化けは耐え難いので，
fbtermを導入しないのはきつい．
日本語入力もしたい．．．

＼(^o^)／ < ｵﾜﾀ

で終われるわけがない．

考えた．

(。´･ω･)  < なんで?

w3mは古いソフトjfbtermに対応しているのだ．

後継であるfbtermに対応できないわけがない．（？）



時間がない人向け
==================
事前準備
----------
- apt sourceの有効化
	- /etc/apt/source.listを編集
- debuildを使えるようにする
	- sudo apt install devscripts

w3mの導入手順
---

1. $sudo apt source w3m
1. $sudo apt build-dep w3m
1. $cd w3m-0.5.3
1. w3mimg/fb/fb_w3mimg.cを編集
       - __jfbterm__を__fbterm__に置換
       - read_onlyなのでsudoかchmodで適当にする
1. $sudo debuild -us -uc -b
1. $cd ../
1. $sudo dpkg -i w3m_0.5.3-26ubuntu0.1_amd64.deb
1. $sudo dpkg -i w3m-img_0.5.3-26ubuntu0.1_amd64.deb


終わり．


次からはもう少し詳しく解説していく．

apt sourceを有効にする
==============
Ubuntu16.04の場合，通常は

```bash
sudo apt source
```

ができない仕様になっている．
これはaptで探索するべき場所がコメントアウトされているからだ．

```bash
less /etc/apt/sources.list
```

これで見てみると，

```bash:/etc/apt/sources.list
#deb-src
```

という感じでコメントアウトされていることがわかるだろう．
このコメントアウトされているところを外して，有効にすればよい．

sedを使って華麗にやりたいところだが，怖いので

```vim
sudo vim /etc/apt/source.list
:%s/^#dev-src/deb-src/gc
```

これでポチポチやった．

後は，

```bash
sudo apt update
```

でもしておこう．

w3mのインストール
-----------------------

ubuntuやdebianなどの場合，
w3mといった古いソフトでもパッチが当てられ更新されていることがある．

だから，通常のインストールで大丈夫と思うとそうではない．

```bash
sudp apt install w3m
```

を使ってインストールしていたのでは，fbterm上ではインライン画像表示が使えない．

そもそもw3mが対応しているのは以下のものだ．（これはconfigureのhelpの--enable-images=DEVSのところに書いてある．）

- x11
- fb
- fb+s
- win


なんでfb対応なのにfbtermでうまくいかないのかというと，
環境変数TERMがjfbtermのときだけ有効になるよう設定されているからだ．
（ソースコードの中で）

かといって，

```bash
export TERM=jfbterm
export TERM=xterm-256colors
```

とやったって，まともに動いてくれない．

仕方がないからソースをちょちょっと書き換えてからコンパイルする必要がある．


patchを読んでみると，環境変数TERMを読み込み判断するif文が，丁寧に書き換えられている．

__jfbterm__かどうかを判断するようにしたまま．．．


（・д・）  < パッチ当ててんのに何でjfbtermやね〜ん


w3mをfbterm対応にする．
----------
aptで導入されるパッケージのソースをダウンロードすればいいやんと思い，

```bash
sudo apt source w3m
```

これに辿り着いた時，

(´・ω・)   < 今までの苦労は何だったんだ．．．

(´・ω・｀)   < ねぇ．．．

それはさておき，

色々ファイルがダウンロードされるけど，すでにパッチを当てて解凍されているディレクトリがある．
これをいじればいい．

```bash
cd w3m-0.5.3
fgrep -r jfbterm *
```

でちゃちゃっと検索．

それっぽいファイルの__jfbterm__を__fbterm__に変更する．

パッチも検索に引っかかるけど，c言語のソースだけ書き変えればいい．
目当てのものは，

- w3mimg/fb/fb_w3mimg.c

ここにあるようだ．環境変数TERMを読み込んでるところを書き換える．
これらのファイルはread onlyなので`chmod u+w`するとか，sudo権限で開く必要がある．



```vim
sudo vim w3mimg/fb/fb_w3mimg.c
:%s/jfbterm/fbterm/gc
```

依存関係の解決
------------------------

ここあたりで，依存関係を解決しておこう．
これでw3mが動作するのに必要なライブラリがインストールされる．

```bash
sudo apt build-dep w3m
```

別に他のライブラリはfbtermに依存していないので問題ない．



コンパイルとインストール
---------------------------

apt source で持ってきたコードはdebuildで簡単にコンパイルできちゃう．

まず，debuildを使えるようにするために

```bash
sudo apt install devscripts
```

そして肝心のコマンド

```bash
sudo debuild -uc -us -b
```

オプションは，署名の省略とバイナリパッケージのみの作成を指定しているらしい．

これで一つ上のディレクトリに__deb__ファイルができているはずだ．（w3mとw3m-imgの二つ）

後は

```bash
cd ../
sudo dpkg -i w3m_0.5.3-26ubuntu0.1_amd64.deb
sudo dpkg -i w3m-img_0.5.3-26ubuntu0.1_amd64.deb
```

で成功するはず．

これで君もw3mユーザーだ．

( ´∀｀)人(´∀｀ )ﾅｶｰﾏ 



ついでにrangerのサムネイルで画像がみれるよ
----------------------------
rangerというファイラーではサムネイルに画像が表示できる．

w3m-imgを使って．．．

ということはfbterm上でも使えるようになる．

W3MIMGDISPLAYとかいう環境変数にw3mimgdisplayの場所を指定する必要があるけれど，
debuildだとデフォルトの位置に入れてくれる．

checkinstallだとインストールされる場所が違うから自分で指定しないといけなかった．

便利だよねえ__debuild__


w3mのkeymapをvim仕様に
-----------------------

最後にw3mのkeymapを変えておこう．
ちょっと使いにくいので，馴染みのvim仕様に!

設定ファイルを置く場所は

- ~/.w3m/keymap

なかったら作成しよう．

設定方法は，ソースファイルの

```w3m:doc
doc-jp/README.func
doc-jp/README.keymap
doc-jp/keymap.default
doc-jp/keymap.lynx
```

辺りを参考にしつつカスタマイズしていこう．

ついでに，

```w3m
menu.default
menu.submenu
```

も余力があれば．

(´・ω・)   < 後はまあ．．．

(´・ω・)   < インライン表示も乱れたりして見難いことが多いけど．

(´・ω・)   < CUIで画像が見れるだけで感動もんっしょ．

(´・ω・｀)   < ﾈｯ!


参考文献
===============
- [帰ってきた、無精ヒゲの一応日記: fbterm で w3m-img をつかおう](https://bushowhige.blogspot.jp/2015/01/fbterm-w3m-img.html)
- [Ubuntu 16.04: apt sourceでソースコードをダウンロードする](https://www.hiroom2.com/2016/07/14/ubuntu-16-04-apt-source%E3%81%A7%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B/)
- [debパッケージ作成方法をステップバイステップでまとめました](https://eng-entrance.com/linux-package-deb-create)